Waffenwechsel per Mausrad

  • GM 6

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Waffenwechsel per Mausrad

    Hi, ich wollte ein Skript bei "Mouse wheel up" und "Mouse wheel down" machen, wo man Waffen wechselt.

    Das soll Waffen überspringen, die man nicht hat.

    So solls aussehen:
    Waffe 1: global.deserteagle - Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.
    Waffe 2: global.shotgun - Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.
    Waffe 3: global.minigun - Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.
    Waffe 4: global.rocketlauncher - Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.
    Waffe 5: global.bfg - Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.
    Waffenwechsel: global.weaponswitch - Das ist die Variable für die Waffe, die gewählt ist.
    Wenn man die Waffe hat, stehe es auf 1, wenn man sie nicht hat, dann auf 0.

    Könnt ihr mir helfen?
  • du machst eine Variable waffe.

    waffe=0

    Im mousewheel up event:

    if waffe>-1 waffe-=1

    im mousewheel down event

    if waffe<6 waffe+=1

    und dann noch waffe den anderen waffen zu ordnen... (da du das ja schon gemacht hast)

    switch waffe
    {
    case 0: global.deserteagle=1;break;
    case 1: global.shotgun=1;break;
    ...
    }
  • In diesem Fall würde ich eine eher "unprofessionelle" Lösung bevorzugen:

    GML-Quellcode

    1. // Mouse Wheel Up
    2. if (global.deserteagle) {global.deserteagle = 0; global.bfg = 1;}
    3. else if (global.shotgun) {global.shotgun = 0; global.deserteagle = 1;}
    4. else if (global.minigun) {global.minigun = 0; global.shotgun = 1;}
    5. // ...

    GML-Quellcode

    1. // Mouse Wheel Down
    2. if (global.deserteagle) {global.deserteagle = 0; global.shotgun = 1;}
    3. else if (global.shotgun) {global.shotgun = 0; global.minigun = 1;}
    4. // ...

    EDIT: F4LL0UT hat übrigens recht, besonders praktisch ist das nun nicht.
    Allerdings war es mir gestern zu viel da noch drüber zu philosophieren ^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von copyboy ()

  • Sorry, bin gerade völlig raus aus GML und habe im Moment keine Zeit mich für dieses Beispiel weider einzuarbeiten, aber sämtliche Ansätze hier halte ich für schlecht. Die Waffen die man besitzt sollte man in einem Array festhalten (inventar[0] wäre dann Pistole, inventar[1] wäre Shotgun etc.). Die Waffe die man in der Hand hat müsste auch in einer Variable festgehalten werden, etwa equip. Nun müsste beim runter drehen des Mausrads "inventar[equip+1]" geprüft werden. Wenn es 1 ist wird die "equip" auf "equip+1" gesetzt - Problem: um zu prüfen ob denn die darauf folgende Waffe verfügbar ist, braucht man ne Zählvariable. Und überhaupt: am sinnvollsten ist eine Schleife, damit man mit einer Drehung das ganze Inventar durchgucken kann bis man wieder bei der Waffe ist, die man in der Hand hält.

    Reicht das damit ein schlauer Mensch auf dieser Basis nun ein Example bastelt oder muss ich da doch hinterher rangehen?
  • klappt immernoch nicht. dort kommt auf einmal die bfg!

    Also, Meine Waffenvariablen sind:
    1. global.deserteagle
    2. global.shotgun
    3. global.minigun
    4. global.rocketlauncher
    5. global.bfg
    Wenn man eine Waffe davon hat, wird dessen Variable eine 1 zeigen, wenn nicht, dann 0.

    Welche Waffe man hat, zeigt:
    global.weaponswitch
  • Ich hab dir mal ein Beispiel gemacht (die Sprites sind allerdings nicht die Besten :) ).
    Es ist gut kommentiert, ich hoffe also, dass du damit zurecht kommst.
    Änder es einfach so ab, wie du es brauchst.
    Dateien
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Spellmaker schrieb:

    Ich hab dir mal ein Beispiel gemacht (die Sprites sind allerdings nicht die Besten :) ).
    Es ist gut kommentiert, ich hoffe also, dass du damit zurecht kommst.
    Änder es einfach so ab, wie du es brauchst.
    Gut und schön, ich habe aber nicht den Game Maker 7, sondern den Game Maker 6.1!
  • Simon! (hehe, namesfetter), wie f4allout schon sagt ist es viel praktischer eine variable für alle waffen zu benutzen...
    das würde so aussehen:
    global.waffe=0 //heißt du hast keine waffe
    global.waffe=1 // heißt du bentuzt gerade die desserteagle
    global.waffe=2 //heißt du benutzt eine shutgun
    ........

    EDIT: oO Spellmaker hat ein schönes example gemacht
    EDIT2: Simon! es gibt da doch ein converter, oder?
  • Benutzer online 3

    3 Besucher