Beiträge von n0skillg3t

    Musst bei OnPlayerDisconnect den Wert speichern.


    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name); //Pfad richtig einstellen.
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));


    Und bei OnPlayerConnect aufrufen.


    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name); //Und hier den Pfad auch wieder richtig einstellen.
    skin = dini_Get(Spielerdatei,"Skin");
    SetPlayerSkin(playerid,skin);


    Im empfehle dir dini.

    Guten Tag,
    wisst ihr zufällig wo hier das Problem liegt?


    ocmd:setzeitung(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,2))
    {
    SendClientMessage (playerid,GRAU,"Du darfst diesen Befehl nicht benutzen!");
    }
    new pIN;
    if(sscanf(params,"s",pIN))
    {
    SendClientMessage(playerid,GRAU,"Benutze: /setzeitung [Inhalt]");
    }
    format(zeitungdatei,sizeof(zeitungdatei),"/ACCS/zeitung.ini");
    dini_Create(zeitungdatei);
    dini_Int(zeitungdatei,"Wetter",pIN);
    return 1;
    }


    Es speichert den Wert "s.part"....
    Sollte aber das geschriebene Speichern.


    PS.: Sorry das ich die Vorlage nicht verwendet habe, hatte Probleme mit der Vorlage...


    MfG

    Dankeschön, aber da kommt gleich das nächste Problem...^^


    Aber jetzt bekomm ich auch Geld abgezogen, wenn ich auf Abbrechen drücke.


    Hab das hier versucht:


    if(!response)
    SendClientMessage(playerid,GRAU,"Bestellen abgebrochen.");


    Aber dann bekomm ich wieder dreckige Errors...

    Danke dir :)


    Funktioniert auch.


    Vielen Dank an euch beiden.


    Und gleich ein neues Problem :D


    Jetzt bekomm ich irgendwie bei kauf z.B. von Pommes 80€ dazu und beim zweiten kauf von pommes 160...


    Da stimmt was nicht :D


    //edit: Ich hatte 100€ auf der Hand, das Script hat mir 20€ abgezogen. Jetzt heist es aber GivePlayerMoney... diese 80€...
    ---- 100 + 80 = 180.
    Also habe ich einen Endbetrag von 180€.
    Man müsste irgendwo ResetPlayerMoney einfügen, aber irgendwie mein ich würde das wegen GetPlayerMoney nicht gehen :/


    Nochmal Hilfe bitte =)

    Hier mein kompletter OnDialogResponse Code...


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    Login(playerid,inputtext);
    SetTimer("LifeTime",60000,1);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_HELP)
    {
    if(response==0)
    {
    new string[256];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    SendClientMessage(playerid,0xFFFF00FF,"Alle Administratoren die Online sind wurden benachrichtigt, das du Hilfe benötigst.");
    format(string, sizeof(string), "%s benötigt Hilfe! Du kannst ihm mit /aw antworten!", sendername);
    SendAdminMessage(0xFFFA00FF, string);
    return 1;
    }
    if(response==1)
    {
    SendClientMessage(playerid,BLAU,"Schön, das du alleine zurecht gefunden hast.");
    return 1;
    }
    }
    }
    if(dialogid == 20)
    {
    switch(listitem)// Checking which item was chosen
    {
    case 0:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, health+10);
    }
    case 1:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, health+20);
    }
    case 2:
    {
    if(GetPlayerMoney(playerid) < 80)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -80);
    SetPlayerHealth(playerid, health+30);
    }
    case 3:
    {
    if(GetPlayerMoney(playerid) < 100)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -100);
    SetPlayerHealth(playerid, health+45);
    }
    case 4:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, health+15);
    }
    case 5:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, health+11);
    }
    case 6:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, health+20);
    }
    case 7:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, health+15);
    }
    case 8:
    {
    if(GetPlayerMoney(playerid) < 35)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -35);
    SetPlayerHealth(playerid, health+18);
    }
    }
    }

    Sind immernoch die selben Fehler.


    Habe deinen Edit genommen und das Leben so wie Benjamin es gesagt hat:


    if(dialogid == 20)
    {
    switch(listitem)// Checking which item was chosen
    {
    case 0:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, bsnleben+10);
    }
    case 1:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, bsnleben+20);
    }
    case 2:
    {
    if(GetPlayerMoney(playerid) < 80)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -80);
    SetPlayerHealth(playerid, bsnleben+30);
    }
    case 3:
    {
    if(GetPlayerMoney(playerid) < 100)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -100);
    SetPlayerHealth(playerid, bsnleben+45);
    }
    case 4:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, bsnleben+15);
    }
    case 5:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, bsnleben+11);
    }
    case 6:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, bsnleben+20);
    }
    case 7:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, bsnleben+15);
    }
    case 8:
    {
    if(GetPlayerMoney(playerid) < 35)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -35);
    SetPlayerHealth(playerid, bsnleben+18);
    }
    }
    }


    Ich hab GetPlayerHealth schon wo anders definiert..
    Falls ihr jetzt denkt, das wäre ein Fehler.

    Tag, kann mir vielleicht einer sagen wo hier die Fehler sind ?
    Ich bekomme diese Errors:


    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(535) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(537) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(539) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(541) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(545) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(547) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(551) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(553) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(557) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(559) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(563) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(565) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(569) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(571) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(575) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(577) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(581) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(583) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(587) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Marc\Desktop\ZENSIERT\gamemodes\ZENSIERT.pwn(589) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    20 Errors.


    Script Ausschnitt:
    if(dialogid==20)
    {
    switch(listitem)// Checking which item was chosen
    {
    case 0:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, +10);
    }
    case 1:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, +20);
    }
    case 2:
    {
    if(GetPlayerMoney(playerid) < 80)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -80);
    SetPlayerHealth(playerid, +30);
    }
    case 3:
    {
    if(GetPlayerMoney(playerid) < 100)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -100);
    SetPlayerHealth(playerid, +45);
    }
    case 4:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, +15);
    }
    case 5:
    {
    if(GetPlayerMoney(playerid) < 20)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -20);
    SetPlayerHealth(playerid, +11);
    }
    case 6:
    {
    if(GetPlayerMoney(playerid) < 50)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid, +20);
    }
    case 7:
    {
    if(GetPlayerMoney(playerid) < 30)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -30);
    SetPlayerHealth(playerid, +15);
    }
    case 8:
    {
    if(GetPlayerMoney(playerid) < 35)return SendClientMessage(playerid,0xFFFFFF,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -35);
    SetPlayerHealth(playerid, +18);
    }
    }
    }

    Nein :D
    Das ist auch nicht das Problem...
    Da ich das ja jetzt in einen Befehl gepackt habe, habe ich gesehen,
    das etwas mit den Koordinaten nicht stimmt.


    So wird es wiedergebeben:


    SetPlayerPos(playerid,1318915341,-834262984,1318911568);
    //Hier bekomme ich das "Stay within the World Boundries"


    Dann habe ich es so probiert:


    SetPlayerPos(playerid,1318.915341,-8342.62984,13.18911568);
    //Hier bekomme ich das "Stay within....blabla" nicht mehr aber ich werd irgendwo im Meer gespawnt...



    ERGO: Die Koordinaten werden falsch gespeichert bzw. gelesen.


    Bitte um Hilfe =)

    Hab jetzt ein neues Problem...
    Wenn ich mich einlogge dann kommt gleich da nach "Stay within the World Boundries",
    obwohl ich nirgendswo in meinem Script diese Funktion verwende...


    Hier mein Code:


    public OnPlayerDisconnect(playerid, reason)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    new Float:lastx, Float:lasty, Float:lastz;
    GetPlayerPos(playerid, lastx, lasty, lastz);
    SetPVarInt(playerid,"lastx",lastx);
    SetPVarInt(playerid,"lasty",lasty);
    SetPVarInt(playerid,"lastz",lastz);

    new playername[24];
    GetPlayerName(playerid, playername, sizeof(playername));
    {
    SpielerSpeichern(playerid);
    }
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    SetPlayerPos(playerid,dini_Int(Spielerdatei,"lastx"),dini_Int(Spielerdatei,"lasty"),dini_Int(Spielerdatei,"lastz"));
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
    dini_IntSet(Spielerdatei,"lastx",GetPVarInt(playerid,"lastx"));
    dini_IntSet(Spielerdatei,"lasty",GetPVarInt(playerid,"lasty"));
    dini_IntSet(Spielerdatei,"lastz",GetPVarInt(playerid,"lastz"));
    }
    return 1;
    }



    Hier ein Screen wie das aussieht:




    Hoffe um Hilfe.


    /edit:


    Hab das mal in einen Befehl eingebaut.
    Das Ergebnis: Sobald ich den Befehl eingebe kommt wieder "Stay within the World Boundries"....
    Ich glaube es liegt an den Koordinaten.
    Die Koordinaten werden in diesem Format abgespeichert:

    Zitat


    lastx=1318915341
    lasty=-834262984
    lastz=1318911568

    Das ist falsch:


    else if(PlayerInfo[targetid][pMember] == 9 || PlayerInfo[targetid][pLeader] == 9) { ttext = "Four Corner Hustlers P. Almighty ; }


    So ist es richtig:



    else if(PlayerInfo[targetid][pMember] == 9 || PlayerInfo[targetid][pLeader] == 9) { ttext = "Four Corner Hustlers P. Almighty" ; }