[TUT]Easy Waffen/Weapon Drops

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
    Ich erklare euch mal wie man Waffen Drops macht , vlt ist die Methode die ich euch zeige "primitiv" aber ich bin kein Profi Scripter und wurde mich uber ein paar Verbesserungsvorschlage freuen.Achtung die die dieses Tut lesen brauchen wenigstens ein wenig Grundwissen , damit sie es verstehen.
    Als erstes erstellt erstellt ihr ein paar Pickups die ihr fur Waffen braucht
    new Ak47Drop;//kommt ganz oben unter die Includes
    new M4Drop; 
    Dann kommen wir zum wesentlichen und zwar zum OnPlayerDeath
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:x,Float:y,Float:z; //Float brauchen wir weil wir was mit Zahlen zu tun haben bzw Koordinaten (was x,y,z bedeutet muss man schon wissen)
    GetPlayerPos(playerid,x,y,z);// Das findet die Position von dem Spieler heraus ,
    if(GetPlayerWeapon(playerid) == 30){Ak47Drop= CreatePickup(355,4,x,y,z);}//ak 47 Das erstellt das Pickup auf schon voher herausgefunden Position
    else if(GetPlayerWeapon(playerid) == 31){M4Drop= CreatePickup(356,4,x,y,z);}//m4
    return 1;
    }

    Erklarung :
    Wenn der Spieler stirbt checkt das Script noch seine Waffen Id die er zuletzt in der Hand hatte , wenn diese Id in GetPlayerWeapon eigentragen ist erstellt es ein Pickup. 355 = ist die Modelid und 4 = ist der Spawntype (mehr Infos uber Pickups wie zB models von waffen und Types findet ihr hier : Klick )
    Naturlich konnt ihr es auch auf diese Weise schreiben :
    if(GetPlayerWeapon(playerid) == 30)
    {
    AkDrop= CreatePickup(355,4,x,y,z);//ak47
    }
    Aber wer gerne Zeilen spart machts anders


    Jetzt sind wir schon fast am Ende des Tut`s , es gibt ein voher schon erstelltes Public fur Pickups und er hei?t so OnPlayerPickupPickup
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Ak47Drop){GivePlayerWeapon(playerid,30,30);}//ak47
    else if(pickupid == M4Drop){GivePlayerWeapon(playerid,31,30);} //m4
    return 1;
    }
    Erklarung :
    Wenn der Spieler die Pickup Id Ak47Drop oder die Pickupid M4Drop betritt bekommt er diese oder die andere Waffe


    So fertig und viel Spaß beim Copy und Paste :D

  • Wenn zwei sterben, wird nur an einer Stelle eine AK47 angezeigt^^

    Mhh das kann stimmen aber nur wenn 2 gleichzeitig sterben ... daran habe ich gar nich gedacht habe es gerade in meinen Server getest und es geht eintlich ganz gut habe es sogar mit 12 Waffen getestet.Ahja die die Pickup`s verschwinden eh nach 20 Secs oder so automatisch weil , die Pickups Type 4 haben also ist es nicht schlimm

  • Änder folgendes:


    new Ak47Drop;//kommt ganz oben unter die Includes
    new M4Drop;


    in


    new Ak47Drop[MAX_PLAYERS];//kommt ganz oben unter die Includes
    new M4Drop[MAX_PLAYERS];


    und das


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:x,Float:y,Float:z; //Float brauchen wir weil wir was mit Zahlen zu tun haben bzw Koordinaten (was x,y,z bedeutet muss man schon wissen)
    GetPlayerPos(playerid,x,y,z);// Das findet die Position von dem Spieler heraus ,
    if(GetPlayerWeapon(playerid) == 30){Ak47Drop= CreatePickup(355,4,x,y,z);}//ak 47 Das erstellt das Pickup auf schon voher herausgefunden Position
    else if(GetPlayerWeapon(playerid) == 31){M4Drop= CreatePickup(356,4,x,y,z);}//m4
    return 1;
    }


    in


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float:x,Float:y,Float:z; //Float brauchen wir weil wir was mit Zahlen zu tun haben bzw Koordinaten (was x,y,z bedeutet muss man schon wissen)
    GetPlayerPos(playerid,x,y,z);// Das findet die Position von dem Spieler heraus ,
    if(GetPlayerWeapon(playerid) == 30){Ak47Drop[playerid]= CreatePickup(355,4,x,y,z);}//ak 47 Das erstellt das Pickup auf schon voher herausgefunden Position
    else if(GetPlayerWeapon(playerid) == 31){M4Drop[playerid]= CreatePickup(356,4,x,y,z);}//m4
    return 1;
    }


    und als letztes das


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Ak47Drop){GivePlayerWeapon(playerid,30,30);}//ak47
    else if(pickupid == M4Drop){GivePlayerWeapon(playerid,31,30);} //m4
    return 1;
    }


    in


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Ak47Drop[playerid]){GivePlayerWeapon(playerid,30,30); DestroyPickup(Ak47Drop[playerid]);}//ak47
    else if(pickupid == M4Drop[playerid]){GivePlayerWeapon(playerid,31,30); DestroyPickup(M4Drop[playerid]);} //m4
    return 1;
    }


    Sollte dann funktionieren...

  • Sowas wird denke ich nicht funktionern , da sie dann nur fur den Spieler der gestorben ist sichbar wären

  • Ähm ja liest man sein Tut nicht noch einmal durch bevor man es postet ?


    Dicker Fehler:


    new Ak47Drop;//kommt ganz oben unter die Includes


    AkDrop= CreatePickup(355,4,x,y,z);//ak47


    .....


    Und ein Tut ist es auch nicht eher ein Codeschnipsel da nichts erklärt wird...