Beiträge von .snx

    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