Drop gun 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
  • Wie scripte ich das meine idee wäre wenn ein Spieler stirbt die waffe auf den boden created wird und dann wenn ein spieler durchläuft sie aufgehoben wird wie mache ich das ? :/

  • So ungefähr:


    //oben im script
    new deagle;


    //die Callbacks
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float: X, Float: Y, Float: Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(GetPlayerWeapon(playerid) == 24) //wenn er eine Deagle hat
    {
    deagle = CreatePickup(348, 2, X, Y, Z, 0);
    }
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == deagle)
    {
    GivePlayerWeapon(playerid, 24, 500);
    DestroyPickup(deagle);
    }
    return 1;
    }


    Habe das kurz aus dem Kopf geschrieben, so ungefähr könnte das aussehen, musst halt noch einiges editieren ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich möchte das so machen das wenn einer stirbt auf dem boden wenn er eine deagle hatte ein deagleboject da createt wird nur weiss ich nicht wie man die muni abfrag und das macht das wenn er im object ist die waffe + muni kriegt :pinch:

  • im 1.Post muss ich doch dann nur das CreatePickup durch ein CreateObject ersetzen oda ?

  • Aber wenn du es so machst wie Kaliber es gezeigt hat, musst
    aufpassen! Wenn 2 gleichzeitig sterben, dann wird nua eine
    Deagle am Boden hingelegt.


    Das ist nicht ganz korrekt, es werden 2 Waffen hingelegt, aber man kann nur 1ne aufheben :D und ja ich weiß selber das das System fehlerhaft ist, wollte nur ein paar funktionen schreiben, die er verwenden müsste ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • bei DropWeapon muss ich doch die Waffe abfragen und dann auf boden createn oda bei deaht ? :S

  • Der Spieler muss unter "OnPlayerDeath" auf seiner Position (GetPlayerPos(playerid,x,y,z)) eine Waffe droppen (CreateObject(.....)) und du musst dan unter OnPlayerPickUpPickup die Waffenid (GetPlayerWeapon(playerid,WaffenID) und die Munition (GetPlayerAmmo(playerid)) Abfragen. Und wenn alles zutrifft gibst du ihm einfach via GivePlayerWeapon(playerid,waffenid,munition) die jeweilige Waffe

  • warum unter onplayerpickuppickup? ich will kein pickup haebn xD

  • Wenn du kein pickup haben willst, dan kannst du das System vergessen. Ein pickup ist nichts weiteres als ein Objekt welches auf dem Boden liegt, wo wenn ein Spieler darüber rennt etwas passiert. In deinem Fall wäre es dass der Spieler eine Waffe bekommt.
    Außerdem habe ich mich oben verschrieben du musst "CreatePickup(....)" schreiben. Es wird sich daran überhaupt nichts ändern außer dass du es aufheben kannst und es sich auf der stelle drehen wird


    // Edit text hinzugefügt.

  • variable = CreateObject(...); Dann muss ich das so abfragen oder was ?
    if(pickupid==Variable)
    {
    GivePlayerWeapon(...);
    }

  • Ok aber wenn ich jez abfrage das mit pickup und einer nochmal stirbt mit einer deagle kann man das beides aufheben ?Weil es ja den 2Waffen mit der gleichen variable gibt geht das ?

  • Naja eigendlich nein, denn die Variable wird ja überschrieben.
    Mach zum Beispiel aus:
    new variable;
    folgendes:
    new variable[50];
    new pointer = 0;


    Und bei OnPlayerDeath:
    if(pointer == 50)
    {
    pointer = 0;
    // kein Return 1 !
    }
    variable[pointer+1] = CreatePickup(.....)


    und unter deinem OnPlayerPickUpPickup:
    if(pickupid == variable[pointer])
    {
    GivePlayerWeapon(....);
    }


    Das hört sich komplizierter an als es ist :P Sollte eigendlich klappen.

  • ich versteh dann aber net das mit dim OnPlayerPickupPickUp wie man dann die waffen kriegt die fallengelassen wurden ._.
    so oder wie ? if(pointer == 50)
    {
    pointer = 0;
    if(GetPlayerWeapon(...))
    {
    CreateObject(...);
    }
    }