Nach Waffenkauf wird das Geld nach 10sek zurück gegeben O.o

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
  • Morgen,
    Ich hab folgendes Problem...und bin langsam am durchdrehen:
    Durch ein Pickup wird ein Dialog geöffnet bei dem man auswählen kann ob man Waffen oder Munition brauch,
    Dann ist das nächste Dialog in dem man auswählen kann "Nahkampf, Pistolen, SMG's etc..."
    Darauf kommt noch ein Dialog für die jeweilige Waffenklasse "9mm, Desert Eagle..."
    Wenn man sich eine Waffe aussucht, bezahlt man sie und bekommt die Waffe...


    ABER! Nach ca. 10-15 Sekunden bekommt man das Geld von kauf wieder zurück...weshalb auch immer.


    Ähnliches Problem mit /Stats...öffnet man /stats wird die Score auf 0 gesetzt O.o



    if (strcmp("/stats", cmdtext, true, 10) == 0)
    {
    if (Spieler[playerid][sprache] == 1)
    {
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string,sizeof(string),"Name: %s\nEP: %d\nGeld: %d",name,GetPlayerScore(playerid),GetPlayerMoney(playerid));
    ShowPlayerDialog(playerid,DIALOG_STATS_GER,0,"Deine Statistiken",string,"Schliessen","");
    }
    else if (Spieler[playerid][sprache] == 2)
    {
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(playerid, name, sizeof(name));
    format(string,sizeof(string),"Name: %s\nEP: %d\nMoney: %d",name,GetPlayerScore(playerid),GetPlayerMoney(playerid));
    ShowPlayerDialog(playerid,DIALOG_STATS_GER,0,"Your Stats",string,"Close","");
    }
    return 1;
    }


    (Ich hab das absichtlich nicht in einem pawn fenster gemacht, denn dann wer der gesagte command in einer Reihe...wer will so etwas schon lesen?)


    Hoffe einer von euch weiß worin der Fehler liegt ?(

  • Selfmade natürlich...wer benutzt schon GF :D


    Hier ist mal ein Beispiel von einem Dialog (OnDialogRespone u. OnPlayerPickuppickup)


    Pickuppickup (Lustiges Wort =D):



    if(pickupid == Ammunation_Sellpoint)
    {
    if (Spieler[playerid][sprache] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_GUNS_WM_GER,0,"Was brauchst du?","Waffen oder Munnition?\nWaehle was du brauchst.","Waffen","Munition");
    }
    else if (Spieler[playerid][sprache] == 2)
    {
    ShowPlayerDialog(playerid,DIALOG_GUNS_WM_ENG,0,"What do you need?","Guns or ammo?\nChoose what you need.","Guns","Ammo");
    }
    }


    OnDialogResponse



    if(dialogid == DIALOG_GUNS_GEWEHR_GER)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid)<=2699)
    {
    SendClientMessage(playerid,WEISS,"Du hast nicht genug Geld.");
    }
    else if(GetPlayerMoney(playerid)>=2700)
    {
    SendClientMessage(playerid,WEISS,"Du hast dir eine AK47 für $2700 gekauft.");
    GivePlayerWeapon(playerid,30,90);
    GivePlayerMoney(playerid, -2700);
    }
    }
    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid)<=2899)
    {
    SendClientMessage(playerid,WEISS,"Du hast nicht genug Geld.");
    }
    else if(GetPlayerMoney(playerid)>=2900)
    {
    SendClientMessage(playerid,WEISS,"Du hast dir eine M4A1 für $2900 gekauft.");
    GivePlayerWeapon(playerid,31,150);
    GivePlayerMoney(playerid, -2900);
    }
    }
    }


    Kurz darauf, bekommt man das Geld sofort wieder, z.B. kauft man sich eine M4 bekommt man die $2900 nach ca. 10-20sek wieder :(


    P.S. Ist ein Zombie Server...da benutze ich keinen GF ^^

  • Ja dadurch entsteht er.. Wenn unter einem Dialog kein return 1; steht, öffnet sich der Dialog nicht. So hab ich es gelernt.

  • Will jetzt nix falsches Behaupten, aber unter jedem DIALOG return 1; ..


    -> SendClientMessage(playerid,WEISS,"Du hast nicht genug Geld.");

    zu

    -> SendClientMessage(playerid,WEISS,"Du hast nicht genug Geld.");

    return 1;



    Immer mit return 1; beenden.



    Also will echt nix falsches sagen, aber so klappt dass bei mir und so hab ich es gelernt :)