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: folnoraa - 2015. Március 22. - 20:19:08

Cím: Setlevel hiba? vagy más a probléma?
Írta: folnoraa - 2015. Március 22. - 20:19:08
Sziasztok! Lenne egy scriptem amit nem nagyon értek, mert megadom magamnak az 5-ös admint, vagy 1-est, tök mindegy de nem használhatom a parancsokat. Valaki segítene? Előre is köszönöm!
 
#include <a_samp>
#include <dini>
#include <sscanf2>
#include <zcmd>
#define MAX_SZINT 5
enum pdata //az adattároló neve
{
       Level,// A szint értéke
       Death,//A halálok száma
       Money,//A pénz értéke
       Score //A pont értéke
}
new PlayerInfo[MAX_PLAYERS][pdata];
public OnFilterScriptInit()
{
        return 1;
}
public OnFilterScriptExit()
{
        return 1;
}
public OnPlayerConnect(playerid)
{
        new string[128],name[MAX_PLAYER_NAME];
        GetPlayerName(playerid,name,sizeof(name));
        format(string,sizeof(string),\"/nAdmin/%s.ini\",name);
        if(dini_Exists(string))
        {
                PlayerInfo[playerid][Level] = dini_Int(string,\"Level\");
                PlayerInfo[playerid][Death] = dini_Int(string,\"Halalok\");
                GivePlayerMoney(playerid,dini_Int(string,\"Penz\"));
                SetPlayerScore(playerid,dini_Int(string,\"Pont\"));
        }
        else
        {
            dini_Create(string);
        }
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        new string[128],name[MAX_PLAYER_NAME];
        GetPlayerName(playerid,name,sizeof(name));
        format(string,sizeof(string),\"%s.ini\",name);
        if(dini_Exists(string))
        {
            dini_IntSet(string,\"Szint\",PlayerInfo[playerid][Level]);
            dini_IntSet(string,\"Halalok\",PlayerInfo[playerid][Death]);
            dini_IntSet(string,\"Penz\",GetPlayerMoney(playerid));
            dini_IntSet(string,\"Pont\",GetPlayerScore(playerid));
        }
        return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
        PlayerInfo[playerid][Death]++; //növeltük az értéket 1-el.
        return 1;
}
CMD:setlevel(playerid, params[])
{
new id, szint, nev[MAX_PLAYER_NAME], nev2[MAX_PLAYER_NAME], string[128];
if(sscanf(params, \"dd\", id, szint)) return SendClientMessage(playerid, -1, \"Használat: /setlevel [playerid] [szint]\");
if(PlayerInfo[playerid][Level] < MAX_SZINT && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, \"Nincs elég szinted a parancs használatához!\");
GetPlayerName(playerid, nev, sizeof(nev));
GetPlayerName(id, nev2, sizeof(nev2));
PlayerInfo[id][Level] = szint;
format(string, sizeof(string), \"Adminisztrátor %s megváltoztatta az adminszintedet erre: %d\", nev, szint);
SendClientMessage(id, -1, string);
format(string, sizeof(string), \"Adminisztrátor %s megváltoztatta %s adminszintjét erre: %d\", nev, nev2, szint);
SendClientMessageToAll(-1, string);
return 1;
}
CMD:cc(playerid)
{
for(new i; i<50; i++)
{
SendClientMessageToAll(-1,\"\");
}
SendClientMessageToAll(-1,\"Adminisztrátor megtisztította a chatet!\");
return 1;
}

 


Bocsánat, a cc parancshoz nem tettem hozzá, hogy hanyas adminnak kellene lennie, de szerintem ki tudjátok lesni a setlevelből, hogy hogyan is van.
[gmod]Pawn code kirakva, illetve legközelebb használd a módosítás gombot.[/gmod]
Cím: Setlevel hiba? vagy más a probléma?
Írta: Flash - 2015. Március 22. - 21:02:02
Ha a parancs 1-es admin szinttől használható akkor írd a parancs elejére:
 
if(PlayerInfo[playerid][Level] < 1)) return SendClientMessage(playerid, -1, \"Te nem használhatod ezt a parancsot!\");
Cím: Setlevel hiba? vagy más a probléma?
Írta: TengeriMalac - 2015. Március 23. - 12:40:59
if(PlayerInfo[playerid][Level] < MAX_SZINT && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, \"Nincs elég szinted a parancs használatához!\");

 
magyarul ha nem vagy maximum szintű, és nem vagy RCON akkor nem használhatod.
Cím: Setlevel hiba? vagy más a probléma?
Írta: Blez - 2015. Március 24. - 14:58:17
Véletlenül ezt a kódot nem Booy rakta ki tutorial céljából még régebben ?  :D
http://sampforum.hu/index.php?topic=46830.0
Cím: Setlevel hiba? vagy más a probléma?
Írta: scripter - 2015. Március 25. - 15:01:36
inkább csinálj rá egy stock-ot.
azzal lekérdezed h megfelel-e.
ha nem akkor return SendClientMessage(...);
ha még akarsz vagy 50-100 sort spórolni a mode-odból, akkor már a stock-on belül defináld. (csak akkor tudsz spórolni ha még más is van ott: pl admin duty)
én amikor csináltam az adminrendszerembe akkor do-while -al csináltam.