Todesgeld

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,


    gibt es die möglichkeit das Todesgeld von 100$ irgendwie abzuschalten ? Ich finde es doof das ganze wie folgt zumachen



    public OnPlayerDeath(playerid, killerid, reason)
    {
    //Beispielcode
    if(killerid != INVALID_PLAYER_ID)
    {
    PlayerInfo[killerid][pKills]++;
    if(PlayerInfo[killerid][pKills] > 3)
    {
    PlayerInfo[killerid][pLevel] = 1;
    }
    }
    PlayerInfo[playerid][pDeaths]++;
    GivePlayerMoney(playerid, 10100);
    PlayerInfo[playerid][pMoney] += 10000;
    return 1;
    }


    Denn die Money anzeige verändert sich ja dennoch und kann zur Verwirrung führen. Eigentlich will ich z.b 10.000$ setzen für den der gestorben ist

  • Verstehe nicht ganz was dein Problem ist, aktuell erhält der Spieler, der gestorben ist 10.100$ normales Geld und 10.000$ vom eigenen Geldsystem.


    Wenn du die 100$ nicht haben willst, setz es doch auf 10.000$.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Du verstehst mich scheinbar falsch. Sobald ein Spieler stirbt, werden Ihn 100$ beim spawnen gutgeschrieben. Das ist SAMP intern.


    Damit die Spieleranzeige stimmt, setzte ich den Wert GivePlayerMoney 100$ höher. Sobald der Spieler stirbt werden Ihm 10100 $ mehr angezeigt. Sobald er allerdings gespawnt wird, werden Ihn 100$ abgezogen. Warum ist hier die Gute Frage. Denn ich sage ihm nicht im OnPlayerSpawn ziehe 100$ aus GivePlayerMoney ab



    //Edit YouTube Link eingefügt




    Demonstration:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Einmal editiert, zuletzt von robbi2304 ()

  • Sobald ein Spieler stirbt, werden Ihn 100$ beim spawnen gutgeschrieben. Das ist SAMP intern.


    Ist es nicht, da bin ich mir ziemlich sicher.



    Denn ich sage ihm nicht im OnPlayerSpawn ziehe 100$ aus GivePlayerMoney ab


    Schau mal wo du noch im Script dem Spieler Geld gibst und poste notfalls dein OnPlayerSpawn & OnPlayerDeath Public.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Da bin ich mir sogar sehr sicher



    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][pBanned] == 1)
    {
    new string[1300],name1[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name1,sizeof(name1));
    format(string,sizeof(string),"Du wurdest von %s gebannt. Grund: %s \nSolltest du der Meinung sein das es sich hierbei\num eine Verwechslung handelt, wende dich an %s.",PlayerInfo[playerid][pBanner],PlayerInfo[playerid][pBanreason],PlayerInfo[playerid][pBanner]);
    ShowPlayerDialog(playerid, DIALOG_BAN, DIALOG_STYLE_MSGBOX,"Gebannt",string,"Ok",""); SetTimerEx("KickTimer",100,false,"i",playerid);
    }
    SetPlayerPos(playerid,742.4116,-1339.6249,13.5291);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerColor(playerid, 0xFFFFFFAA);
    if(GetPlayerFrakID(playerid) == 0)
    {
    SetPlayerPos(playerid, 742.4116,-1339.6249,13.5291);
    return 1;
    }
    else
    {
    new fID = GetPlayerFrakID(playerid);
    SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
    SetPlayerInterior(playerid,fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid,fInfo[fID][f_world]);
    return 1;
    }
    }



    public OnPlayerDeath(playerid, killerid, reason)
    {
    //Beispielcode
    if(killerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[playerid][pMember] == 1 && OnDuty[playerid] ==1) return 1;
    {
    PlayerInfo[killerid][pKills]++;
    PlayerInfo[killerid][pWanted]+=2;
    }
    }
    PlayerInfo[playerid][pDeaths]++;
    GivePlayerMoney(playerid,-500);
    PlayerInfo[playerid][pMoney]-= 600;
    return 1;
    }

  • Zeig mal deine pMoney Funktion :)

    Ähm was willst du da Groß sehen ?


    Es geht nicht um das speichern in die pMoney sondern um die Anzeige des Geldes die nicht Richtig funktioniert.
    Hinzu definiere ich die pMoney in den User Enum worin rein geschrieben wird und dann gespeichert wird.


    Das hat aber rein nichts mit der Anzeige zutun.





    Ich bin mir auch ziemlich sicher, dass man bei einem Tod 100$ abgezogen bekommt.


    Gib ihm einfach am Anfang von OnPlayerDeath 100$ dann musst du die nirgendwo verrechnen.


    MfG


    Schau dir mal das Video an. Ich setze den Spieler mehr Geld aber beim spawn wird ihm das wieder abgezogen. Spieler die darauf achten, denen fällt es auf und diese sind dann verwundert. Daher muss es doch eine möglichkeit geben das ganze zu blocken das beim spawn nach dem tot geld abgezogen wird bzw in der anzeige was abgezogen wird

  • Ich rede auch nicht vom speichern, sondern von deiner Funktion wie du z.B. die Money Anzeige aktuallisierst nachdem du ein Spieler Geld gegeben hast.
    Aber du kannst ja das machen was der User über mir geschrieben hat :)


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Füge das unter den Includes ein:
    new bool:justDied[MAX_PLAYERS];


    In OnPlayerConnect:
    justDied[playerid] = false;


    In OnPlayerDeath:
    justDied[playerid] = true;


    In OnPlayerSpawn:
    if(justDied[playerid] == true)
    {
    GivePlayerMoney(playerid, 100);
    justDied[playerid] = false;
    }