GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Domm - 2017. Augusztus 18. - 19:59:46

Cím: Segítség.
Írta: Domm - 2017. Augusztus 18. - 19:59:46
Cím: Segítség.
Írta: Naretev - 2017. Augusztus 18. - 20:20:11
if(sscanf(params,\"uds[28]\",id))
 
3 típus van megadva, u = játékosID/Név, d = decimális, egész szám, s[28] = string. Illetve csak 1-be töltöd bele.
 
Gondolom, neked csak \"ud\" kell, azaz a játékos neve, és egy szám, ami a szintet jelzi. De akkor azt is tárolni kell.
 
if(sscanf(params,\"ud\",id,szint))
Cím: Segítség.
Írta: zsolti125 - 2017. Augusztus 18. - 20:23:32
Kód végén nem kell return, 
else
return SendClientMessage(playerid,COLOR_RED,ADMINHIBA)
 
Helyette :
 
return SendClientMessage(playerid,COLOR_RED,ADMINHIBA)
 
 
Cím: Segítség.
Írta: Naretev - 2017. Augusztus 18. - 21:03:41
A kód végére kell a return 1; mivel akkor hibát fog kiirni, hogy cmd_rendorad should a return value.
 
 
Cím: Segítség.
Írta: zsolti125 - 2017. Augusztus 18. - 21:12:24
Nem,az adminszintes ifnek az else részét nézd még, van ott égybol felesleges \"return else\".Nem a return 1-re gondoltam. 
Cím: Segítség.
Írta: Naretev - 2017. Augusztus 18. - 21:38:04
Így gondolta a kódot szerintem, és ott még mindig kell. Csak a tabsize miatt nem látszik, alapból így nézne ki a kód.
 
\"gviMzTM.png\"
Cím: Segítség.
Írta: zsolti125 - 2017. Augusztus 18. - 22:15:02
De felesleges a return az adminszintes ifnél 
 
 
 
if(pInfo[playerid][Admin] asd asd)
 
{
 
//HA megvan az adminja akkor megy tovább 
 
}
 
else SCM(blabla)
 
vagy:
 
if(pInfo[playerid][Admin] asd asd)
 
{
 
//HA megvan az adminja akkor megy tovább 
 
}
 
else
 
{
 
SCM(blabla)
 
}
Cím: Segítség.
Írta: Naretev - 2017. Augusztus 18. - 22:27:20
Nem felesleges, mivel hogyha később akarja bővíteni a kódot akkor annál a résznél kifog lépni.
 
itt egy pld.
 

if(pInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid,-1,\"Az admin szint nemjó :C\");
GivePlayerMoney(playerid,100);
// VAGY
if(pInfo[playerid][pAdmin] < 2) SendClientMessage(playerid,-1,\"Az adminszint nemjó :C\");
GivePlayerMoney(playerid,100);

 
Az a return sokat jelent mivel ott visszatér azzal az értékkel, nem engedi a kódot tovább futni. Ergó csak akkor fut le az a rész ha a feltétel hamis. Fordított logika.
 
És ő is ugyanezt csinálja csak nem fordítottan, ő először igaz feltételt keres, majd hogyha hamis akkor ott megállítja a kódot. Igaz,hogy az ő esetében az nem futna le, de hogyha ezt tovább bővíti majd valamivel lefelé, akkor viszont hasznos lesz.
Cím: Segítség.
Írta: Gergely - 2017. Augusztus 19. - 08:01:05
Hianyzik a \"szint\".
 
new id,szint;
if(sscanf(params,\"uds[28]\",id)) return SendClientMessage(playerid,COLOR_RED,\"Használat:/rendorad [iD] [szint(0-5)]\");
 
Igy lesz jo.
 
if(sscanf(params,\"ud\", id, szint)) return SendClientMessage(playerid,COLOR_RED,\"Használat:/rendorad [iD] [szint(0-5)]\");
 
pInfo[id][Frakcio] = 1;
pInfo[id][Frakcioszint] = szint;
Cím: Segítség.
Írta: kos - 2017. Augusztus 20. - 10:16:16
if(sscanf(params,\"uds[28]\",id)) return SendClientMessage(playerid,COLOR_RED,\"Használat:/rendorad [iD] [szint(0-5)]\");
 
Helyette:
 
If(sscanf(params,\"ui\",id,szam)) return blablabla
 
if(pInfo[playerid][Admin] >=5)
 
Helyette:
 
If(pInfo[playerid][Admin] >= 5)
 
{
 
Blablabla
 
}
 
else
 
{
 
Bla bla bla
 
}
 
 
 
Vagy: (!) Jel
 
If(!pInfo[playerid][Admin] >= 5) return blablabla
 
{
 
Blablabla
 
}