-
Úgy 2 parancsomnál észleltem, hogy elsõre hiányosan tölti be. Elsõre nem tölti be a parancsban az összes adatot, másodjára meg teljesen jól mûködik.. Elég bonyolult(nekem) parancsok, minek az oka lehet egy ilyen dolog?
-
bemásolnád a 2 parancsot?
meg milyen adatot nem tölt be a parancsban?
pontosabban írd le mit csinál 1. és másodszor és mit kéne csinálnia...
-
A parancsban egyszerûen neveket( szerv név, játékos név...) azaz a format függvénynél a %s -el jelölt adatokat tölti be csak minden 2. használatkor.
-
másold be a parancsot
-
A parancs már nincs meg(módosítottam..) De így utólag rájöttem mi volt a hiba, és erre szeretnék egy magyarázatot kérni.
Volt egy változóm:
new szervnev[64];
És megvolt adva, hogy a szervnev mivel legyen egyenlõ(ebbe nem mennék bele dini -s cuccok) a lényeg, hogy az egyenlõsége kivolt szabva egy adott névre. Pl.
if(abrakadabra == 1) { szervnev = \"Sajt\"; }
Aztán így pl. Ez felvolt használva:
format(string,sizeof(string),\"%s megette %s %s-jét!\",neve(jatekos),neve(playerid),szervnev)
na jó persze ez nem ilyen egyszerûen, megvolt adva a parancsban az, hogy mikor 1 és 2 es értéket kapjon a szervnev.. (if(sscanf(params....................)
De a szervnevet mindig csak 2. -jára írta ki helyesen. Elsõre vagy az az elõttileg kiírtat adta, vagy semmit. Kérdés, miért?
Ez csak példa hülyeség volt, mivel töröltem a parancsot.
-
a szervernév beállításnál az if-nek mindig volt igaz ága?
-
\"szervnev\" nem szerver. De egyébként nem értem hogy érted. minden szükséges \"számon\" volt megfelelõ értéke.
Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 15:58:38 )
Na itt egy hibás parancs(ez egy új..)
CMD:giverang(playerid, params[])
{
new string[128],jatekos;
Frakciok(playerid);
FrakcioRangok(jatekos);
if(adatai[playerid][Leader] == adatai[jatekos][Frakcio] || adatai[playerid][Admin] >= 3)
{
if(sscanf(params,\"ui\",jatekos, rang)) return SendClientMessage(playerid, 0x00ff15AA, \"Szerver: /giverang [játékos/ ID] [Rang]\");
{
adatai[jatekos][Rang] = rang;
format(string,sizeof(string),\"%s %s Rangja módosítva: %s!\",frakcionev, neve(jatekos),rangnev);
SendFrakcioMessage(1,0x0033ffAA,string);
}
if(INVALID_PLAYER_ID == jatekos)
{
SendClientMessage(playerid,0x0033ffAA,\"Hibás ID/NÉV!\");
}
}
else
{
SendClientMessage(playerid, 0xff0000AA, \"Te nem használhatod!\");
}
return 1;
}
A következõ a hiba vele, ugye a stock fügvényekkel megvannak adva az értékek. Na de, itt csak azt használtam, hogy /giverang 0 1 és :
http://kepfeltoltes.hu/140313/sa-mp-054_www.kepfeltoltes.hu_.png[/img]
Az elsõre még is a 2 es rang értékét adta be, de utána ha megint beírom, hogy /giverang 2, akkor is az 1 est veszi be, majd 2.jára a 2 est és onnantól jó.
Ha ezt valaki megcsinálja/megmondja miért van, adok neki egy piros pontot :D
-
ez a 2 függvény mit csinál?
Frakciok(playerid);
FrakcioRangok(jatekos);
ez honnan jön?
rangnev
nem lehet hogy így kéne? pontosan nem tudom mit csinál az a függvény de ránézésre valami ilyesmi problémát látok...de ezt csak akkor jelenthetem ki biztosan ha megválaszoltad a kérdéseimet...
adatai[jatekos][Rang] = rang;
FrakcioRangok(jatekos);
-
Frakciok(playerid);
Annyit tesz, hogy megadja a Frakció nevét. (frakcionev)
FrakcioRangok(jatekos);
Ez meg a frakcio rangot adja meg. (rangnev)
A \"rangnev\" ugyan úgy változó, csak nem hoztam létre külön-külön.
Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 17:31:54 )
Egyébként kipróbáltam, ahogy írtad. Ugyan úgy rossz.
-
másold be a kódjukat...gondolom 2 macro...
-
stock FrakcioRangok(playerid)
{
if(adatai[playerid][Frakcio] == 1)
{
if(adatai[playerid][Rang] == 1) { rangnev = \"Õrmester\"; }
else if(adatai[playerid][Rang] == 2) { rangnev = \"Hadnagy\"; }
}
return 1;
}
stock Frakciok(playerid)
{
if(adatai[playerid][Frakcio] == 1) { frakcionev = \"Rendõrség\"; }
if(adatai[playerid][Frakcio] == 2) { frakcionev = \"OMSZ\"; }
return 1;
}
-
nem gondoltam volna hogy ennyire rossz a helyzet :D
am ennek mûködnie kellett volna...
adatai[jatekos][Rang] = rang;
FrakcioRangok(jatekos);
de szerintem ne globális változókba pakold a szövegeket...inkább használj visszatérési értéket...
if(adatai[playerid][Frakcio] == 1)
{
switch(adatai[playerid][Rang])
{
case 1: return \"Õrmester\";
case 2: return \"Hadnagy\";
}
}
a format-hoz a függvényt írod be paraméternek mint a neve(jatekos) függvénynél is tetted...
-
Nálam a te módszeredtõl behal a pawno :D Nem tudja lefuttatni..
Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 19:58:57 )
írd már össze légyszives a parancsal..
-
ja igen a direkt stringet nem szereti :D
van ez a rondábbik megoldás: