-
Az elõbb csináltam /kick parancsot, minden jó csak nem akarja kiírni az indokot.
a zcmd és az sscanf include -olva van, és még úgy is elfogadja, hogy nem írok indokot, pl. /kick 0 az indok hiányzik és még úgy is kickel. De hogyha indokot is írok pl. /kick 0 teszt, akkor is kickel, de nem ír indokot
Kód:
CMD:kick(playerid, params[])
{
new targetid,string[128],reason[128],string0[128];
GetPlayerName(playerid,nev,sizeof(nev));
GetPlayerName(targetid,nev0,sizeof(nev0));
format(string,sizeof(string),\"*Admin {00ff00}\'%s\'{0088ff} által ki lett rúgva {00ff00}\'%s\' {0088ff}játékost. [indok: %s]\",nev,nev0,reason);
format(string,sizeof(string),\"Ki lettél rúgva *Admin\'%s\' által. Indok: [%s]\",nev,reason);
if(IsPlayerAdmin(playerid))
{
if(sscanf(params,\"uS(reason)[128]\",targetid,reason)) return SendClientMessage(playerid,0x0000ffff,\"Használat: {ff00ff}/kick [PlayerID] [indok]\");
if(IsPlayerConnected(targetid))
{
SendClientMessage(playerid,0x0088ffff,string0);
SendClientMessageToAll(0x0088ffff,string);
Kick(targetid);
}
}
else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xff0000ff,\"Bocsi, de nem használhatod ezt a parancsot :P\");
else if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,0xff0000ff,\"A játékos nincs csatlakozva!\");
return 1;
}
Compile -nál hibát egyet sem ír(/kickel kapcsolatban)
Valaki segítsen, a válaszokat elõre is köszönöm!
-
if(sscanf(params,\"uS(reason)[128]\",targetid,reason)) return SendClientMessage(playerid,0x0000ffff,\"Használat: {ff00ff}/kick [PlayerID] [indok]\");
helyett
if(!sscanf(params,\"uS(reason)[128]\",targetid,reason)) return SendClientMessage(playerid,0x0000ffff,\"Használat: {ff00ff}/kick [PlayerID] [indok]\");
-
Tessék: Átírtam + javítottam!
#include a_samp
#include zcmd
#include sscanf2
//new nev[MAX_PLAYER_NAME];
//new nev0[MAX_PLAYER_NAME];
CMD:kick(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) SendClientMessage(playerid,0xff0000ff,\"Bocsi, de nem használhatod ezt a parancsot :P\");
new targetid,string[128],reason[128],string0[128];
if(sscanf(params,\"us[128]\",targetid,reason)) return SendClientMessage(playerid,0x0000ffff,\"Használat: {ff00ff}/kick [PlayerID] [indok]\");
if(IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xff0000ff, \"Hiba! A játékos nem online!\");
GetPlayerName(playerid,nev,sizeof(nev));
GetPlayerName(targetid,nev0,sizeof(nev0));
format(string,sizeof(string),\"*Admin {00ff00}\'%s\'{0088ff} által ki lett rúgva {00ff00}\'%s\' {0088ff}játékost. [indok: %s]\",nev,nev0,reason);
format(string,sizeof(string),\"Ki lettél rúgva *Admin\'%s\' által. Indok: [%s]\",nev,reason);
SendClientMessage(playerid,0x0088ffff,string0);
SendClientMessageToAll(0x0088ffff,string);
Kick2(targetid);
return 1;
}
forward Kick2(playerid);
forward KickFix(playerid);
public Kick2(playerid) return SetTimerEx(\"KickFix\", 1000, false, \"i\", playerid);
public KickFix(playerid) return Kick(playerid);
-
Egyébként a scriptben még van egy hiba, nevezetesen, hogy:
if(!IsPlayerAdmin(playerid)) SendClientMessage(playerid,0xff0000ff,\"Bocsi, de nem használhatod ezt a parancsot :P\");
esetén a kód futása nem áll meg. Helyesen:
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xff0000ff,\"Bocsi, de nem használhatod ezt a parancsot :P\");
-
Na meg mégegy hiba itt: if(IsPlayerConnected(targetid))
javított változat:
#include a_samp
#include zcmd
#include sscanf2
//new nev[MAX_PLAYER_NAME];
//new nev0[MAX_PLAYER_NAME];
CMD:kick(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xff0000ff,\"Bocsi, de nem használhatod ezt a parancsot :P\");
new targetid,string[128],reason[128],string0[128];
if(sscanf(params,\"us[128]\",targetid,reason)) return SendClientMessage(playerid,0x0000ffff,\"Használat: {ff00ff}/kick [PlayerID] [indok]\");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xff0000ff, \"Hiba! A játékos nem online!\");
GetPlayerName(playerid,nev,sizeof(nev));
GetPlayerName(targetid,nev0,sizeof(nev0));
format(string,sizeof(string),\"*Admin {00ff00}\'%s\'{0088ff} által ki lett rúgva {00ff00}\'%s\' {0088ff}játékost. [indok: %s]\",nev,nev0,reason);
format(string,sizeof(string),\"Ki lettél rúgva *Admin\'%s\' által. Indok: [%s]\",nev,reason);
SendClientMessage(playerid,0x0088ffff,string0);
SendClientMessageToAll(0x0088ffff,string);
Kick2(targetid);
return 1;
}
forward Kick2(playerid);
forward KickFix(playerid);
public Kick2(playerid) return SetTimerEx(\"KickFix\", 1000, false, \"i\", playerid);
public KickFix(playerid) return Kick(playerid);