fehler im 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
  • hi,


    meine funktion ist so:


    forward payday();
    public payday()
    {
    new hour, minute, second;
    new geldzufall = random (750) + 1250;
    new string[128];
    gettime(hour,minute,second);
    if(minute == 30 && second == 20)
    {
    format(string,sizeof(string),"Payday! Es ist %i Uhr.",hour);
    SendClientMessage(playerid,ORANGE,string);
    format(string,sizeof(string),"Lohn: %i $",geldzufall);
    SendClientMessage(playerid,GRAU,string);
    }
    return 1;
    }


    funktioniert aber leider nicht...


    MfG

  • Hi


    Zeig mal bitte, wie Du die Funktion aufrufst ?


    Code
    Eine Abfrage, wo Du die Zeit auf die Sekunde genau abfragst, muss auch dann aufgerufen werden, bau also mal die if-Abfrage aus und teste normal, dann benutz einen Timer und frag zB ab, ob die Zeit passt, dann ruf die Funktion ohne i-Abfrage auf.


    Simon

  • Zitat

    Zeig mal bitte, wie Du die Funktion aufrufst ?

    bisher hab ichs nur so, also wenn der minutzenzeiger auf 30 und der sekunden zeiger gleichzeitig auf 20 ist sollte der payday kommen so habe ich mir d as gedacht.


    die zeit frage ich ja schon einmal ab wozu nochmal, vllt. verstehe ich das nicht


    ich hatte vor , dazu gleich Respektpunkte dazuzu scripten


    MfG


    /edit
    habs jetze so:
    forward payday();
    public payday()
    {
    new hour, minute, second;
    new geldzufall = random (750) + 1250;
    new string[128];
    new playerid;
    gettime(hour,minute,second);
    if(minute == 30 && second == 20)
    {
    format(string,sizeof(string),"Payday! Es ist %i Uhr.",hour);
    SendClientMessage(playerid,ORANGE,string);
    format(string,sizeof(string),"Lohn: %i $",geldzufall);
    SendClientMessage(playerid,GRAU,string);
    SetPVarInt(playerid,"Respektpunkte",GetPVarInt(playerid,"Respektpunkte") + 1);
    }
    return 1;
    }


    SetPVarInt(playerid,"Respektpunkte",dini_Int(Spielerdatei,"Respektpunkte"));


    dini_IntSet(Spielerdatei,"Respektpunkte",GetPVarInt(playerid,"Respektpunkte"));


    Mfg

    Einmal editiert, zuletzt von _SKY_ ()

  • Vielen Dank :)


    funkioniert nun prima, obwohl ich das leider nicht ganz verstehe


    frage: mit meinem random ist die zahl dann zwischen 750 und 2000 oder zwischen 750 und 1250


    ergebnis:


  • Hallo


    Was verstehst Du nicht ganz ? Das mit dem SetTimer kannste dir so vorstellen:


    Server wird gestartet und SetTimer läuft jetzt - all Sekunde wird payday aufgerufen und geprüft, ob minute = 30 und sekunde = 20 ist


    Sekunde 0 != (ist nicht) 20--> Kein Payday
    ....
    ....
    Sekunde 19 != (ist nicht) 20--> Kein Payday
    Sekunde 20 == (ist) 20--> Payday wird ausgeführt, sofern die Minutenanzahl auch stimmt


    MfG Simon

  • ok, danke prima erklärt :)


    MfG


    edit ich hab ein problem
    jeder spieler bekommt den gleichen zufalls-lohn
    ich möchte aber das jeder einen anderen zufalls lohn bekommt


    public Payday()
    {
    new hour, minute, second;
    new geldzufall = random (750) + 1250;
    new string[128];
    new playerid;
    gettime(hour,minute,second);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(minute == 30 && second == 10)
    {
    format(string,sizeof(string),"Payday! Es ist %i Uhr.",hour);
    SendClientMessage(i,ORANGE,string);
    format(string,sizeof(string),"Lohn: %i $",geldzufall);
    SendClientMessage(i,GRAU,string);
    GivePlayerMoney(i,geldzufall);
    SetPVarInt(i,"Respektpunkte",GetPVarInt(playerid,"Respektpunkte") + 1);
    }
    }
    return 1;
    }


    /edit 2: fehler im pawno code bitte weiterhin helfen !

    2 Mal editiert, zuletzt von _SKY_ ()

  • Zitat vom SAMP wiki:
    new randomnumber = random(sizeof(onedimensionalarray)); // Zufaellige Nummer eines Feldes.
    printf("Zufallszahl: %d", onedimensionalarray[random]); // Die zzufaellige Nummer wird als Index fuer ein Feld verwendet.

  • ich möchte dass jeder spieler einen anderen zufälligen lohn bekommt
    wenns geht bitte mit einer for schleife


    MfG


    /edit wurde von mir behoben


    trotzdem danke

    Einmal editiert, zuletzt von _SKY_ ()