Beiträge von .snx

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Level & Geld hab ich hinbekommen,
    allerdings payday & Banned ist nun das problem :/
    Werden immer wieder auf null gesetzt nach dem Login.


    Beim Login steht



    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    if(dini_Exists(Spieler))
    {
    if(dini_Int(Spieler,"Banned") == 1)
    {
    SendClientMessage(playerid,dunkelrot,"Du bist gebannt!");
    Kick(playerid);
    }
    }
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"****** LOGIN ******","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"****** REGISTRIERUNG ******","Account nicht gefunden\nBitte erstelle dein Passwort:","WEITER","ABBRUCH");
    }
    new PName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,PName,sizeof(PName));
    if ( strfind ( PName, "_", false , false) == -1 && !IsPlayerNPC (playerid) )
    {
    SendClientMessage(playerid,dunkelrot,"Sie haben keinen Roleplay Namen. Bitte benutze folgende Vorlage:");
    SendClientMessage(playerid,dunkelrot,"Max_Mustermann , Steve_Riley , Jayson_Smith , etc.");
    Kick(playerid);
    return 1;
    }
    return 1;
    }


    Der Spieler lädt bei meinem Login Stock.


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
    dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spieler,"Banned",pInfo[playerid][Banned]);
    dini_IntSet(Spieler,"payday",pInfo[playerid][payday]);
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_Int(Spieler,"Adminlevel");
    new getlevel = dini_Int(Spieler,"Level");
    SetPlayerScore(playerid, getlevel);
    new getmoney = dini_Int(Spieler,"Geld");
    GivePlayerMoney(playerid, getmoney);
    dini_Int(Spieler,"Banned");
    dini_Int(Spieler,"payday");
    return 1;
    }

    So weit, so gut.
    Das Problem gelöst, kommt bei SetPlayerScore ebenfalls errors....


    BTW: Das sollte nur zum test sein mit der Minute, wie müsste das aussehen wenn ich das auf 60Minuten hochschrauben wollen würde?

    Moin @breadfish User,
    Ich hab mir eben nach kleiner Anleitung mal ein PayDay System gescriptet und ich verzweifle gerade...



    public minute()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    dini_IntSet(i,"payday",pInfo[playerid][payday]+1);
    if(pInfo[playerid][payday]==1)
    {
    dini_IntSet(i,"payday",pInfo[playerid][payday]-1);
    GivePlayerMoney(i,+1500);
    SetPlayerScore(i,+1);
    SendClientMessageToAll(dunkelgrün, "Du hast deinen Gehaltscheck erhalten. 2500€");
    continue;
    }
    }
    }
    }


    errors:
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(573) : error 035: argument type mismatch (argument 1)
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(574) : error 017: undefined symbol "playerid"
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(576) : error 035: argument type mismatch (argument 1)
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 029: invalid expression, assumed zero
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : warning 215: expression has no effect
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 001: expected token: ";", but found ")"
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : error 029: invalid expression, assumed zero
    C:\Users\danie\Desktop\SERVER\gamemodes\script.pwn(577) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.



    Hilfe wäre echt nett :/

    Hay, ich bin heute mal wieder hier wegen einem kleinen Speicher Problem.



    Hier der Stock zum Registrieren

    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Banned",0);
    dini_IntSet(Spieler,"Geld",0);
    GivePlayerMoney(playerid, 25000);
    dini_IntSet(Spieler,"Level",0);
    SetPlayerScore(playerid,1);
    SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    return 1;
    }


    Hier die Stocks zum Laden&Speichern

    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_IntSet(Spieler,"Fraktion",pInfo[playerid][Fraktion]);
    dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
    dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spieler,"Banned",pInfo[playerid][Banned]);
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
    pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
    pInfo[playerid][Level]=dini_Int(Spieler,"Level");
    pInfo[playerid][Geld]=dini_Int(Spieler,"Geld");
    pInfo[playerid][Banned]=dini_Int(Spieler,"Banned");
    return 1;
    }


    Ich gebe dem Spieler bei der Registration 25000€, nach dem ausloggen stand alles noch richtig in der Spielerdatei mit 25000€(nachgeschaut), allerdings nach dem erneuten einloggen sind diese weg und in der Spielerdatei steht auch 0€.
    Das gleiche mit dem Level(Score) und dem Banned....



    Ich kapier es einfach nicht...
    Hilfe wäre nett :/

    Mensch bin ich heute dämlich :D
    Aber, nun sagt er
    array must be indexed (variable "dini_Get")


    Gab es da nichts zum abrufen der Datei?

    Danke @DasNeo
    Der fehler mit dem Aufhängen ist nun behoben.
    Allerdings kommen jetzt errors,

    Code
    script.p(497) : error 001: expected token: "-string end-", but found "-identifier-"

    Hey Breadfish,


    Also ich hab mir nen kleines Bansystem geschrieben(hust*)
    und bekomme immer den Fehler Compiler reagiert nicht mehr seit dem.
    Wenn ich das System wieder entferne gehts wieder ?(



    public OnPlayerConnect(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    if(dini_Get(Spieler,"Banned" = 1)
    {
    if(dini_Exists(Spieler))
    {
    SendClientMessage(playerid,dunkelrot,"Du bist gebannt!");
    Kick(playerid)
    }
    }
    else
    {
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"LOGIN","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"REGISTRIERUNG","Account nicht gefunden\nBitte erstelle dein Passwort:","WEITER","ABBRUCH");
    }
    }
    return 1;
    }


    Hilfe wäre nett :/

    Der Stock SpielerLaden ;)



    [list=1][*]stock SpielerLaden(playerid)
    [*]{
    [*]new Spieler[64];
    [*]new Sname[MAX_PLAYER_NAME];
    [*]GetPlayerName(playerid,Sname,sizeof(Sname));
    [*]format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    [*]pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
    [*]pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
    [*]pInfo[playerid][Level]=dini_Int(Spieler,"Level");
    [*]pInfo[playerid][Geld]=dini_Int(Spieler,"Geld");
    [*]return 1;
    [*]}
    [/list]


    ansonsten halt noch
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,weiß,"Du hast den Login Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    SpielerLaden(playerid);
    Login(playerid,inputtext);
    return 1;
    }
    }


    Aber sonst momentan keiner.

    Dann kann doch trotzdem jeder zugreifen weil das Script ja nicht abfragt welcher Admin ist und welcher nicht? Oder liege ich da falsch?
    //EDIT:
    Habs falsch gelesen :D schon gut :P


    //EDIT2:
    Alle fehler ausgemärzt bis auf einen.
    Der Integer in der Spielerdatei setzt sich immer wieder auf 0 zurück nach dem Logout...
    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Adminlevel",0);
    SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    return 1;
    }


    //Login
    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),true))
    {
    SpielerLaden(playerid);
    SetSpawnInfo(playerid,0,0,1567.9358,-1891.7168,13.5593,359.1738,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Falsches Passwort.");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"LOGIN","Account wurde gefunden\nBitte gebe dein Passwort ein:","WEITER","ABBRUCH");
    }
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    dini_IntSet(Spieler,"Fraktion",pInfo[playerid][Fraktion]);
    dini_IntSet(Spieler,"Adminlevel",pInfo[playerid][Admin]);
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.cfg",Sname);
    pInfo[playerid][Admin]=dini_Int(Spieler,"Adminlevel");
    pInfo[playerid][Fraktion]=dini_Int(Spieler,"Fraktion");
    return 1;
    }

    Gut, warum auch immer hatte ich die SAMPVoice configuration anscheinend noch drinne, das Plugin aber nicht :D
    Hab den Code ein wenig auf mein Script angepasst, sieht nun so aus und funktioniert fast perfekt :)
    if(strcmp("/restart", cmdtext, true, 10) == 0)
    {
    new Spieler[64];
    if (dini_Int(Spieler, "Adminlevel") >= 0)
    {
    new string[64];
    GetPlayerName(playerid,string,MAX_PLAYER_NAME);
    format(string,sizeof(string),"*** %s hat den Server neugestartet! ***",string);
    SendClientMessageToAll(dunkelrot,string);
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
    }
    return 1;
    }


    So, nun besteht noch das problem dass wenn ich in meiner Spielerdatei Admin 2 eintrage, nach dem Einloggen der Server das ganze wieder auf null setzt 8|
    Dazu kommt das nun auch einer mit Rang 0 das ganze ausführen kann.... #IchBinSchlecht :D

    Danke @Kaliber, allerdings startet der server nun garnicht mehr 8|

    Script ist im richtigen Ordner,
    Eingetragen ist auch eigentlich alles richtig.

    Guten Tag,
    Ich habe ein für mich wichtiges Problem :D


    Ist wahrscheinlich unnötig dieses zu entfernen, keine Ahnung.
    Naja, auf jedenfall kommt diese Fehlermeldung beim Compilen:


    warning 202: number of arguments does not match definition
    bei diesem Code:
    if(strcmp("/restart", cmdtext, true, 10) == 0)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    if (dini_Int(Spieler, "Adminlevel") >= 1)
    {
    SendClientMessage(playerid,dunkelrot,"***%s hat den Server neugestartet!***",Sname); DAS IST DIE PROBLEMZEILE
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,dunkelrot,"Du hast nicht die benötigte Berechtigung!");
    }
    return 1;
    }


    Ich bedanke mich für Hilfe :S