[I need help] Waffenpickups erstellen

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
  • Hey.
    Ich bin ganz ganz ganz neu in der Scripting-Welt und habe fast gar keine Ahnung. Ein guter Kumpel hat mir ein bisschen was beigebracht.
    Auf jeden Fall geht ein Waffenpickup, jedoch das zweite nicht. Hier einmal der Quelltext. Vielleicht könnt ihr mir ja helfen =)


    public OnGameModeInit()//<<-- beim start
    {
    AddPlayerClass(270,-1985.2429,139.3698,27.6875,89.1440,0,0,0,0,0,0); // Spawnpoint Bahnhof SF wird hinzugefügt
    pickupZ[0]=CreatePickup(348,1,-1984.4923,153.6444,27.6875); // Waffenpickup Deagle ist nummer 0
    pickupZ[1]=CreatePickup(356,1,-1984.1294,124.3274,27.6875); //Waffenpickup M4
    SetGameModeText("SF:DM v1.0 Beta");
    }


    public OnPlayerPickUpPickup(playerid,pickupid)//wenn er ein pickup aufnimmt
    {
    switch(pickupid-pickupZ[0])//welches pickup ist es?
    {
    case 0:GivePlayerWeapon(playerid,24,100);//deagle - pickup (nummer 0)
    }
    }


    switch(pickupid-pickupZ[1])
    {
    case 1:GivePlayerWeapon (playerid,24,100); // m4 - pickup (nummer 1)
    }
    }

    3 Mal editiert, zuletzt von Kaisa ()

  • Sieht gar nicht gut aus,dein OnPlayerPickUpPickup :/.


    public OnPlayerPickUpPickup(playerid,pickupid)//wenn er ein pickup aufnimmt
    {
    if(pickupid == pickupZ[0]) {
    GivePlayerWeapon(playerid,24,100);//deagle - pickup (nummer 0)
    }
    else if(pickupid == pickupZ[1]) {
    GivePlayerWeapon (playerid,24,100); // m4 - pickup (nummer 1)
    }
    }

    Switch Statements kannst du dir hier anschauen,
    http://wiki.alliedmods.net/Pawn#Switch_Statements


    Allerdings ist hier ein switch gar nicht möglich ( wenn Ich mich richtig erinnere ).Du müsstest schon die normale if() Bedingung nutzen.

  • Aber das Pickup-Symbol würde trotzdem bleiben, oder? Sodass man da durch läuft und dann die Waffe bekommt.

  • Du hast ja jetzt PickupType 1 gewählt.

    Zitat

    1
    Not pickupable, exists all the time. (Suitable for completely scripted pickups using OnPlayerPickUpPickup)


    Probier es am besten mal aus,wenn es nicht funktioniert,sagst hier nochmal bescheid.

  • Funktioniert nicht.


    public OnGameModeInit()//<<-- beim start
    {
    AddPlayerClass(270,-1985.2429,139.3698,27.6875,89.1440,0,0,0,0,0,0); // Spawnpoint Bahnhof SF wird hinzugefügt
    pickupZ[0]=CreatePickup(348,1,-1984.4923,153.6444,27.6875); // Waffenpickup Deagle ist nummer 0
    pickupZ[1]=CreatePickup(356,1,-1984.1294,124.3274,27.6875); //Waffenpickup M4
    SetGameModeText("SF:DM v1.0 Beta");
    }


    public OnPlayerPickUpPickup(playerid,pickupid)//wenn er ein pickup aufnimmt
    {
    if(pickupid == pickupZ[0]) {
    GivePlayerWeapon(playerid,24,100);//deagle - pickup (nummer 0)
    }
    else if(pickupid == pickupZ[1]) {
    GivePlayerWeapon (playerid,24,100); // m4 - pickup (nummer 1)
    }
    }

    Die Fehlermeldung dazu:


    Code
    E:\SAMP-Server\SAMP\gamemodes\2.pwn(11) : error 032: array index out of bounds (variable "pickupZ")
    E:\SAMP-Server\SAMP\gamemodes\2.pwn(20) : error 032: array index out of bounds (variable "pickupZ")
    Pawn compiler 3.2.3664  Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.

    3 Mal editiert, zuletzt von Kaisa ()