-
if(pInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID;
if(sscanf(params,\"u\",pID))return SendClientMessage(playerid,NARANCS,\"Használat: /frakció felvesz [ Játékos ]\");
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
SendFormatMessage(playerid,NARANCS,\"Sikeresen felvetted %s-t ide: %s\",Nev(pID),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
SendFormatMessage(playerid,NARANCS,\"<< %s felvett téged ide: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
Szóval ebben a néhány sorba mi a hiba? amint beírom hogy /frakcio felvesz azt írja hogy nincs ilyen parancs? :/
-
a parancs végére kell egy return 1
-
[gmod]Spoiler helyett pawn code. Legközelebb magadtól![/gmod]
-
a parancs végére kell egy return 1
CMD:frakcio(playerid,params[])
{
new parameterek[24],frakcio = 0;
if(sscanf(params,\"s[24]{}\",parameterek))
{
SendClientMessage(playerid,PIROS,\"Használat:/frakció [ tagok | lista | Leader: felvesz | kirúg | rang ]\");
return true;
}
if(!strcmp(parameterek,\"tagok\"))
{
if(frakcio == 0) frakcio = pInfo[playerid][pFrakcio];
foreach(Player, p)
{
if(pInfo[p][pFrakcio] == frakcio)
{
SendFormatMessage(playerid, -1, \"Név: %s \",Nev(p));
}
}
}
if(!strcmp(parameterek,\"lista\"))
{
for(new i = 0; i < MAX_FRAKCIO; i++)
{
if(FrakcioInfo[Hasznalva] == 1)
{
SendFormatMessage(playerid,NARANCS,\"Frakció: %s | Tipus %s\",FrakcioInfo[fNev],FrakcioInfo[fTipus]);
}
}
}
if(!strcmp(parameterek,\"felvesz\"))
{
//if(pInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID;
if(sscanf(params,\"u\",pID))return SendClientMessage(playerid,NARANCS,\"Használat: /frakció felvesz [ Játékos ]\");
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
SendFormatMessage(playerid,NARANCS,\"Sikeresen felvetted %s-t ide: %s\",Nev(pID),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
SendFormatMessage(playerid,NARANCS,\"<< %s felvett téged ide: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
}
if(!strcmp(parameterek,\"kirúg\"))
{
if(pInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID;
if(sscanf(params,\"u\",pID))return SendClientMessage(playerid,NARANCS,\"Használat: /frakció kirúg [ Játékos ]\");
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
SendFormatMessage(playerid,NARANCS,\"Sikeresen kirúgtad %s-t\",Nev(pID));
SendFormatMessage(playerid,NARANCS,\"<< %s kirúgott téged innen: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
}
if(!strcmp(parameterek,\"rang\"))
{
if(pInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID,rang;
if(sscanf(params,\"ud\",pID,rang))return SendClientMessage(playerid,NARANCS,\"Használat: /frakció rang [ Játékos ] [ Rang(1-8) ]\");
if(rang < 1 || rang > 8) return SendClientMessage(playerid,PIROS,\"Rang 1-8 között!!\");
pInfo[pID][pRang] = rang;
SendFormatMessage(playerid,NARANCS,\"új rangot adtál neki: %s | Rang: %s\",Nev(pID),Rangok(rang,pInfo[pID][pFrakcio]));
SendFormatMessage(playerid,NARANCS,\"<< %s kirúgott téged innen: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
}
return 1;
}
A parancs végén ott a return 1; :/
-
if(sscanf(params,\"{s[24}u\",pID))
Próbáld meg így
-
if(sscanf(params,\"{s[24}u\",pID))
Próbáld meg így
Mikor be írom /frakcio felvesz
egyből ki írja hogy önmagamat vettem fel, viszont a rang és a kirúg is buggos :c
-
if(sscanf(params,\"{s[24]}d\",pID))return SendClientMessage(playerid,NARANCS,\"Használat: /frakció felvesz [ Játékos ]\");
Így próbáld meg.
-
Az utcsi probléma az hogy nem veszi fel a játékost esetleg kirúgja :/
-
Azt a \"d\"-t írd át \"u\"-ra..
if(sscanf(params,\"{s[24]}u\",pID))
Mivel neked mindenhol hiányzik a kihagyás módszere, így oda kell írnod mindegyikhez ezt, úgy ahogy fentebb van:
{s[24]}
Az utcsi probléma az hogy nem veszi fel a játékost esetleg kirúgja :/
Ezt pedig nem értem..
-
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
Ez van a kirúgás kódódnál is, írd át -1,re vagy valamire, mert így nem rúgod ki, csak ugyanúgy hagyod kb. :D
-
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
Ez van a kirúgás kódódnál is, írd át -1,re vagy valamire, mert így nem rúgod ki, csak ugyanúgy hagyod kb. :D
Ezt most úgy nem értem ???
-
Akit kirúgsz, annak a játékosnak a változóját állítsd át akármilyen értékre, ami nem egyezik meg egy frakció ID-jével sem, így máris nincs benne az adott szervezetben.
-
Akit kirúgsz, annak a játékosnak a változóját állítsd át akármilyen értékre, ami nem egyezik meg egy frakció ID-jével sem, így máris nincs benne az adott szervezetben.
És azt úgy, hogy?
-
if(!strcmp(parameterek,\"kirúg\"))
{
if(!pInfo[playerid][pLeader])
return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID;
if(sscanf(params,\"{s[24]}u\",pID))
return SendClientMessage(playerid,NARANCS,\"Használat: /frakció kirúg [ Játékos ]\");
if(!IsPlayerConnected(pID))
return SendClientMessage(playerid,PIROS,\"Nincs ilyen játékos\");
if(pID == playerid)) return 1;
if(pInfo[pID][pFrakcio] != pInfo[playerid][pFrakcio])
return SendClientMessage(playerid,PIROS,\"Ő nem tagja a frakciónak\");
if(pInfo[playerid][pFrakcio] < 0 || pInfo[playerid][pFrakcio] > MAX_FRAKCIO) return SendClientMessage(playerid,PIROS,\"Nem is vagy frakciótag..\");
pInfo[pID][pFrakcio] = -1;
SendFormatMessage(playerid,NARANCS,\"Sikeresen kirúgtad %s-t\",Nev(pID));
SendFormatMessage(playerid,NARANCS,\"<< %s kirúgott téged innen: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
}
if(!strcmp(parameterek,\"felvesz\"))
{
if(!pInfo[playerid][pLeader])
return SendClientMessage(playerid,PIROS,\"Nemkéne..\");
new pID;
if(sscanf(params,\"{s[24]}u\",pID))
return SendClientMessage(playerid,NARANCS,\"Használat: /frakció felvesz [ Játékos ]\");
if(!IsPlayerConnected(pID))
return SendClientMessage(playerid,PIROS,\"Nincs ilyen játékos\");
if(pID == playerid)) return 1;
if(pInfo[pID][pFrakcio] == pInfo[playerid][pFrakcio])
return SendClientMessage(playerid,PIROS,\"Ő már tagja a frakciónak\");
if(pInfo[playerid][pFrakcio] < 0 || pInfo[playerid][pFrakcio] > MAX_FRAKCIO) return SendClientMessage(playerid,PIROS,\"Nem is vagy frakciótag..\");
pInfo[pID][pFrakcio] = pInfo[playerid][pFrakcio];
SendFormatMessage(playerid,NARANCS,\"Sikeresen felvetted %s-t ide: %s\",Nev(pID),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
SendFormatMessage(playerid,NARANCS,\"<< %s felvett téged ide: %s >>\",Nev(playerid),FrakcioInfo[pInfo[playerid][pFrakcio]][fNev]);
}
if(pInfo[playerid][pFrakcio] < 0 || pInfo[playerid][pFrakcio] > MAX_FRAKCIO)
if(pInfo[pID][pFrakcio] == pInfo[playerid][pFrakcio]),if(pInfo[pID][pFrakcio] != pInfo[playerid][pFrakcio])
- Mert ugye minek vennél fel valakit fel ugyanabba a frakcióba többször is? Vagy miért rúgnád ki más frakciójából?..
if(!IsPlayerConnected(pID)) - Nem létező játékost ne akarj már felvenni :D
if(pID == playerid)) - Meg magadat se.. :grrrrr:
Ezekre jó lenne figyelni..Ha a leader értéke egyenlő a frakció ID-vel írd át.. Nem tudom hogy te írtad e mindezt, de ha ezekre nem figyelsz oda óriási bughalmazt fogsz csinálni :facepalm: