Individuelles PayDay System?

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 liebes Forum,


    Ich finde es echt hilfsbereit wenn ihr mir helft ein individuelles PayDay System zu machen.
    Also es soll beinhalten:
    Steuern, Zinsen auf Bankkonto(Es ist noch kein Bank system da),
    Respektpunkt pro Payday. Bei VIP 2.


    Es soll 3 Zinsklassen geben.
    Die eine 0,5% ohne Haus und VIp
    0,8% mit Haus, ohne VIP
    1,0% mit Vip


    Ich glaube das war alles.
    Vllt Jeffry:


    Liebe Grüße euer Gamerlein

  • Ich finde es echt hilfsbereit wenn ihr mir helft ein individuelles PayDay System zu machen.


    Was erwartest du jetzt von uns? :huh:


    Wir können dir schlecht helfen, da wir überhaupt nicht wissen, wie du deine Spieler speicherst, wie weit du mit deinem System schon bist...?! :huh:


    Desweiteren, google doch mal nach individuellem PayDay, dann weißt du schonmal so grob wie du das alles zu erstellen hast (Timer + Callback + Variablen)...und das mit dem Zinssystem ist doch nur eine simple if-Abfrage:


    new Float:zinsen;
    if(kein Haus && kein VIP) zinsen = 0.05;
    else if(Haus && kein VIP) zinsen = 0.08;
    else if(Haus && VIP) zinsen = 0.1;
    Bankkonto += Bankkonto * zinsen;


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • ch möchte das ihr mir zeigt wie man sowas anfertigt. Das ich dies auch bald alleine kann.


    Genau deshalb schaut man mal nach Tutorials..die einem Zeigen wie soetwas funktioniert!


    [ SCRIPTING ] Individuellen Payday Scripten [Updated]
    [ SCRIPTING ] Individuellen Payday
    http://gta-sa-mp.de/forum/3-sa…257-individuellen-payday/


    Kaliber: Ich kapier von deinem Code garnix.


    Das sollte dich beunruhigen :S

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Okay. Mein kleines Problem ist. Wie mache ich das mit den Levelpunkten(Respektpunkten) und pro Level 2 mehr?



    Und ich bekomme hier


    forward mintimer();
    public mintimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(SpielerInfo[i][PayDay] < 60) SpielerInfo[i][PayDayTimer]++;
    else PayDay(i);
    }
    }


    forward PayDay(playerid);
    public PayDay(playerid)
    {
    //Hier Passiert das dann wenn der User ein payday hat
    SpielerInfo[i][PayDayTimer] = 0;
    return 1;
    }


    Diese Errors


    Code
    C:\Users\M-M\Desktop\Games\Server\gamemodes\xxx.pwn(1412) : error 076: syntax error in the expression, or invalid function call
    C:\Users\M-M\Desktop\Games\Server\gamemodes\xxx.pwn(1421) : error 017: undefined symbol "i"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.
  • Okay. Mein kleines Problem ist. Wie mache ich das mit den Levelpunkten(Respektpunkten) und pro Level 2 mehr?


    Naja, denk einfach mal nach auf welche Werte sich diese Respektpunkte beziehen, nämlich auf Geld und Level.


    enum spieler //Hier dein Spieler-Enum
    {
    pRespekt, //Einfach mal Hier rein
    pPunkte, //Das auch einfach mal hier rein
    }
    new SpielerInfo[MAX_PLAYERS][spieler]; //Ich nenne deine Variable mal SpielerInfo zur Verdeutlichung


    //Timer
    SetTimer("Server_Timer",1000*60,1);


    forward Server_Timer(); //Wird jede Minute aufgerufen
    public Server_Timer()
    {
    for(new i; i<MAX_PLAYERS; i++) //Die Schleife geht alle Spieler durch
    {
    if(!IsPlayerConnected(i)) continue; //Wer nicht online ist, kann übersprungen werden
    SpielerInfo[i][pPunkte]++;
    if(SpielerInfo[i][pPunkte] != 60) continue;//Wenn noch keine Stunde online war..gehts weiter
    PayDay(i); //Hier gibts dann einen PayDay
    SpielerInfo[i][pPunkte] = 0; //Wieder die Zeit auf 0 setezn
    }
    return 1;
    }


    stock PayDay(playerid)
    {
    SpielerInfo[playerid][pRespekt]++; //Hier bekommt er 1nen Respekt Punkt
    if(IsVIP(playerid)) SpielerInfo[playerid][pRespekt]++; //Wenn er VIP ist bekommt er noch einen Respekt Punkt
    //Hier dein Zins-System:
    new Float:zinsen;
    if(kein Haus && kein VIP) zinsen = 0.05;
    else if(Haus && kein VIP) zinsen = 0.08;
    else if(Haus && VIP) zinsen = 0.1;
    Bankkonto += Bankkonto * zinsen;
    return 1;
    }


    //Und dann unter deinem BuyLevel Command:
    new level = GetPlayerScore(playerid);
    if(SpielerInfo[playerid][pRespekt] < level*4) return SCM(playerid,-1,"Sie haben nicht genügend Respektpunkte!"); //Hier hat er nicht genug Respektpunkte (pro Level 4..sprich level 1 = 4..level 2 = 8..level 3 = 12)
    if(GetPlayerMoney(playerid) < level*5000) return SCM(playerid,-1,"Sie besitzen zu wenig Geld!"); //Hier hat er zu wenig Geld (pro Level 5000..sprich level 1 = 5.000$...level 2 = 10.000$...level 3 = 15.000$)
    //Dann hier paar Messages
    SetPlayerScore(playerid, level+1); //Hier level up
    SpielerInfo[playerid][pRespekt] = 0; //Hier wieder Resetten


    Hoffe das hilft dir ein wenig :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Das tuhe ich bereits mit PayDayZeit


    Dann ersetze in meinem System pPunkte durch PayDayTimer...


    Wenn du richtig liest, sind das eh alles nur fiktive Namen um dir das zu verdeutlichen :whistling:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Sondern wenn man 4/4 Respektpunkten hat. Etwas Geld bekommt und Level 1 hoch


    Natürlich, dann füge die if-Abfragen unter der PayDay Funktion ein... (aber da kein return verwenden) :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Entschuldigung das ich so blöd frage. Aber wie muss ich das machen


    Die solltest dich echt erstmal mit den Basics einer Programmier-Sprache auseinander setzen :S


    stock PayDay(playerid)
    {
    SpielerInfo[playerid][pRespekt]++; //Hier bekommt er 1nen Respekt Punkt
    if(IsVIP(playerid)) SpielerInfo[playerid][pRespekt]++; //Wenn er VIP ist bekommt er noch einen Respekt Punkt
    //Hier dein Zins-System:
    new Float:zinsen;
    if(kein Haus && kein VIP) zinsen = 0.05;
    else if(Haus && kein VIP) zinsen = 0.08;
    else if(Haus && VIP) zinsen = 0.1;
    Bankkonto += Bankkonto * zinsen;

    //Die Nachrichten für den PayDay sollteng genau hier hin..(damit man unten doch mit return arbeiten kann)


    //Einfach unten dran das Level System:
    new level = GetPlayerScore(playerid);
    if(SpielerInfo[playerid][pRespekt] < level*4) return 1;
    if(GetPlayerMoney(playerid) < level*5000) return SCM(playerid,-1,"Sie brauchen mehr Geld für das LevelUp"); //Hier hat er zu wenig Geld (pro Level 5000..sprich level 1 = 5.000$...level 2 = 10.000$...level 3 = 15.000$)
    //Dann hier paar Messages
    GivePlayerMoney(playerid,-(level*5000)); //Hier auch das Geld für das Level abziehen..
    GivePlayerMoeny(playerid,500); //Hier z.B. 500$ für LevelUp
    SetPlayerScore(playerid, level+1); //Hier level up
    SpielerInfo[playerid][pRespekt] = 0; //Hier wieder Resetten
    return 1;
    }


    mfg. :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber:
    Wird die Zeit auch mitgezählt wenn man im Login bereich ist


    Momentan ja...aber du hast bestimmt eine Variable die prüft ob man eingeloggt ist oder nicht...


    und beim Timer schreibst du dann hin:


    if(!IsPlayerConnected(i) || !IsLoggedIn[i]) continue;


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Die PayDayZeit wird nicht ausgeladen. Aber es stimmt aber so wie ich es jetzt habe oder?


    forward Server_Timer();
    public Server_Timer()
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || !isEingeloggt(i)) continue;
    SpielerInfo[i][PayDayTimer]++;
    if(SpielerInfo[i][PayDayTimer] != 60) continue;
    PayDay(i); //Hier gibts dann einen PayDay
    SpielerInfo[i][PayDayTimer] = 0;
    }
    return 1;
    }


    stock PayDay(playerid)
    {
    SpielerInfo[playerid][PayDayRespektp]++; //Hier bekommt er 1nen Respekt Punkt
    if(isPlayerVIP(playerid, 1)) SpielerInfo[playerid][PayDayRespektp]++; //Wenn er VIP ist bekommt er noch einen Respekt Punkt
    /*new Float:zinsen;
    if(kein Haus && kein VIP) zinsen = 0.05;
    else if(Haus && kein VIP) zinsen = 0.08;
    else if(Haus && VIP) zinsen = 0.1;
    Bankkonto += Bankkonto * zinsen;*/
    SendClientMessage(playerid, COLOR_HELLBLUE, "|___________________|PayDay|___________________|");
    SendClientMessage(playerid, COLOR_HELLBLUE, "Du hast einen PayDay erhalten.");
    SendClientMessage(playerid, COLOR_HELLBLUE, "|___________________|PayDay|___________________|");
    SpielerSpeichern(playerid);
    //Einfach unten dran das Level System:
    new level = GetPlayerScore(playerid);
    if(SpielerInfo[playerid][PayDayRespektp] < level*4) return 1;
    SendClientMessage(playerid, COLOR_HELLBLUE, "|___________________|PayDay|___________________|");
    SendClientMessage(playerid, COLOR_HELLBLUE, "|___________________|Level Aufstieg|___________________|");
    SendClientMessage(playerid, COLOR_HELLBLUE, "Du bist ein Level aufgestiegen. Herzlichen Glückwunsch");
    SpielerSpeichern(playerid);
    GivePlayerMoney(playerid,(level*2500)); //Hier auch das Geld für das Level abziehen..
    SetPlayerScore(playerid, level+1);
    SpielerInfo[playerid][PayDayRespektp] = 0;
    return 1;
    }



    Liebe Grüßße
    Kaliber: Jeffry:

  • if(!IsPlayerConnected(i) || !isEingeloggt(i)) continue;


    Da ich im anderen Thread gesehen habe, wie du es machst, muss es bei dir so heißen:


    if(!IsPlayerConnected(i) || !SpielerInfo[i][pEingeloggt]) continue;


    mfg. :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von Jeffry ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Bei diesem Befehl:


    ocmd:payday(playerid, params[])
    {
    new pstring[128];
    format(pstring, sizeof(pstring), "Du hast %d Respektpunkte und %d Minuten ist es seit deinem letzten PayDay her.", SpielerInfo[playerid][PayDayRespektp], SpielerInfo[playerid][PayDayTimer]);
    SendClientMessage(playerid, COLOR_RED, pstring);
    return 1;
    }


    Wird mir es so angezeigt