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: tudvari - 2012. március 26. - 16:13:39

Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 16:13:39
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]
Cím: Változó értéke string legyen
Írta: Rupert - 2012. március 26. - 16:15:04
Mivel ZCMD \"return 0;\" helyett \"return 1;\" kell.
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 16:27:29
Nem jó
Cím: Változó értéke string legyen
Írta: Rupert - 2012. március 26. - 16:29:52
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]\");
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 16:40:12
Így el sem fogadja a parancsot.Mindig a használatát írja ki.
Cím: Változó értéke string legyen
Írta: kadaradam - 2012. március 26. - 16:57:53
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;
}
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 17:00:23
Használati utasítást ír ki.
Cím: Változó értéke string legyen
Írta: Zsolesszka - 2012. március 26. - 17:29:27
Milyen sscanf-et használsz?
Cím: Változó értéke string legyen
Írta: 1ST_Chr - 2012. március 26. - 18:24:32
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.
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 18:25:07
De azt csak úgy oda írtam :D lehet nevet is használni. :D
A legújabb verziót használom
Cím: Változó értéke string legyen
Írta: dexi - 2012. március 26. - 18:28:29
Ott hibás az \"u\" paraméter.
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 18:37:46
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
Cím: Változó értéke string legyen
Írta: #Nexus# - 2012. március 26. - 18:42:29
Idézetet írta: tudvari date=1332779866\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"19122\" data-ipsquote-contentclass=\"forums_Topic
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
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 18:46:46
Most már tudjátok :D
Cím: Változó értéke string legyen
Írta: 1ST_Chr - 2012. március 26. - 18:51:48
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.
Cím: Változó értéke string legyen
Írta: lackos888 - 2012. március 26. - 18:53:35
Í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;
}
Cím: Változó értéke string legyen
Írta: 1ST_Chr - 2012. március 26. - 19:02:22

if(sscanf(params,\"us[128]\",id,indok))return SendClientMessage(playerid,SZURKE,\"Használat: /kitilt [Játékos ID] [indok]\");
else
{

 
Else-t mindig kifelejtitek.
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 26. - 19:05:07
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õ.
Cím: Változó értéke string legyen
Írta: dexi - 2012. március 27. - 07:04:34
1ST_Chr az else nem kell.. senki sem használja mert teljesen felesleges.
Cím: Változó értéke string legyen
Írta: scripter01 - 2012. március 27. - 15:07:38
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!
Cím: Változó értéke string legyen
Írta: tudvari - 2012. március 27. - 15:44:56
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.