Problem mit Payday )=

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
  • Heyho


    Großes Problem , vorhin habe ich im Godfather das Payday umgeschrieben das die Zeit gespeichert wird ,
    nun ist es so das wenn ein Spieler payday Time 0 hat das alle payday bekommen -.-
    obwohl nur er zu seiner Zeit payday bekommen soll
    was habe ich falsch gemacht ??


    __


    Außerdem ein neuer der sich regestriert , ist 2minuten online dan steht da das er nen respektpunkt hat
    also er bekommt einfach payday und ist angeblich schon 8min online )=
    Bitte helfen!
    Habe das Tutorial von euch genutzt aber irgendwie bekommt wenn spieler A payday hat bekommt der ganze Server payday
    was n daas ?
    Kann den kieina helfen ?


    //edit Text verädnert
    //edit Überschrift geänder
    ((edit text 2 mal

    4 Mal editiert, zuletzt von R3DM4N ()

  • Ich habe das ganze Payday system raus genommen.
    Dan ein neues gemacht.
    Ich schicke hier mal den Code/s


    forward PayDay();
    forward PaydayTimeCheck(playerid);


    format(var, 32, "nextpayday=%d\n",PlayerInfo[playerid][nextpayday]);fwrite(hFile, var);

    public PayDay()
    {
    new string[128];
    new interest;
    new rent = 0;
    for(new i = 0; i <MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLevel] > 0)
    {
    if(MoneyMessage[i]==1)
    {
    SendClientMessage(i, COLOR_RED, "Du hast deine Schulden nicht bezahlt und sitzt dafür nun im Knast!");
    GameTextForPlayer(i, "~r~Busted!", 2000, 1);
    SetPlayerInterior(i, 6);
    PlayerInfo[i][pInt] = 6;
    SetPlayerPos(i, 264.6288,77.5742,1001.0391);
    PlayerInfo[i][pJailed] = 1;
    SetPlayerSkin(i, 62);
    ResetPlayerWeapons(i);
    ResetPlayerMoney(i);
    WantedPoints[i] = 0;
    PlayerInfo[i][pJailTime] = 200;
    format(string, sizeof(string), "Du bist für %d Sekunden Verhaftet! Kaution: Keine", PlayerInfo[i][pJailTime]);
    SendClientMessage(i, COLOR_WHITE, string);
    }
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(i, playername2, sizeof(playername2));
    new key = PlayerInfo[i][pPhousekey];
    if(key != 255)
    {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    rent = 0;
    }
    else if(rent > GetPlayerMoney(i))
    {
    PlayerInfo[i][pPhousekey] = 255;
    SendClientMessage(i, COLOR_WHITE, "Du hast deine Miete nicht bezahlt und wurdest rausgeschmissen!");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    new tmpintrate;
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
    else { tmpintrate = intrate+2; }
    }
    else
    {
    if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
    else { tmpintrate = 1; }
    }
    // if(PlayerInfo[i][pPayDay] >= 5)
    // {
    Tax += TaxValue;
    PlayerInfo[i][pAccount] -= TaxValue;
    new checks = PlayerInfo[i][pPayCheck] / 5;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    new bonus = PlayerInfo[i][pPayCheck] / 10;
    checks += bonus;
    }
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    ConsumingMoney[i] = 1;
    GivePlayerMoney(i, checks);
    if(PlayerInfo[i][pAccount] > 0)
    {
    PlayerInfo[i][pAccount] -= ebill;
    SBizzInfo[4][sbTill] += ebill;
    }
    else
    {
    ebill = 0;
    }
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);


    SendClientMessage(i, COLOR_LIGHTBLUE, "|~~~~~~~~~| Zahltag |~~~~~~~~~|");
    format(string, sizeof(string), " Gehalt: $%d Steuern: -$%d", checks, TaxValue);
    SendClientMessage(i, COLOR_WHITE, string);
    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
    {
    format(string, sizeof(string), " Nebenkosten: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    if(PlayerInfo[i][pHandyVer] == 1)
    {
    SendClientMessage(i,COLOR_GRAD2," Handyvertrag: -$100");
    GivePlayerMoney(i, -100);
    }
    format(string, sizeof(string), " Zinssatz: 0.%d Prozent",tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    format(string, sizeof(string), " Zinsen : $%d", interest);
    SendClientMessage(i, COLOR_GRAD2, string);
    SendClientMessage(i, COLOR_LIGHTBLUE, "|~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD2, string);
    format(string, sizeof(string), " Miete: -$%d", rent);
    SendClientMessage(i, COLOR_GRAD2, string);
    if(PlayerInfo[i][pHotel] == 2 || PlayerInfo[i][pHotel] == 1 )
    {
    GivePlayerMoney(i,-200);
    format(string, sizeof(string), " Hotelkosten: -$200");
    SendClientMessage(i, COLOR_GRAD2, string);
    }
    format(string, sizeof(string), "~y~ Zahltag!~w~ Gehalt~n~~g~ $%d",checks);
    GameTextForPlayer(i, string, 5000, 1);
    rent = 0;
    // PlayerInfo[i][pPayDay] = 0;
    PlayerInfo[i][pPayCheck] = 0;
    PlayerInfo[i][pConnectTime] += 1;
    if(PlayerInfo[i][pLevel] >= 0)
    {
    new nxtlevel = PlayerInfo[i][pLevel]+1;
    new expamount = nxtlevel*levelexp;
    new infostring[256];
    if (PlayerInfo[i][pExp] < expamount)
    {
    format(infostring, 256, " Du besitzt nun %d Respektpunkte!",PlayerInfo[i][pExp]);
    SendClientMessage(i, COLOR_GRAD1, infostring);
    }
    else
    {
    format(string, sizeof(string), "~g~LEVEL UP~n~~w~Du bist jetzt Level %d", nxtlevel);
    PlayerPlaySound(i, 1052, 0.0, 0.0, 0.0);
    PlayerPlayMusic(i);
    PlayerInfo[i][pLevel]++;
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    PlayerInfo[i][pExp] -= expamount;
    new total = PlayerInfo[i][pExp];
    if(total > 0)
    {
    PlayerInfo[i][pExp] = total;
    }
    else
    {
    PlayerInfo[i][pExp] = 0;
    }
    }
    else
    {
    PlayerInfo[i][pExp] = 0;
    }
    }
    }
    if(PlayerInfo[i][pDonateRank] > 0)
    {
    // PlayerInfo[i][pPayDayHad] += 1;
    // if(PlayerInfo[i][pPayDayHad] >= 5)
    // {
    PlayerInfo[i][pExp]++;
    // PlayerInfo[i][pPayDayHad] = 0;
    // }
    }
    }
    else
    {
    SendClientMessage(i, COLOR_WHITE, "* Du hast nicht lang genug gespielt um den Payday zu erhalten.");
    }
    // }
    }
    }
    Checkprop();
    return 1;
    }

    new pdtime = 60 - PlayerInfo[targetid][nextpayday];

    format(var, 32, "nextpayday=%d\n",PlayerInfo[playerid][nextpayday]);fwrite(hFile, var);
    if( strcmp( key , "Paycheck" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayCheck] = strval( val ); }
    if( strcmp( key , "nextpayday" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][nextpayday] = strval( val ); }


    PlayerInfo[playerid][nextpayday] = 0;

    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    pdtimer[playerid] = SetTimerEx("PaydayTimeCheck",60000,1,"i",playerid);
    format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
    DateProp(playerid);
    GameTextForPlayer(playerid, tmp2, 5000, 1);
    SendClientMessage(playerid, COLOR_YELLOW, motd);
    if(PlayerInfo[playerid][pFMember] < 255)


    public PaydayTimeCheck(playerid)
    {
    if(PlayerInfo[playerid][nextpayday] < 60)
    {
    PlayerInfo[playerid][nextpayday] += 1;
    }
    else if(PlayerInfo[playerid][nextpayday] == 60)
    {
    PayDay(playerid);
    PlayerInfo[playerid][nextpayday] = 0;
    }
    }

  • for(new i = 0; i <MAX_PLAYERS; i++)


    Schau mal sobald einer Payday hat und die 60 erreicht hat lässt du Payday() laufen... Und in der Forschleife sind alle drin! Müsstest entweder da drin abfragen ob einer 60 min erreicht hat oder payday mit playerid aufrüsten

  • Verstehe dich gerade nich richtig ... scripte noch nich so lang was genau bzw. wie mache ich das ?

  • Du müsstest Errors haben... Siehe bei der Zeit da steht


    Payday(playerid)


    Doch dein Payday selber hat keine playerid drin...
    Sprich entweder fügst du Payday(playerid) hinzu und änderst das forward
    oder du musst im Payday eine Abfrage machen ob die nextpayday schon 60 hat...

  • habe kein Errors.
    Was muss ich beim Forward ändern ?
    Kann mir den wirklich keiner helfen ?



    //edit

    Einmal editiert, zuletzt von R3DM4N ()

  • er versucht dir mitzuteilen, dass sobald ein Spieler seine Wartezeit rum hat die Funktion PayDay ausgeführt wird, und zwar in deinem Fall gleich
    für alle Spieler, da du ja die Schleife durchlaufen lässt bis MAX_PLAYERS erreicht ist. Du musst es so umscripten, dass nur für den Spieler, bei dem die
    Wartezeit rum ist, die Funktion PayDay ausgeführt wird und bei PayDay(playerid) die Schleife rausnehmen.


    p.s. Master_FM hat recht, du müsstest Errors bekommen. Füge bei PayDay() noch playerid in die Klammern ein.

    **************************************************
    -Homers Light Roleplay (Unique script)
    -Server IP: 46.4.62.81:8996
    -Server Forum: http://www.hl-rp.forumprofi.de
    **************************************************

  • Danke hoffe es funktoniert nun


    1Error is da
    //edit
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(12686) : warning 235: public function lacks forward declaration (symbol "payday")
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(13205) : warning 204: symbol is assigned a value that is never used: "warrests"
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(13744) : warning 217: loose indentation
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(14249) : warning 216: nested comment
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(14628) : warning 217: loose indentation
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(14629) : warning 217: loose indentation
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(41946) : error 004: function "PayDay" is not implemented
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(41951) : warning 203: symbol is never used: "PCarPos"
    C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(41951) : warning 203: symbol is never used: "VehicleName"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    Einmal editiert, zuletzt von R3DM4N ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • C:\DOKUME~1\ADMINI~1\Desktop\AWESOM~1\GAMEMO~1\Awesome.pwn(12686) : error 025: function heading differs from prototype



    public payday(playerid)



    //edit


    ups ^^ geht jezz