Amikor tesztelem, a /me-t nem ír ki semmit.
CMD:me(playerid, params[])
{
new szoveg[128],string[128];
if(sscanf(params,\"s[128]\",szoveg)) return SCM(playerid, SARGA, \"Használat: /me [cselekvés]\");
new Float:X;
new Float:Y;
new Float:Z;
new i;
while(i < MAX_PLAYERS)
{
i++;
GetPlayerPos(playerid,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
{
format(string,sizeof(string),\"* %s %s\", Nev(playerid), szoveg);
SCM(i, ROZSASZIN, string);
}
}
return 1;
}
A hiba egyszerű, előszőr is for ciklussal szebben nézne ki, de ha már while ciklust használsz, akkor annak az \'i\'-nek adj kezdőértéket :
new i = 0;
És ne a kód elején növeld az i-t hanem a kód után, mert ha az elején növeled akkor a 0-ás ID-t kihagyja ami tesztelés során esélyes, hogy te vagy.
Szóval így nézz ki rendesen :
CMD:me(playerid, params[])
{
new szoveg[128],string[128];
if(sscanf(params,\"s[128]\",szoveg)) return SCM(playerid, SARGA, \"Használat: /me [cselekvés]\");
new Float:X,Float:Y,Float:Z;
new i = 0;
while(i < MAX_PLAYERS)
{
GetPlayerPos(playerid,X,Y,Z);
if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
{
format(string,sizeof(string),\"* %s %s\", Nev(playerid), szoveg);
SCM(i, ROZSASZIN, string);
}
i++;
}
return 1;
}
A hiba egyszerű, előszőr is for ciklussal szebben nézne ki, de ha már while ciklust használsz, akkor annak az \'i\'-nek adj kezdőértéket :
new i = 0;
És ne a kód elején növeld az i-t hanem a kód után, mert ha az elején növeled akkor a 0-ás ID-t kihagyja ami tesztelés során esélyes, hogy te vagy.
Szóval így nézz ki rendesen :
CMD:me(playerid, params[])
{
new szoveg[128],string[128];
if(sscanf(params,\"s[128]\",szoveg)) return SCM(playerid, SARGA, \"Használat: /me [cselekvés]\");
new Float:X,Float:Y,Float:Z;
new i = 0;
while(i < MAX_PLAYERS)
{
GetPlayerPos(playerid,X,Y,Z);
if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
{
format(string,sizeof(string),\"* %s %s\", Nev(playerid), szoveg);
SCM(i, ROZSASZIN, string);
}
i++;
}
return 1;
}
Köszi mostmár működik, megy a +.