Helló csináltam egy dm teleportot..
if(strcmp(cmdtext, \"/m4dm\") == 0 )
{
if(DM[playerid] == true) return SendClientMessage(playerid,0xFFFF00AA,\"DM zónában vagy! Elõször /exitdm\");
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
SendClientMessage(playerid, 0xFFFF00AA,\"Csatlakoztál a M4DM-hez! Kilépéshez: /exitdm\");
DM[playerid] = true;
new pName[30], string[128];
GetPlayerName(playerid, pName, 30);
format(string, 256, \"{0FFDD3}%s {8F698F}csatlakozott az {FF0606}M4DM-be! {0000FF}(/m4dm)!\", pName);
SendClientMessageToAll(0xFFFFFFAA,string);
return 1;
}
Azt hogy tudom megcsinálni, hogy amíg nem írja be, hogy /exitdm, addig vissza spawnolja a DM teleporthoz, vagyis: -2072.9172,-107.3010,35.3274 <-- Ide!
Elõre is köszi
public OnPlayerSpawn( playerid )
{
if( DM[ playerid ] == true )
{
SetPlayerPos( playerid, -2072.9172,-107.3010,35.3274 );
SendClientMessage( playerid, -1, \"Mivel Death Mach pályában vagy ezért újra lettél spawnolva! Kilépésért: /exitdm\");
}
return 1;
}
public OnPlayerSpawn( playerid )
{
if( DM[ playerid ] == true )
{
SetPlayerPos( playerid, -2072.9172,-107.3010,35.3274 );
SendClientMessage( playerid, -1, \"Mivel Death Mach pályában vagy ezért újra lettél spawnolva! Kilépésért: /exitdm\");
}
return 1;
}
26 Errors. O.o
#include a_samp
new DM;
public OnPlayerSpawn(playerid)
{
if(DM == 1)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
}
return 1;
}
public OnPlayerConnect(playerid)
{
DM=0; // Mikor belép nem lesz DM-ben
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/m4dm\") == 0 )
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
SendClientMessage(playerid, 0xFFFF00AA,\"Csatlakoztál a M4DM-hez! Kilépéshez: /exitdm\");
DM = 1;
new pName[30], string[128];
GetPlayerName(playerid, pName, 30);
format(string, 256, \"{0FFDD3}%s {8F698F}csatlakozott az {FF0606}M4DM-be! {0000FF}(/m4dm)!\", pName);
SendClientMessageToAll(0xFFFFFFAA,string);
return 1;
}
if(strcmp(cmdtext, \"/sajt\") == 0)
{
SendClientMessage(playerid, 0xFFFF00AA,\"Ettél egy sajtot!\");
SetPlayerHealth(playerid, 100);
return 1;
}
//Ha folytatólagosan írod a parancsokat, akkor az illetõ ha DM zónában van, akkor nem fogja engedni
//Hogy parancsot használjon.
if(strcmp(cmdtext,\"/exitdm\") == 0)
{
if(DM >= 1)
{
SetPlayerPos(playerid, 0,1,2);//Írd át arra a kordinátát, ahova akarod hogy kilépéskor kidobja.
SendClientMessage(playerid,0xFFFFFFAA,\"Kiléptél a DM zónából\");
}
else
{
SendClientMessage(playerid,0xFFFFFFAA,\"Nem vagy DM zónában!\");
}
return 1;
}
if(DM >=1) return SendClientMessage(playerid,0xFFFF00AA,\"DM zónában vagy! Elõször /exitdm\");
return 0;
}
/* Te ugye new bool: DM[MAX_PLAYERS]; Változót használtál. De én jobban szeretem ezt, new DM;
Mivel itt több értéket tudsz megadni.
Míg a bool nál 2 állítást tehetsz: \"True\" \"False\" azaz, IGAZ HAMIS, itt tehetsz akármennyit.
Mivel az újra spawnolás itt:
if(DM == 1)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
}
Az OnPlayerSpawn alatt, így néz ki, több DM zóna esetén lehet õket számozni ezzel a megoldással..
pl.:
if(strcmp(cmdtext, \"/dm2) == 0)
{
DM=2;
SetPlayerPos(playerid,x,y,z);
GivePlayerWeapon(playerid,24,1000);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid, 100);
return 1;
}
Akkor így vissza tudod újra spawnoláskor kérni ennek a cuccát is:
public OnPlayerSpawn(playerid)
{
if(DM == 1)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
}
if(DM == 2)
{
SetPlayerPos(playerid,x,y,z);
GivePlayerWeapon(playerid,24,1000);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid, 100);
}
return 1;
}
*/
Dupla hozzászólás automatikusan összefûzve. ( 2013. április 24. - 21:17:20 )
Én a bool változót nem nagyon ismerem, de azt hiszem annak csak a \"False\" és a \"True\" értéket lehet adni nem? ???
Igaz..
Esteledik :D
Javítva:
#include a_samp
new DM[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
if(DM[playerid] == 1)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
}
return 1;
}
public OnPlayerConnect(playerid)
{
DM[playerid]=0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/m4dm\") == 0 )
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,31,1000);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
SetPlayerPos(playerid,-2072.9172,-107.3010,35.3274);
SendClientMessage(playerid, 0xFFFF00AA,\"Csatlakoztál a M4DM-hez! Kilépéshez: /exitdm\");
DM[playerid] = 1;
new pName[30], string[128];
GetPlayerName(playerid, pName, 30);
format(string, 256, \"{0FFDD3}%s {8F698F}csatlakozott az {FF0606}M4DM-be! {0000FF}(/m4dm)!\", pName);
SendClientMessageToAll(0xFFFFFFAA,string);
return 1;
}
if(strcmp(cmdtext, \"/sajt\") == 0)
{
SendClientMessage(playerid, 0xFFFF00AA,\"Ettél egy sajtot!\");
SetPlayerHealth(playerid, 100);
return 1;
}
//Ha folytatólagosan írod a parancsokat, akkor az illetõ ha DM zónában van, akkor nem fogja engedni
//Hogy parancsot használjon.
if(strcmp(cmdtext,\"/exitdm\") == 0)
{
if(DM[playerid] >= 1)
{
SetPlayerPos(playerid, 0,1,2);//Írd át arra a kordinátát, ahova akarod hogy kilépéskor kidobja.
SendClientMessage(playerid,0xFFFFFFAA,\"Kiléptél a DM zónából\");
}
else
{
SendClientMessage(playerid,0xFFFFFFAA,\"Nem vagy DM zónában!\");
}
return 1;
}
if(DM[playerid] >=1) return SendClientMessage(playerid,0xFFFF00AA,\"DM zónában vagy! Elõször /exitdm\");
return 0;
}