-
Sziasztok,
Nem mûködik a bann parancsom,korábban segítséget kértem de attól se lett jobb,régebben összevissza számokat írt,de most csak 0.
Remélem tud valaki segíteni :D
[pawn]CMD:kitilt(playerid,params[])
{
/*------*/
new id, indok[128];
/*------*/
if(sscanf(params,\"us\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
{
if (Belepve[playerid] != 0)
{
if(JatekosInfo[playerid][Admin] > 2) // Ha a játékos admin.
{
if(id != INVALID_PLAYER_ID)
{
new string[256];
new file[256];
new fogadonev[MAX_PLAYER_NAME];
GetPlayerName(id,fogadonev,sizeof(fogadonev));
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s ki lett tiltva %s által. Indok: %s\", fogadonev,nev,indok);
SendClientMessageToAll(FIGYELEM, string);
printf(string);
format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", fogadonev);
strmid( JatekosInfo[ id ][ Indok], indok, 0, strlen( indok ) );
JatekosInfo[id][bann] = 1;
dini_Set(file,\"Indok\", JatekosInfo[id][indok]);
dini_IntSet(file, \"Bannolva\",JatekosInfo[id][bann]);
Kick(id);
}
else SendClientMessage(playerid, HIBA, \"Nincs ilyen játékos!\");
}
else SendClientMessage(playerid, HIBA, \"Minimum 3-es szintû adminnak kell lenned!\");
}
}
return 0;
}[/pawn]
-
Mivel ZCMD \"return 0;\" helyett \"return 1;\" kell.
-
Nem jó
-
Akkor ez:
if(sscanf(params,\"us[128]\",id,indok)) return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
Ez helyett:
if(sscanf(params,\"us\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
-
Így el sem fogadja a parancsot.Mindig a használatát írja ki.
-
CMD:kitilt(playerid,params[])
{
/*------*/
new id, indok[128];
/*------*/
if(sscanf(params,\"us[128]\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
if (Belepve[playerid] != 0)
{
if(JatekosInfo[playerid][Admin] > 2) // Ha a játékos admin.
{
if(id != INVALID_PLAYER_ID)
{
new string[256];
new file[256];
new fogadonev[MAX_PLAYER_NAME];
GetPlayerName(id,fogadonev,sizeof(fogadonev));
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s ki lett tiltva %s által. Indok: %s\", fogadonev,nev,indok);
SendClientMessageToAll(FIGYELEM, string);
printf(string);
format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", fogadonev);
strmid( JatekosInfo[ id ][ Indok], indok, 0, strlen( indok ) );
JatekosInfo[id][bann] = 1;
dini_Set(file,\"Indok\", JatekosInfo[id][indok]);
dini_IntSet(file, \"Bannolva\",JatekosInfo[id][bann]);
Kick(id);
}
else SendClientMessage(playerid, HIBA, \"Nincs ilyen játékos!\");
}
else SendClientMessage(playerid, HIBA, \"Minimum 3-es szintû adminnak kell lenned!\");
}
return 1;
}
-
Használati utasítást ír ki.
-
Milyen sscanf-et használsz?
-
Ha \'használat\'-nál azt íratod ki, hogy [Játékos ID], akkor nem látom értelmét annak, hogy \'u\'-ként adod meg azt a paramétert.
Használj akkor \'d\' vagy \'i\' formátumot.
-
De azt csak úgy oda írtam :D lehet nevet is használni. :D
A legújabb verziót használom
-
Ott hibás az \"u\" paraméter.
-
Nem értitek.
Nem magyaráztam el a problémámat pontosan.
A parancs mûködik de nem írja a fájlba az indokot.És az indok = 0
-
Nem értitek.
Nem magyaráztam el a problémámat pontosan.
A parancs mûködik de nem írja a fájlba az indokot.És az indok = 0
Ne haragudj de ha nem írod le nem tud segíteni senki
-
Most már tudjátok :D
-
Most meg annak nem látom értelmét, hogy a JatekosInfo változóba rakod az indok-ot, utána pedig kickeled a játékost. :D
Valószínûleg OnPlayerDisconnect-nél meg nullázod a játékos változókat.
-
Így lesz 100%
CMD:kitilt(playerid,params[])
{
/*------*/
new id, indok[128];
/*------*/
if(sscanf(params,\"us\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
{
if (Belepve[playerid] != 0)
{
if(JatekosInfo[playerid][Admin] > 2) // Ha a játékos admin.
{
if(id != INVALID_PLAYER_ID)
{
new string[256];
new file[256];
new fogadonev[MAX_PLAYER_NAME];
GetPlayerName(id,fogadonev,sizeof(fogadonev));
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s ki lett tiltva %s által. Indok: %s\", fogadonev,nev,indok);
SendClientMessageToAll(FIGYELEM, string);
printf(string);
format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", fogadonev);
strmid(JatekosInfo[id][indok],indok,0,strlen(indok));
JatekosInfo[id][bann] = 1;
dini_Set(file,\"Indok\", indok);
dini_IntSet(file, \"Bannolva\",JatekosInfo[id][bann]);
Kick(id);
}
else SendClientMessage(playerid, HIBA, \"Nincs ilyen játékos!\");
}
else SendClientMessage(playerid, HIBA, \"Minimum 3-es szintû adminnak kell lenned!\");
}
}
return 0;
}
-
if(sscanf(params,\"us[128]\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
else
{
Else-t mindig kifelejtitek.
-
JatekosInfo[playerid][indok] lesz a fájlban az Indok sor értéke.
Lackos,úgy már próbáltam és számok lesznek az értékei.Vagyis int és nem str.
De mondom,hogy azokkal nincs baj,hanem azzal van a baj,hogy a fájlban lévõ indok sor az indok változóval legyen egyenlõ.
-
1ST_Chr az else nem kell.. senki sem használja mert teljesen felesleges.
-
Nem lehet a fájl mentésnél van a hiba pFile-nél keresd meg a módba h admin.log vagy valami és nézd át!
-
Még egyszer leírom.
Az a baj,hogy nem bírom meghatározni,hogy a változó string legyen,és ezt a stringet írja be a fájlba.
Megy a fájlba írás,legalábbis múltkor ment,de akkor számokat írt.Most lehet,hogy nem megy,mert 0-át ír,néha meg szám és betûkombinációt.
De lehet,hogy akkor inkább egy könnyebb megoldást próbálok keresni.