-
helló!
A problémám az lenne hogy ez az egy parancs mindig megmakacsolja magát de nem tudom miért én amennyire látom jól csináltam meg de már abban is kezdek kételkedni xd
a pawno nem ír hibát de amikor beirom a parancsot akkor unknow commandot ir o_o
parancs és a hozzá tartozó részek:
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
public OnPlayerCommandText(playerid, cmdtext[])
{//par
dcmd(stat,4,cmdtext);
//....töbi parancs ami mûködik
}
dcmd_stat(playerid,params[])
{
new id,Float:rat,Float:hp,Float:arm;
if(sscanf(params,\"u\",id))
{
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
if(!sscanf(params,\"u\",id))
{
id=playerid;
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
return 1;
}
a segitséget elõre is köszönöm!
(megjegyzés: egy másik scriptemben ugyan ennél a parancsnál akadtam e ez már kezd fura lenni xdl)
Dupla hozzászólás automatikusan összefûzve. ( 2014. március 20. - 12:53:47 )
és az a vicces hogy sehol nem térek vissza 0 val o_O
-
Talán 2 parancsfeldolgozót használsz...
-
nem csak a dcmd-t a többit nem szeretem
-
OnplayerCommandText szerintem nem csak két { } -nek kéne lenni, ha így van neked, akkor megvan a hiba.
-
a további rész elméletben tök m1 itt a parancsal van a gond amugy van a végén egy szöveggel való visszatérés de még azt se adja be míg más parancsok tökéletesen müködnek
-
[gmod]A téma neve a problémádra utaljon! Kapsz 24 órát a téma nevének átírásához! [/gmod]
-
Már nem azért, de a téma neve /stats, nálad meg stat-ként van írva, remélem nem az a hiba, hogy /stat helyett /stats-ot írsz a chatbe..
-
nem az a baj -_-\"
-
Tudom, de az is lehetett volna. Csak akkor már a pontosság kedvéért, mert egyáltalán nem mindegy, hogy /stat vagy /stats.
De másold be nálad az egész OnPlayerCommandText-et, mert szerintem a visszatéréseknél lesz a hiba.
-
a visszatérés szeritem jó mert az a többi parancs nál is jó és a nem létezõ parancsot irok be akkor is kiirja a kellõ szöveget csak ennél az egy parancsnál ir unknow commandot
de tesék nállam ez igy van és ez mindenhol müködik:
fpm define:#define fpm(%1,%2,%3,%4); format(%2,sizeof(%2),%4); smp(%1,%3,%2);
a parancsok után:
else
{
fpm(playerid,STR,-1,\"{FF0000}[ERROR]: {A2A1A1}A {FF0000}\'%s\'{A2A1A1} parancs nem létezik segitséghez /help!\",cmdtext);
return 1;
}
-
Szerintem egy return 0 hiányzik, próbáld meg mint az alap pawnoba.
-
??? ha return 0 át irok akkor kiirja a szöveget + még kiirja h unknow command
ez igy jó nem ezzel hanem a parancs részel van a hiba az 100%
-
akkor is lehet ez a gond, ha include-olod a zcmd-t....akkor a többi nem fog mûködni.
-
oké elmondom még egyszer.
A DCMD-n kívûl nincs használva/includeolva semmilyen más parancsfeldolgozó
-
és ha így próbálod?
dcmd_stat(playerid,params[])
{
new id,Float:rat,Float:hp,Float:arm;
if(sscanf(params,\"u\",id))
{
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
else
{
rat=PlayerInfo[playerid][Kills]/PlayerInfo[playerid][Deaths];
GetName(playerid,Name);
GetPlayerHealth(playerid,hp);
GetPlayerArmour(playerid,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,playerid,PlayerInfo[playerid][Kills],PlayerInfo[playerid][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(playerid));
}
return 1;
}
-
Én azt nem értem, hogy ha az STR karakterláncot megformázod, miért nem jeleníted meg dialogba/üzenetbe a játékosnak?
-
ó hogy szúrná ki a szemem a pawno xd :facepalm: :wall: meg van a hiba azért tért vissza return 0 val mert a ratio az egy float szám és én igy kértem le:
rat=PlayerInfo[playerid][Kills]/PlayerInfo[playerid][Deaths];
miközben így kellet volna:
rat=Float:PlayerInfo[playerid][Kills]/Float:PlayerInfo[playerid][Deaths];
és igy máris müködik a parancs tökéletesen :wall:
-
[mod]Témát zártam![/mod]
-
helló!
A problémám az lenne hogy ez az egy parancs mindig megmakacsolja magát de nem tudom miért én amennyire látom jól csináltam meg de már abban is kezdek kételkedni xd
a pawno nem ír hibát de amikor beirom a parancsot akkor unknow commandot ir o_o
parancs és a hozzá tartozó részek:
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
public OnPlayerCommandText(playerid, cmdtext[])
{//par
dcmd(stat,4,cmdtext);
//....töbi parancs ami mûködik
}
dcmd_stat(playerid,params[])
{
new id,Float:rat,Float:hp,Float:arm;
if(sscanf(params,\"u\",id))
{
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
if(!sscanf(params,\"u\",id))
{
id=playerid;
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
return 1;
}
a segitséget elõre is köszönöm!
(megjegyzés: egy másik scriptemben ugyan ennél a parancsnál akadtam e ez már kezd fura lenni xdl)
Dupla hozzászólás automatikusan összefûzve. ( 2014. március 20. - 12:53:47 )
és az a vicces hogy sehol nem térek vissza 0 val o_O
-
Talán 2 parancsfeldolgozót használsz...
-
nem csak a dcmd-t a többit nem szeretem
-
OnplayerCommandText szerintem nem csak két { } -nek kéne lenni, ha így van neked, akkor megvan a hiba.
-
a további rész elméletben tök m1 itt a parancsal van a gond amugy van a végén egy szöveggel való visszatérés de még azt se adja be míg más parancsok tökéletesen müködnek
-
[gmod]A téma neve a problémádra utaljon! Kapsz 24 órát a téma nevének átírásához! [/gmod]
-
Már nem azért, de a téma neve /stats, nálad meg stat-ként van írva, remélem nem az a hiba, hogy /stat helyett /stats-ot írsz a chatbe..
-
nem az a baj -_-\"
-
Tudom, de az is lehetett volna. Csak akkor már a pontosság kedvéért, mert egyáltalán nem mindegy, hogy /stat vagy /stats.
De másold be nálad az egész OnPlayerCommandText-et, mert szerintem a visszatéréseknél lesz a hiba.
-
a visszatérés szeritem jó mert az a többi parancs nál is jó és a nem létezõ parancsot irok be akkor is kiirja a kellõ szöveget csak ennél az egy parancsnál ir unknow commandot
de tesék nállam ez igy van és ez mindenhol müködik:
fpm define:#define fpm(%1,%2,%3,%4); format(%2,sizeof(%2),%4); smp(%1,%3,%2);
a parancsok után:
else
{
fpm(playerid,STR,-1,\"{FF0000}[ERROR]: {A2A1A1}A {FF0000}\'%s\'{A2A1A1} parancs nem létezik segitséghez /help!\",cmdtext);
return 1;
}
-
Szerintem egy return 0 hiányzik, próbáld meg mint az alap pawnoba.
-
??? ha return 0 át irok akkor kiirja a szöveget + még kiirja h unknow command
ez igy jó nem ezzel hanem a parancs részel van a hiba az 100%
-
akkor is lehet ez a gond, ha include-olod a zcmd-t....akkor a többi nem fog mûködni.
-
oké elmondom még egyszer.
A DCMD-n kívûl nincs használva/includeolva semmilyen más parancsfeldolgozó
-
és ha így próbálod?
dcmd_stat(playerid,params[])
{
new id,Float:rat,Float:hp,Float:arm;
if(sscanf(params,\"u\",id))
{
rat=PlayerInfo[id][Kills]/PlayerInfo[id][Deaths];
GetName(id,Name);
GetPlayerHealth(id,hp);
GetPlayerArmour(id,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,id,PlayerInfo[id][Kills],PlayerInfo[id][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(id));
}
else
{
rat=PlayerInfo[playerid][Kills]/PlayerInfo[playerid][Deaths];
GetName(playerid,Name);
GetPlayerHealth(playerid,hp);
GetPlayerArmour(playerid,arm);
fpm(playerid,STR,-1,\"{FF0000}[{00FF00}INFO{FF0000}]: {F7FF00}%s{A2A1A1}(%d) Kills:%d | Deaths: %d | Ratio: %0.2f | HP: %d | ARM: %d | ping: %d\",Name,playerid,PlayerInfo[playerid][Kills],PlayerInfo[playerid][Deaths],rat,floatround(hp),floatround(arm),GetPlayerPing(playerid));
}
return 1;
}
-
Én azt nem értem, hogy ha az STR karakterláncot megformázod, miért nem jeleníted meg dialogba/üzenetbe a játékosnak?
-
ó hogy szúrná ki a szemem a pawno xd :facepalm: :wall: meg van a hiba azért tért vissza return 0 val mert a ratio az egy float szám és én igy kértem le:
rat=PlayerInfo[playerid][Kills]/PlayerInfo[playerid][Deaths];
miközben így kellet volna:
rat=Float:PlayerInfo[playerid][Kills]/Float:PlayerInfo[playerid][Deaths];
és igy máris müködik a parancs tökéletesen :wall:
-
[mod]Témát zártam![/mod]