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: Bloodest44 - 2012. augusztus 27. - 12:30:00

Cím: Felszólítás id hiba & dialog color hiba
Írta: Bloodest44 - 2012. augusztus 27. - 12:30:00
Heló, az lenne az elsõ kérdésem, hogy mi lehet ebben a scriptben a hiba, mert hiába írom be, hogy /felsz 5 nem arra a játékosra írja ki, hanem id0-ra mindig.
 
    if(strcmp(cmd, \"/felsz\", true) == 0) {
    {
    IsPlayerAdmin(playerid == 1);
    }
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, \"<HASZNÁLAT>:/a [játékosid]\");
    if (IsPlayerConnected(giveplayerid)) {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), \"%s(ID:%d)! Adja meg magát!\", giveplayer,giveplayerid);
    SendClientMessageToAll(COLOR_ORANGE, string);
}
    } else {
SendClientMessage(playerid, COLOR_RED,\"HIBA: A beírt azonosító(ID) nem található!\");
}
    return 1;
}

 
---------------------------------------------------------------------------------------------------------------------------------------------
A másik az, pedig, hogy be rakok egy radio dialogot, és egy színválasztó dialogot a szeróra, és ha ez a kettõ megy akkor a színválasztó nem jó, vagyis bejön a dialog de nem változtatja meg kattintásra a player színt. Ha kiveszem a radio filterscriptet a cfg-bõl, egybõl megjavul. Mi lehet e összeférhetetlenségnek az oka?
- Error-t vagy warn -t nem ír ki egyébként sem a felszólítás id hiba, sem a szín fs, sem a radio fs.
Cím: Felszólítás id hiba & dialog color hiba
Írta: Flash - 2012. augusztus 27. - 12:42:52
1.
 
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, \"<HASZNÁLAT>:/a [játékosid]\");

 
helyett így:
 
if(sscanf(params, \"u\", giveplayer)) return SendClientMessage(playerid, -1, \"Használat: /felsz [Playerid/Név]\");

 
2. szerintem ütköznek a dialog ID-k.
Cím: Felszólítás id hiba & dialog color hiba
Írta: TengeriMalac - 2012. augusztus 27. - 12:45:00
if(strcmp(cmd, \"/felsz\", true) == 0)
{
new tmp[256],
giveplayerid;
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);
if(!IsPlayerAdmin(playerid)) return SendclientMessage(playerid, COLOR_RED, \"Nem vagy RCON admin!\");;
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, \"<HASZNÁLAT>:/a [játékosid]\");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED,\"HIBA: A beírt azonosító(ID) nem található!\");
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), \"%s(ID:%d)! Adja meg magát!\", giveplayer,giveplayerid);
SendClientMessageToAll(COLOR_ORANGE, string);
return 1;
}
Cím: Felszólítás id hiba & dialog color hiba
Írta: Bloodest44 - 2012. augusztus 27. - 15:17:58
TengeriMalac  -  nem jó, mert azt írja [függetlenül attól, hogy admin vagyok-e vagy sem] hogy \"nem vagy admin\" illetve még ha ezt ki is szedem [//-el] akkor meg felmegyek szeróra, beírom, hogy /felsz  vagy  /felsz 1  és ugyan azt írja ki mindig: \"<HASZNÁLAT: /felsz [id]\" fehérrel.
Ráadásként 2 warn-ot is kiír:
 
(60) : warning 219: local variable \"tmp\" shadows a variable at a preceding level
(61) : warning 219: local variable \"giveplayerid\" shadows a variable at a preceding level
Cím: Felszólítás id hiba & dialog color hiba
Írta: N@rbirock - 2012. augusztus 27. - 15:21:15
Tedd egybe a 2 fst.
Cím: Felszólítás id hiba & dialog color hiba
Írta: krisk - 2012. augusztus 27. - 15:24:14
Idézetet írta: Bloodest44 date=1346073478\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"26943\" data-ipsquote-contentclass=\"forums_Topic
[1.]
Flash - Átírtam a dialogidket, mégsem jó  :unsure:
Színek fs-nél:  #define DIALOG_SZINEK    9800
Radio fs-nél:  #define DIALOG_RADIO    5500
És mindkettõben ezenkívül még ugye 2 helyen van feltüntetve a dialogid, (ShowPlayerDialog és OnDialogResponse résznél) ami így itt is különbözik egymástól, nem tudom miért zavarja egymást a kettõ.
[2.]
TengeriMalac  -  nem jó, mert azt írja [függetlenül attól, hogy admin vagyok-e vagy sem] hogy \"nem vagy admin\" illetve még ha ezt ki is szedem [//-el] akkor meg felmegyek szeróra, beírom, hogy /felsz  vagy  /felsz 1  és ugyan azt írja ki mindig: \"<HASZNÁLAT: /felsz [id]\" fehérrel.
Ráadásként 2 warn-ot is kiír:
 
(60) : warning 219: local variable \"tmp\" shadows a variable at a preceding level
(61) : warning 219: local variable \"giveplayerid\" shadows a variable at a preceding level

 

A tmp és a giveplayerid változók magasabb szinteken (pl. globális változó, callback elején) már deklarálva vannak. Gondolom tengerimalac nem ismeri a gf-et. Itt a jó kód:
 

if(strcmp(cmd, \"/felsz\", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendclientMessage(playerid, COLOR_RED, \"Nem vagy RCON admin!\");;
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, \"<HASZNÁLAT>:/a [játékosid]\");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED,\"HIBA: A beírt azonosító(ID) nem található!\");
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), \"%s(ID:%d)! Adja meg magát!\", giveplayer,giveplayerid);
SendClientMessageToAll(COLOR_ORANGE, string);
return 1;
}
Cím: Felszólítás id hiba & dialog color hiba
Írta: Bloodest44 - 2012. augusztus 27. - 19:53:53
N@rbirock - Valóban! Köszönöm szépen, mûködik egy fs alatt.  ++ ::|
Viszont a felszólítási id hiba még mindig fenn áll. Hiába vagyok ki-be jelentkezve adminnal a szerón, ugyanazt írja ki: \"Nem vagy RCON admin\"
Nem tudná valaki leírni a jó parancsot? Tehát, hogy /felsz [id]  - és kiírja mindenkinek, hogy pl. \"Laci ID1 álljon meg!\"
És ezt persze csak admin tudná használni a parancsot.   :cry3:
Cím: Felszólítás id hiba & dialog color hiba
Írta: TengeriMalac - 2012. augusztus 27. - 20:07:26
Ahogy nézem, kódilag nincs benne hiba.


zcmd + sscanf?
nem igazán bírom az strcmp + strtok párosítást.