Jump to content
  • 0

pomoc /port - ?


snake3321

Dotaz

Dobrý den, určitě ste na nějákých serverech postřehly že tam mají /port - Potřeboval bych od vás poradit jak něco takového vytvořit, Dejme tomu že bych napsal /setport - a ulozila by se pozice tam kde stojím, hraci by se mohly teleportovat a po vykonani prikazu /portoff - hraci by se jiz nemohly teleportovat, to je vse, diky moc :)

Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0

Myslíš Si že ti to někdo Bude dělat? :) Řeknu ti jen tohle. Do /setport dej GetPlayerPos(playerid, X, Y, Z); (A ještě nahoru Newy) A do /port dej SetPlayerPo(playerid, X, Y, Z); a Do /porton A /portoff Dej Podmínku Aby se nastavovala..... A /port pujde jen když bude podmínka 0..... :) Pokud nechápeš... Tak napiš :)

Link to comment
Share on other sites

  • 0

new Float:X,Float:Y,Float:Z;

 

CMD:port(playerid)

{

SetPlayerPos(playerid,X,Y,Z);

return 1;

}

 

CMD:setport(playerid)

{

GetPlayerPos(playerid,X,Y,Z);

return 1;

}

 

zbytek si udělej sám

Link to comment
Share on other sites

  • 0

To si děláš prdel ? to je minimálně tvůj páty topic že něco chceš (něco, co jsi někde viděl).. kdyby jsi byl co k čemu, tak to zadáš do google nebo zapneš mozek, a podíváš se na wiki :)

Link to comment
Share on other sites

  • 0
#include <a_samp> 

new Float:X,Float:Y,Float:Z;
new port;
#define SCMTAF(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

public OnPlayerCommandText(playerid,cmdtext[])
{
dcmd(setport,7,cmdtext);
dcmd(port,4,cmdtext);
dcmd(portoff,7,cmdtext);
return 1;
}
return 0;
}

dcmd_setport(playerid,params[])
{
#pragma unused params
GetPlayerPos(playerid,X,Y,Z);
SCMTAF(0x33ccff,"Hráč %s uložil verejnu poziciu pre /port",Jmeno(playerid));
return 1;
}

dcmd_port(playerid,params[])
{
#pragma unused params
SetPlayerPos(playerid,X,Y,Z);
SCMTAF(0x33ccffaa,"Hrač %s sa odwarpoval na verejnu poziciu pre /port"Jmeno(playerid));
return 1;
}

dcmd_portoff(playerid,params[])
{
#pragma unused params
port = 0;
SCMTAF(0xff0000ff,"Hrač %s vypol verejny port",Jmeno(playerid));
return 1;
}
stock Jmeno(playerid){
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}

Neviem či je dobre to port = 0; neviem s tým moc robiť

Link to comment
Share on other sites

  • 0

Neviem či je dobre to port = 0; neviem s tým moc robiť

 

Tak nechápu proč se o to snažím zrovna tady, kde potřebuje někdo pomoct.. Jelikož tam máš využití úplně k ničemu.. Obzvlášť je v tom více chyb. Před tím než to tu dáš to zkus vyzkoušet..

#include <a_samp>

new Float:X,Float:Y,Float:Z;
new bool:port;
new bool:FALSE=false;
#define SCMTAF(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
#define SCM SendClientMessage
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

public OnPlayerCommandText(playerid,cmdtext[])
{
	dcmd(setport,7,cmdtext);
	dcmd(port,4,cmdtext);
	dcmd(portstatus,10,cmdtext);
	return 0;
}

dcmd_setport(playerid,params[])
{
	#pragma unused params
	if(port == false) return SCM(playerid,0x33ccffaa,"Verejny port je vypnuty");
	GetPlayerPos(playerid,X,Y,Z);
	SCMTAF(0x33ccff,"Hráč %s uložil verejnu poziciu pre /port",Jmeno(playerid));
	return 1;
}

dcmd_port(playerid,params[])
{
	#pragma unused params
	if(port == false) return SCM(playerid,0x33ccffaa,"Verejny port je vypnuty");
	SetPlayerPos(playerid,X,Y,Z);
	SCMTAF(0x33ccffaa,"Hrač %s sa odwarpoval na verejnu poziciu pre /port",Jmeno(playerid));
	return 1;
}

dcmd_portstatus(playerid,params[])
{
	#pragma unused params
	if(port == false)
	{
	    SCMTAF(0xff0000ff,"Hrač %s zapnul verejny port",Jmeno(playerid));
	    port = true;
	}
	else
	{
	    SCMTAF(0xff0000ff,"Hrač %s vypnul verejny port",Jmeno(playerid));
	    port = false;
	}
	return 1;
}

stock Jmeno(playerid)
{
	new name[64];
	GetPlayerName(playerid, name, 64);
	return name;
}
Link to comment
Share on other sites

  • 0

Niekam hore ,napr. pod definácie alebo include...

new port[MAX_PLAYERS] = 0;
new Float:x,Float:y,Float:z;

a do public OnPlayerCommandText

if (strcmp("/setport", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Vytvoril si verejnú pozíciu {FF0000}[ ! ]");
		GetPlayerPos(playerid, x,y,z);
		return 1;
	}
	if (strcmp("/porton", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		port[playerid] = 0;
		return 1;
	}
	
	if (strcmp("/portoff", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		port[playerid] = 1;
		return 1;
	}
	
	if (strcmp("/port", cmdtext, true, 10) == 0)
	{
        if(port[playerid] == 1) {
 		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Port je vypnutý {FF0000}[ ! ]");
 		}
		else if(port[playerid] == 0) {
		SetPlayerPos(playerid, x,y,z);
		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Bol si úspešne odportovaný {FF0000}[ ! ]");
		}
		return 1;
	}

Niake tie vysvetlivky ...

new port[MAX_PLAYERS] = 0;

vytvorí premenu port z hodnotou 0

new Float:x,Float:y,Float:z;

vytvorí premenu pre koordinácie(nejsom si istý že sa to tak volá xD) x,y,z

SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Vytvoril si verejnú pozíciu {FF0000}[ ! ]");

Pošle správu hráčovi...

GetPlayerPos(playerid, x,y,z);

Uloží hráčove koordinácie tzv. x,y,z

if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");

Podmienka pre RCON | tzv. Iba RCON administrátor može použiť príkazy /porton , /portoff , /setport

port[playerid] = 0;

nastaví hodnotu na 0

port[playerid] = 1;

nastaví hodnotu na 1

SetPlayerPos(playerid, x,y,z);

nastaví hráčovu pozíciu na uloženú pozíciu x,y,z

Link to comment
Share on other sites

  • 0
  • Globální moderátor

Niekam hore ,napr. pod definácie alebo include...

new port[MAX_PLAYERS] = 0;
new Float:x,Float:y,Float:z;
a do public OnPlayerCommandText
if (strcmp("/setport", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Vytvoril si verejnú pozíciu {FF0000}[ ! ]");
		GetPlayerPos(playerid, x,y,z);
		return 1;
	}
	if (strcmp("/porton", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		port[playerid] = 0;
		return 1;
	}
	
	if (strcmp("/portoff", cmdtext, true, 10) == 0)
	{
		if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
		port[playerid] = 1;
		return 1;
	}
	
	if (strcmp("/port", cmdtext, true, 10) == 0)
	{
        if(port[playerid] == 1) {
 		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Port je vypnutý {FF0000}[ ! ]");
 		}
		else if(port[playerid] == 0) {
		SetPlayerPos(playerid, x,y,z);
		SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Bol si úspešne odportovaný {FF0000}[ ! ]");
		}
		return 1;
	}
Niake tie vysvetlivky ...
new port[MAX_PLAYERS] = 0;
vytvorí premenu port z hodnotou 0
new Float:x,Float:y,Float:z;
vytvorí premenu pre koordinácie(nejsom si istý že sa to tak volá xD) x,y,z
SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Vytvoril si verejnú pozíciu {FF0000}[ ! ]");
Pošle správu hráčovi...
GetPlayerPos(playerid, x,y,z);
Uloží hráčove koordinácie tzv. x,y,z
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
Podmienka pre RCON | tzv. Iba RCON administrátor može použiť príkazy /porton , /portoff , /setport
port[playerid] = 0;
nastaví hodnotu na 0
port[playerid] = 1;
nastaví hodnotu na 1
SetPlayerPos(playerid, x,y,z);
nastaví hráčovu pozíciu na uloženú pozíciu x,y,z

 

nepôjde to vzhľadom k tomu že si vytvoril player premennu.... Ty to setujes do premmenej pre daného hráča teda..... Ak dá admin /portoff tak hodnotu premennej setne iba adminovi a hráčom nezmení nič, hráč sa aj naďalej bude môcť portnut..... musíš tam dať globálnu premennu.......

Link to comment
Share on other sites

  • 0

nepôjde to vzhľadom k tomu že si vytvoril player premennu.... Ty to setujes do premmenej pre daného hráča teda..... Ak dá admin /portoff tak hodnotu premennej setne iba adminovi a hráčom nezmení nič, hráč sa aj naďalej bude môcť portnut..... musíš tam dať globálnu premennu.......

 

Viem a nevšimol som si to :)

 

Opravené

 

 

 

Niekam hore ,napr. pod definácie alebo include...

new port = 0;
new Float:x,Float:y,Float:z;

do onplayercommand

if (strcmp("/setport", cmdtext, true, 10) == 0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
        SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Vytvoril si verejnú pozíciu {FF0000}[ ! ]");
        GetPlayerPos(playerid, x,y,z);
        return 1;
    }
    if (strcmp("/porton", cmdtext, true, 10) == 0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
        port = 0;
        return 1;
    }
    
    if (strcmp("/portoff", cmdtext, true, 10) == 0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Niesi RCON administrátor {FF0000}[ ! ]");
        port = 1;
        return 1;
    }
    
        if (strcmp("/port", cmdtext, true, 10) == 0)
    {
        if(port == 1) {
         SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Port je vypnutý {FF0000}[ ! ]");
         }
        else if(port == 0) {
        if(IsPlayerInAnyVehicle(playerid))
          {
            SetVehiclePos(GetPlayerVehicleID(playerid), x,y,z);
          }
                else
          {
            SetPlayerPos(playerid, x,y,z);
          }
        SendClientMessage(playerid, 0xffff, "{FF0000}[ ! ] {00ff00}Bol si úspešne odportovaný {FF0000}[ ! ]");
        }
        return 1;
    }

 

 

 

//EDIT: Pridal som, že ak je hráč v aute tak ho to portne aj s autom .. :)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...