Szerző Téma: SSCANF Gond  (Megtekintve 521 alkalommal)

SSCANF Gond
« Dátum: 2014. Augusztus 07. - 22:33:26 »
0 Show voters
Hali!
Van egy /pmutat [játékosid] parancsom,viszont nem akar mûködni,a nevet nem írja ki illetve ID nélkül is megy a parancs (nem írja hogy nincs fent a játékos),illetve ha rossz ID -t írok akkor is megy a parancs,a server.exe fekete kis ablakban ennyit ír: \"sscanf error system not initialized\",néztem itt a fórumban is azt,hogy \"Szerverem frissítése 0.3z\" -re,frissítettem az SSCANFot és Streamert,pluginokat,de azzal is ugyanezt írja. Mi lehet a gond ?
 

CMD:pmutat(playerid, params[])
{
     new targetid = strval(params);
      new papirok[128];
    new penze[128];
    new nev[128];
    if(sscanf(params,\"u\",id)) SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");
    if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_ULTRARED,\"Nincs ilyen játékos!\");
    else {
    format(papirok,sizeof(papirok),\"%s megmutatta neked az engedélyeit.\",nev);
    SendClientMessage(targetid,COLOR_YELLOW,papirok);
    format(penze,sizeof(penze),\"Név: %s | Jogosítvány: %d | Repülõ engedély: %d \",nev,sInfo[playerid][jogsi],sInfo[playerid][repenged]);
    SendClientMessage(targetid,COLOR_YELLOW,penze);
    }
    return 1;
}
« Utoljára szerkesztve: 2014. Augusztus 07. - 22:58:29 írta Dfoglalo »

SSCANF Gond
« Válasz #1 Dátum: 2014. Augusztus 08. - 08:32:03 »
0 Show voters
if(sscanf(params,\"u\",id)) SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");

 

if(sscanf(params,\"u\",id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");

 
ez felesleges..
 
else {

 
illetve nem elég a név változó, le is kell kérni a nevét..
 
GetPlayerName(id, nev, sizeof(nev));

 
még1 megjegyzés, felesleges a nev változónak a 128 hossz, mert max asszem 24 lehet a neved hossza..

SSCANF Gond
« Válasz #2 Dátum: 2014. Augusztus 08. - 09:35:30 »
0 Show voters
Idézetet írta: TengeriMalac date=1407479523\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49940\" data-ipsquote-contentclass=\"forums_Topic

if(sscanf(params,\"u\",id)) SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");

 

if(sscanf(params,\"u\",id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");

 
ez felesleges..
 
else {

 
illetve nem elég a név változó, le is kell kérni a nevét..
 
GetPlayerName(id, nev, sizeof(nev));

 
még1 megjegyzés, felesleges a nev változónak a 128 hossz, mert max asszem 24 lehet a neved hossza..
 
Próbáltam,de nem jó. Server.exe ablakban ugyanazt írja \"sscanf error: system not initialized\" illetve ha simán beírom /pmutat akkor azt írja \"Használat: /pmutat [iD/Név]\",ha jó ID-t írok vagy ha rosszat akkor is ugyanezt írja az elsõ sscanf ellenõrzésnél nem megy tovább,mi lehet a gond?
Itt a szkript,így írtam át:
 

new targetid = strval(params);
      new papirok[128];
    new adatok[128];
    new nev[24];
    GetPlayerName(id, nev, sizeof(nev));
    if(sscanf(params,\"u\",id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Nincs ilyen játékos!\");
    format(papirok,sizeof(papirok),\"%s megmutatta neked az engedélyeit.\",nev);
    SendClientMessage(targetid,COLOR_YELLOW,papirok);
    format(adatok,sizeof(adatok),\"Név: %s | Jogosítvány: %d | Repülõ engedély: %d \",nev,sInfo[playerid][jogsi],sInfo[playerid][repenged]);
    SendClientMessage(targetid,COLOR_YELLOW,adatok);

 
EDIT: Közben meg oldottam, \"#include <sscanf>\" helyett sscanf2 -õt kellet használni,most már jól megy.
« Utoljára szerkesztve: 2014. Augusztus 08. - 09:54:32 írta Robi222 »

Nem elérhető gbr333

  • 670
    • Profil megtekintése
SSCANF Gond
« Válasz #3 Dátum: 2014. Augusztus 08. - 09:53:33 »
0 Show voters
Így?
 

    new papirok[128];
    new adatok[128];
    new nev[24];
    GetPlayerName(id, nev, sizeof(nev));
    if(sscanf(params,\"u\",id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Használd: /pmutat [iD/Név]\");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_ULTRARED,\"Nincs ilyen játékos!\");
    format(papirok,sizeof(papirok),\"%s megmutatta neked az engedélyeit.\",nev);
    SendClientMessage(id,COLOR_YELLOW,papirok);
    format(adatok,sizeof(adatok),\"Név: %s | Jogosítvány: %d | Repülõ engedély: %d \",nev,sInfo[playerid][jogsi],sInfo[playerid][repenged]);
    SendClientMessage(id,COLOR_YELLOW,adatok);

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal