Einen /payday Befehl

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo ich habe mir mal einen payday rausgesucht und dazu würe ich gerne noch einen command erstellen um abzufreagen wie lange es noch dauert bis zum payday.


    Also Hier mal alles was ich habe vom payday:



    forward payday();


    SetTimer("payday",50000,1);


    public payday()
    {
    new std_x,sek_x,min_x;
    gettime(std_x,min_x,sek_x);
    if(!min_x)
    {
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
    SendClientMessage(i,0xFFFF00FF,"Payday! Du erhältst $10000!");
    GivePlayerMoney(i,10000);
    }
    return 0;
    }
    return 1;
    }


    so das währe dann alles. Ich hoofe ihr könnt mir weiter Helfen.


    Gruß.

  • mountain woh hast du den payday hingetan welche. .. z.b onplayercomman so z.b wohl hast du den

  • hey das ist ganz simpel mach erst mal ein public wo er dei paydaymenuten speichert


    z.b so


    forward ServerMinute();
    public ServerMinute()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new payday=GetPVarInt(i,"PaydayMenuten");
    SetPVarInt(i,"PaydayMenuten",payday+=1);
    SpielerSpeichern(i);
    if(GetPVarInt(i,"PaydayMenuten") > 60)
    {
    PayDay(i);
    SetPVarInt(i,"PaydayMenuten",0);
    SpielerSpeichern(i);
    }
    }
    }
    return 1;
    }
    den den machst das noch bei dein spielerspeichern mit rein z.b so
    dini_IntSet(Spielerdatei,"PaydayMenuten",GetPVarInt(playerid,"PaydayMenuten"));
    bei laden auch z.b
    SetPVarInt(playerid,"PaydayMenuten",dini_Int(Spielerdatei,"PaydayMenuten"));//PaydayMenuten
    und den erstele ein Befehl naja hier haste mein ocmd :D
    OCMD kannst du hinpacken wo du willst nur in kein public mit rein
    ocmd:payday(playerid,params[])
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Accounts/%s.ini", pname);
    new string[128],string2[128],string3[128];
    format(string,sizeof(string),"___________________PayDay___________________",GetPVarInt(playerid,"PaydayMenuten"));
    format(string2,sizeof(string2),"Minuten bis zum nächsten PayDay: %i",GetPVarInt(playerid,"PaydayMenuten"));
    format(string3,sizeof(string3),"Bei 60minuten GIbt es PayDay.");
    SendClientMessage(playerid,ROT,string);
    SendClientMessage(playerid,GELB,string2);
    SendClientMessage(playerid,GELB,string3);
    return 1;
    }
    und ein timer z.b
    SetTimer("ServerMinute",60000,1);
    den Timer payday kannst den raus tun


    das müsste es gewesen sein
    lg kifkat


    //ocmd
    ganz oben
    #include <ocmd>
    Downloaden:OCMD
    in \pawno\include reinpacken
    fertig

  • Habe hier nur 2 kleine Probleme


    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(418) : warning 219: local variable "payday" shadows a variable at a preceding level
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(423) : error 017: undefined symbol "PayDay"


    public ServerMinute()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new payday=GetPVarInt(i,"PaydayMenuten");
    SetPVarInt(i,"PaydayMenuten",payday+=1);
    SpielerSpeichern(i);
    if(GetPVarInt(i,"PaydayMenuten") > 60)
    {
    PayDay(i);
    SetPVarInt(i,"PaydayMenuten",0);
    SpielerSpeichern(i);
    }
    }
    }
    return 1;
    }


    Pls Help Me ;D


    //Edit

  • /edit


    Versuch mal so
    public ServerMinute()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new PayDay=GetPVarInt(i,"PaydayMenuten");
    SetPVarInt(i,"PaydayMenuten",payday+=1);
    SpielerSpeichern(i);
    if(GetPVarInt(i,"PaydayMenuten") > 60)
    {
    payday(i);
    SetPVarInt(i,"PaydayMenuten",0);
    SpielerSpeichern(i);
    }
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von Kevin B. ()

  • Das geht immer noch nicht da kommen nur noch mehr errors. aber trotzdem danke ;D


    Errors:


    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(750) : warning 219: local variable "payday" shadows a variable at a preceding level
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(755) : error 012: invalid function call, not a valid address
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(755) : warning 215: expression has no effect
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(755) : error 001: expected token: ";", but found ")"
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(755) : error 029: invalid expression, assumed zero
    C:\Users\Lukas\Desktop\Samp-Server\gamemodes\Server.pwn(755) : fatal error 107: too many error messages on one line

  • aso und weißt du wie ich da sotusagen noch ein levelsys. mache ?


    forward ServerMinute();
    forward PayDay(playerid);


    ocmd:payday(playerid,params[])
    {
    new pname[MAX_PLAYER_NAME], path[200];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(path, sizeof(path), "/Accounts/%s.ini", pname);
    new string[128],string2[128],string3[128];
    format(string,sizeof(string),"___________________PayDay___________________",GetPVarInt(playerid,"PaydayMenuten"));
    format(string2,sizeof(string2),"Minuten bis zum nächsten PayDay: %i",GetPVarInt(playerid,"PaydayMenuten"));
    format(string3,sizeof(string3),"Bei 60 Minuten Gibt es PayDay.");
    SendClientMessage(playerid,ROT,string);
    SendClientMessage(playerid,GELB,string2);
    SendClientMessage(playerid,GELB,string3);
    return 1;
    }


    public ServerMinute() //dieser fragt ab ob die Zeit schon über 30 Minuten ist mit Hilfe des Timers
    {
    for(new i = 0; i < MAX_PLAYERS; i++) //da es hier kein Playerid gibt, muss man es neu definieren. hier mit i, also statt playerid "i" benutzen ;)
    {
    if(IsPlayerConnected(i)) //ist der spieler "i" connected? wenn ja gehts weiter, sonst würde er wenn er offline ist auch sein payday bekommen.
    {
    new payday=GetPVarInt(i,"PayDay"); //hier wird eine neue PayDay Variable gemacht
    SetPVarInt(i,"PayDay",payday+=1); //hier gibt man dann, wenn eine ServerMinute rum ist, eins zum payday hinzu (+=1)
    if(GetPVarInt(i,"PayDay") == 30) //Wenn die Zahl dann 30 ist (siehe unten drunter)
    {
    PayDay(i); //public payDay wird aufgerufen
    SetPVarInt(i,"PayDay",0); //variable wird auf null gesetzt. Alles fängt wieder von vorne an
    }
    }
    }
    return 1;
    }


    public PayDay(playerid)
    {
    SendClientMessage(playerid,GREEN,"|____________Zahltag___________|");//Nachricht
    GivePlayerMoney(playerid,2000);//2000 $ geld geben
    SendClientMessage(playerid,GREEN,"Du hast 30 Minuten gespielt, und somit Zahltag.");//nachricht
    new Monate=GetPVarInt(playerid,"Monate");// neue monate variable
    SetPVarInt(playerid,"Monate",Monate+=1);//erfolgte ein payday, gibts bei monate eins dazu
    if(GetPVarInt(playerid,"Monate") == 12)//sind wir bei 12 angekommen: Bekommt der Spieler einen Score bzw. ein "Jahr" dazu.
    {
    GivePlayerScore(playerid,1);//einen Score geben
    SetPVarInt(playerid,"Monate",0);//monate werden wieder auf null gesetzt. alles beginnt von vorner ;)
    SendClientMessage(playerid,ROT,"***Herzlichen Glückwunsch: Du bist ein Jahr älter geworden!***");
    }
    return 1;
    }


    dini_IntSet(Spielerdatei,"PayDay",0);
    dini_IntSet(Spielerdatei,"Monate",0);


    SetPVarInt(playerid,"PayDay",dini_Int(Spielerdatei,"PayDay"));
    SetPVarInt(playerid,"Monate",dini_Int(Spielerdatei,"Monate"));


    dini_IntSet(Spielerdatei,"PayDay",GetPVarInt(playerid,"PayDay"));
    dini_IntSet(Spielerdatei,"Monate",GetPVarInt(playerid,"Monate"));