Money Beim Tot Wird nicht erstellt....

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 Habe folgendes Problem also ich nutze das GTA Suchtis Script und habe beim Sterben ein Problem es werden keine Monepakete erstellt.


    Habe schon Vieles versucht...
    Er schreibt immer das ich geld verliere aber ich seh es nicht ?
    Wo liegt denn der Fehler?


    Hier mal das nötigste aus dem GM


    Beim OnPlayerDeath habe ich folgendes geändert:




    if(PlayerGetMoney(playerid) >= 250 && DeathPickup[playerid]==0)
    {
    // new string[256];
    new Float:betx, Float:bety, Float:betz;
    GetPlayerPos(playerid, betx,bety,betz);
    DeathPickup[playerid] = CreatePickup(1212, 1, betx,bety,betz);
    new betrag;
    betrag = random(2500);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -betrag);
    format(string, sizeof(string), "Du hast $%d aus deinen Taschen verloren!",betrag);
    SendUserMessage(playerid, COLOR_RED, string);
    SetTimerEx("DestroyDeathPickup", 60000, 0, "i",playerid);
    }


    Weiter unten die Sprungmarke zu
    DestroyDeathPickup



    public DestroyDeathPickup(playerid)
    {
    DestroyPickup(1212);
    DeathPickup[playerid] = 0;
    DeathPickupMoney[playerid] = 0;
    return 1;
    }


    Für eine Lösung wäre ich dankbar..

  • So sollte es gehen:


    if(PlayerGetMoney(playerid) >= 250 && DeathPickup[playerid]==1)
    {
    // new string[256];
    new Float:betx, Float:bety, Float:betz;
    GetPlayerPos(playerid, betx,bety,betz);
    DeathPickup[playerid] = CreatePickup(1212, 1, betx,bety,betz);
    new betrag;
    betrag = random(2500);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -betrag);
    format(string, sizeof(string), "Du hast $%d aus deinen Taschen verloren!",betrag);
    SendUserMessage(playerid, COLOR_RED, string);
    SetTimerEx("DestroyDeathPickup", 60000, 0, "i",playerid);
    }


    public DestroyDeathPickup(playerid)
    {
    DestroyPickup(1212);
    DeathPickup[playerid] = 0;
    DeathPickupMoney[playerid] = 0;
    return 1;
    }

  • Muss dich entäuschen auch mit deiner Variante geht es nicht.


    Dennoch danke.


    Bitte um weiter lösungen:

  • Nimm dir doch einfach nen Moneydrop system als Vorlage kriegste hier und im englischen Forum zu genüge.
    Ich meine damit nicht, dass du nur paste & copy machen sollst, nur du sollst es dir anschauen und vergleichern was anders ist, um dann eine Lösung finden.

  • Diese event wird ausgefürt wenn jemand das pickup aufsammelt..


    Aber es wird ja nicht mal erstellt....


    Und ein moneydrop system hab ich nur da blick nich nicht durch...


    Das was im GM soll ja Funktionieren..
    Tut es aber nicht..


    Siehe 1 bzw 2. Post...


    Ansonsten lass ich das mit dem erstellen weg..!

  • mach es au so



    new betrag;
    betrag = random(2500);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -betrag);



    in so


    new betrag;
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -2500);


    so sollte es gehen

  • Problem Teilweise gelöst:



    if(PlayerGetMoney(playerid) >= 250)
    {
    //new string[256];
    new PPP5;
    new PPP4;
    new PPP3;
    new PPP2;
    new PPPA;
    new betrag;
    PPPA = CreatePickup(1212, 3, x45+random(4)-random(4), y45+random(5)-random(4), z45);
    PPP2 = CreatePickup(1212, 3, x45+random(5)-random(4), y45+random(6)-random(4), z45);
    PPP3 = CreatePickup(1212, 3, x45+random(6)-random(4), y45+random(7)-random(4), z45);
    PPP4 = CreatePickup(1212, 3, x45+random(7)-random(4), y45+random(8)-random(4), z45);
    PPP5 = CreatePickup(1212, 3, x45+random(8)-random(4), y45+random(9)-random(4), z45);
    betrag = random(250);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -betrag);
    format(string, sizeof(string), "Du hast $%d aus deinen Taschen verloren!",betrag);
    SendUserMessage(playerid, COLOR_RED, string);
    }


    Hier werden jetzt die geldscheine erstell..
    Wie Bring ichs jetzt dazu das der eingestellte betrag Siehe:



    betrag = random(250);


    In einer Variable gespeichert wird zb. neuesgeld..
    Das er das beim Aufsammeln des pickups bzw der Pickups verwendet ?


    Hat jemand was?



    //EDIT!


    ICH WARTE!

    Einmal editiert, zuletzt von Ailpum ()

  • Selbst das hab ich und so..


    Geld wird ja erstellt aber beim aufsammeln... passiert rein gar nix


    Hier der code:



    else if(pickupid == 1212)
    {
    new string[256];
    GivePlayerMoney(playerid, random(1500));
    format(string, sizeof(string), "~g~+%d$", playerid);
    GameTextForPlayer(playerid, string, 5000, 1);
    DestroyPickup(1212);
    }
    // rest code

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 1. Ja ich bin mir sicher durch den MTA bzw MEd...
    2. Laut erster post wird das pickup in der Variable PPPA etc gespeichert..


    3.. Es passiert aber beim aufsammeln nichts...

  • Ich fange erst mit scripten an...
    Modelid ?


    also das evnt sieht ja so aus


    public OnPlayerPickupPickup (playerid, pickupid)


    Wie geh ich jetzt weiter vor ?

  • Modell ist das Visuelle was angezeigt wird / Sichtbar ist.
    Identnummer : Gibt eine Nummer an die auf Sachen verweist & somit zu einer Datenquelle führt die alle Informationen beibehält.


    Und ich dachte ich wäre Ausländern Blubb , wie gesagt eine Nummer die auf das Element verweist , diese Funktion die du verwendest ist auch richtig
    & gibt diese Nummer wieder sobald eines dieser Elemente aufgehoben wurde dann kannst du noch zusätzlichen Abfragen welche Nummer das Element besitzt
    & somit bestimmen was besonderes passieren soll klingt komisch ist aber so. ( Den Hab ich Peter Lustig gerippt xD )

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ich erkläre es nochmal in meinen Worten, BFX ist da sehr Fachlich,klingt komisch ist aber so... :D


    Es gibt eine ModelID und eine PickupID, die PickupID gibt die ID nummer des pickups wieder,das zuerst erstellte pickup hat die nummer 1 (oder 0 weiß ich jez nichtmehr weil Pawno auch gern bei 0 Anfängt zu zählen,ich glaub aber 1)und von oben nach unten sind die im script durchnummeriert,die ModelID ist das was du siehst, das was das Pickup als symbol hat,z.B Schutzweste oder Herzchen,das was halt rumschwirrt...


    Also: PickupID != (ungleich) ModelID



    else if(pickupid == PPA || pickupid == PP2 || pickupid == PP3 || pickupid == PP4 || pickupid == PP5)
    {
    new string[20],betrag;
    betrag = random(1500);
    GivePlayerMoney(playerid, betrag);
    format(string, sizeof(string), "~g~+%d$", betrag);
    GameTextForPlayer(playerid, string, 5000, 1);
    DestroyPickup(pickupid);
    }


    Erklärung:
    die else if abfrage trenne ich mit || das heißt "oder", ich frage da also ab ob die aufgehobene pickupid die ID des pickups hat die wir benötigen.
    Achja davor noch, wenn du ein Pickup per Variable erstellst also in deinem Fall PPA,PP2,PP3 usw. kannst du diese als pickup id benutzen!
    Also wie gesagt fage ich ab ob man eines der pickups eingesammelt hat,falls ja erstellt er erstmal nen sting mit 20 byte(256 wären überflüßig gewesen so lang wird der ja nicht)
    und die betrags variable die wir dann ja auch augeben wollen per gametext,dann ordne ich der betrag Variable ne random zahl zu und format das ganze,
    dann sende ich das als GameText un fertig,ich nutze bei destroypickup die variable pickupid, warum kann man sich mit sicherheit denken :D

  • Fehler:



    C:\gta\gamemodes\gfx.pwn(6060) : error 033: array must be indexed (variable "PPPA") // <-- Was sagt diese meldung aus?


    Hier das was in 6060 Steht:



    else if(pickupid == PPPA)
    {
    new string[20];
    GivePlayerMoney(playerid, random(1500));
    format(string, sizeof(string), "~g~+%d$", playerid);
    GameTextForPlayer(playerid, string, 5000, 1);
    DestroyPickup(pickupid);
    }
    }
    //rest code


    Hier nochmal das aus dem Public OnPlayer death:
    Warum gehts nicht ?:



    if(PlayerGetMoney(playerid) >= 250)
    {
    //new string[256];
    new PPPA;
    new betrag;
    PPPA = CreatePickup(1212, 3, x45+random(4)-random(4), y45+random(5)-random(4), z45, -1);
    betrag = random(250);
    ConsumingMoney[playerid] = 1;
    GivePlayerMoney(playerid, -betrag);
    format(string, sizeof(string), "Du hast $%d aus deinen Taschen verloren!",betrag);
    SendUserMessage(playerid, COLOR_RED, string);
    SetTimerEx("DestroyDeathPickup", 60000, 0, "i",playerid);
    }