Szerző Téma: /me hiba.  (Megtekintve 688 alkalommal)

Nem elérhető Daniii

  • 144
    • Profil megtekintése
/me hiba.
« Dátum: 2016. Június 28. - 09:21:45 »
0 Show voters
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;
}

Nem elérhető bendor

  • 2949
    • Profil megtekintése
/me hiba.
« Válasz #1 Dátum: 2016. Június 28. - 09:48:27 »
+1 Show voters
sscanf be van töltve rendesen?

Nem elérhető Daniii

  • 144
    • Profil megtekintése
/me hiba.
« Válasz #2 Dátum: 2016. Június 28. - 09:54:51 »
0 Show voters
Be, más sscanfal működő parancs megy, pl.: /jármű. De ez nem.

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
/me hiba.
« Válasz #3 Dátum: 2016. Június 28. - 09:59:47 »
+1 Show voters
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;
}
« Utoljára szerkesztve: 2016. Június 28. - 10:02:01 írta 1Mark6 »

Nem elérhető Daniii

  • 144
    • Profil megtekintése
/me hiba.
« Válasz #4 Dátum: 2016. Június 28. - 10:11:59 »
0 Show voters
Idézetet írta: 1Mark6 date=1467100787\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"61101\" data-ipsquote-contentclass=\"forums_Topic
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 +.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal