Was erstellen wo man steht

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 Community!
    Ich möchte ein Event system machen aber als Admin soll man per /pickups ein Dialog öffen wo sachen drinne stehen z.b heal und deagle.
    Wenn man das anklickt soll ein pickup erstellt werden wo ich stehe.
    Aber nun versuche ich es seit 1Stunde aber es klappt nicht.


    Nun habe ich alles gelöscht und will es neu erstellen dafür brauche ich eure Hilfe...


    Ich mache das so


    new waffen;



    Bei OnGameModeInit
    new Float:x,Float:y,Float:z


    waffen = Createpickup(348,1,x,y,z,-1)//348 = das model was erstellt werden soll... x.y.z Die kordinaten



    Und wie muss ich es im Dialog machen und bei OnPlayerPickupPickup ??

  • Du machst oben new Waffe;
    Dann unter dem OnDialogResponse das:
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    Waffe = CreatePickup(.....);
    Das muss unter OnDialogResponse, denn wenn du es unter OnGameModeInit machst, wird das für jeden Spieler , wenn sie auf dem Server sind angezeigt.


    Dann unter OnPlayerPIckUpPickUp:
    if(pickupid == Waffe)
    [
    GivePlayerWeapon(playerid,24,500);//DEAGLE BEISPIEL!
    }

  • DestoryPickup(pickupid);

    "Imagine if the government went after corruption as hard as it goes after guys who run filesharing sites. Priorities. " - @Snowden
    "More worrying than FBI temporarily running a server that contained child porn, is hacking computers anywhere in the world with one warrant" - @josephfcox

  • Also nun funktioniert alles ich zeige mal was ich alles gemacht habe


    new waffen[8]; //Oben im script


    ocmd:pickup(playerid,params[])
    {
    ShowPlayerDialog(playerid,DIALOG_WAFFE,DIALOG_STYLE_LIST,"Pickups-erstellen","Minigun\nMP5\nDeagle\nM4\nRaketenwerfer\nHeal\nSchutzweste\nPickups löschen","Erstellen","Abbrechen");
    return 1;
    }


    if(dialogid == DIALOG_WAFFE)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen.");
    }
    if(response==1)
    {
    if(listitem==0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[0] = CreatePickup(352,1,x,y,z,-1);
    }
    if(listitem==1)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[1] = CreatePickup(353,1,x,y,z,-1);
    }
    if(listitem==2)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[2] = CreatePickup(348,1,x,y,z,-1);
    }
    if(listitem==3)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[3] = CreatePickup(355,1,x,y,z,-1);
    }
    if(listitem==4)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[4] = CreatePickup(371,1,x,y,z,-1);
    }
    if(listitem==5)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[5] = CreatePickup(1240,1,x,y,z,-1);
    }
    if(listitem==6)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    waffe[6] = CreatePickup(1242,1,x,y,z,-1);
    }
    }
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==waffe[0])
    {
    GivePlayerWeapon(playerid,38,10000);
    return 1;
    }
    if(pickupid==waffe[1])
    {
    GivePlayerWeapon(playerid,29,10000);
    return 1;
    }
    if(pickupid==waffe[2])
    {
    GivePlayerWeapon(playerid,24,10000);
    return 1;
    }
    if(pickupid==waffe[3])
    {
    GivePlayerWeapon(playerid,31,10000);
    return 1;
    }
    if(pickupid==waffe[4])
    {
    GivePlayerWeapon(playerid,35,10000);
    return 1;
    }
    if(pickupid==waffe[5])
    {
    SetPlayerHealth(playerid,100);
    return 1;
    }
    if(pickupid==waffe[6])
    {
    SetPlayerArmour(playerid,100);
    return 1;
    }
    return 1;
    }

  • Mach aus new Waffe[8];new Waffe[7];Da du es nur 7 mal benutzt ;) Du kannst es einfach immer wieder beliebig ändern bzw. erhöhen.


    /e
    Das auch só machen, dann musst du nicht so oft die Position auslesen ;)
    if(dialogid == DIALOG_WAFFE)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen.");
    }
    if(response==1)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if(listitem==0)
    {
    waffe[0] = CreatePickup(352,1,x,y,z,-1);
    }
    if(listitem==1)
    {
    waffe[1] = CreatePickup(353,1,x,y,z,-1);
    }
    if(listitem==2)
    {
    waffe[2] = CreatePickup(348,1,x,y,z,-1);
    }
    if(listitem==3)
    {
    waffe[3] = CreatePickup(355,1,x,y,z,-1);
    }
    if(listitem==4)
    {
    waffe[4] = CreatePickup(371,1,x,y,z,-1);
    }
    if(listitem==5)
    {
    waffe[5] = CreatePickup(1240,1,x,y,z,-1);
    }
    if(listitem==6)
    {
    waffe[6] = CreatePickup(1242,1,x,y,z,-1);
    }
    }
    return 1;
    }

  • Danke nun fertig mein Pickup-system :)
    Ich bin noch anfänger scripte seit 2wochen oder so davor ahbe ich auch immer aber immer gleich wieder aufgehört nun bin ich süchtig nach scripten xD..
    Also ich als anfänger finde ich habe ich schon viel geschafft den Anfang von MrMonat alte Tutorialreihe. was ich alleine geschafft habe:


    •Respektpunkte-System beim Payday
    •Pickup-system
    •Admincar erstellen
    •Aduty-offduty befehel
    •makeleader,invite,uninvite
    •freeze/unfreeze
    •report system
    • sethp,givewaffe,setskin
    u.s.w
    also ich als anfänger denke habe das schon gut gemacht :)

  • Ich denke es wäre sinnvoller, dass man es dynamisch scriptet.
    Also hier ein paar Beispiele (bin nur am iPod):

    #define MAX_PICKUP 25
    enum pickupenum
    {
    Pickup,
    Float:X,
    Float:Y,
    Float:Z,
    frei,
    Art,
    WaffenID //Wenn es keine Waffe ist bei 0 lassen.
    }
    new PickUp[MAX_PICKUP][pickupenum];

    Jetzt könntest du höchstens 25 Pickups nehmen ;)


    Befehl(Beispiel in Ocmd)

    ocmd:createpickup (playerid, params)
    {
    ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST,"Pickup erstellen, bitte Art wählen:","Heal Pickup\nWaffen Pickup\nTodes Pickup","Erstellen","Abbrechen");
    return 1;
    }

    So, nun unter OnDialogResponse:

    if(dialogid==dialogid)//Anstatt das 2. dialogid die nehmen, du du verwendest!
    {
    if(!response)return 1;
    if(listitem==0)//das erste
    {
    for(new i = 0; i < MAX_PICKUP; i++) {
    if(PickUp[i][frei]==1) {
    Break;
    new Float;x, Float;z, Float:y;
    GetPlayerPos(playerid, x, y, z);
    PickupCreate(i, 1, x, y, z);//id, Art, Waffe, Position x, y, z
    SendClientMessage(playerid, Farbe, "Heal Pickup an deiner aktuellen Position erstellt.");
    }
    }
    }
    else if(listitem==1)//das zweite
    {
    ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_LIST,"Waffe auswählen:","Deagle\nM4", "Abbrechen", "Erstellen");
    }
    else if(listitem==2)//das dritte
    {
    for(new i = 0; i < MAX_PICKUP; i++) {
    if(PickUp[i][frei]==1) {
    Break;
    new Float;x, Float;z, Float:y;
    GetPlayerPos(playerid, x, y, z);
    PickupCreate(i,3, 0, x, y, z);//Art, Waffe, Position x, y, z
    SendClientMessage(playerid, Farbe, "Death Pickup an deiner aktuellen Position erstellt.");
    }
    }
    }
    }
    else if(dialogid==dialogid)
    {
    if(!response)return 1;
    if(listitem==0)
    {
    for(new i = 0; i < MAX_PICKUP; i++) {
    if(PickUp[i][frei]==1) {
    Break;
    new Float:x, Float:z, Float:x;
    PickupCreate(i, 2, 348, x, y, z);
    }
    }
    }
    else if(listitem==1)
    {
    for(new i = 0; i < MAX_PICKUP; i++) {
    if(PickUp[i][frei]==1) {
    Break;
    new Float:x, Float:z, Float:x;
    PickupCreate(i, 2, 356, x, y, z);
    }
    }
    }
    }

    Nun müssen wir noch den Stock erstellen:

    stock PickupCreate(Id, Art,Waffe,Float:x, Float:Y, Float:Z)
    {
    if(Art==1) return PickUp[Id][pickup] = CreatePickup(1240,1, x, y, z);
    if(Art==2) return PickUp[Id][pickup] = CreatePickup(Waffe,1, x, y, z);
    if(Art==3) return PickUp[Id][pickup] = CreatePickup(1254,1, x, y, z);
    return 1;
    }

    So, entweder du schaffst es nun alleine, jemand anderes scriptet das hier weiter oder ich später am Pc, da ich keine Lust mehr habe das mit IPod weiterzuscripten ;)
    Musst die nur noch speichern, Laden und am Ende (OnGameModeExit) löschen lassen.
    Das machst du zum Beispiel mit einer For Schleife.
    Hoffe sind nicht allzuviele Fehler drin, bin ja nur am IPod.