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: Robi222 - 2014. augusztus 07. - 22:33:26

Cím: SSCANF Gond
Írta: Robi222 - 2014. augusztus 07. - 22:33:26
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;
}
Cím: SSCANF Gond
Írta: TengeriMalac - 2014. augusztus 08. - 08:32:03
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..
Cím: SSCANF Gond
Írta: Robi222 - 2014. augusztus 08. - 09:35:30
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.
Cím: SSCANF Gond
Írta: gbr333 - 2014. augusztus 08. - 09:53:33
Í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);