Nachladezeit (GML / inerhalp eines Skripts)

  • GM 8
  • Nachladezeit (GML / inerhalp eines Skripts)

    Hallo, da ich keine ahnung habe und jetzt eine glaub ich dumme frage stelle thx im Voraus
    -Es geht um ein geheimes Projekt

    -Wie kann ich machen das der Player eine Zeit abwartet und dann erst wieder schießt?

    Wichtig: Es muss alles inerhalp eines Scripts geschrieben sein

    -Das heist kein Drag and Drop und Piece of Code sondern alles in einem Script

    Ich glaube etwa so: :sleeping:
    if Magazin <= 0
    {
    //Nachladezeit...
    //Magazin aufühlen <- kann ich schon selbst!
    //Magazin von der Munition abziehn <- kann ich auch schon! //// "IST JA LEICHT!"
    }

    großes thx im Voraus! ^^
  • GML-Quellcode

    1. if(!variable_local_exists("canshoot")){
    2. counter=1;
    3. step=0.1; //schrittweite verändern für mehr/weniger zeit
    4. }
    5. counter+=step;
    6. if(counter>=1 && keyboard_check_pressed(vk_enter)){ //key natürlich ersetzen
    7. counter=0;
    8. /*
    9. *
    10. * Hier Schusscode einfügen
    11. *
    12. */
    13. }
    Alles anzeigen

    Sollte funktionieren.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • danke, kuck ob es klappt und editier dann ob es klappt und meinen script(vielleicht kennt ihr Verbesserungsvorschläge!

    Edit: So also ehm , dass verwirrt mich sehr... richtig geklappt hat es nicht!
    Hier habe ich mein Skript! vielleicht packt es jemand den code passend rein zu schreiben :whistling:

    GML-Quellcode

    1. //script player_shooting // variablen der einzelnen Waffen und Munition
    2. if mouse_check_button(mb_left)
    3. {
    4. /*MP40*/
    5. if player.pl_weapon == 1 // falls player die MP40 hat
    6. {
    7. if player.muni >= 1 //falls Munition größer oder gleich 1 ist
    8. {
    9. if player.ammo >= 1 // falls ammo größer oder gleich 1 ist
    10. {
    11. player.ammo -= 1; // ammo - 1
    12. instance_create(player.x,player.y,mp40_bullet_obj); //Feuere eine Kugel heraus
    13. if player.ammo <= 1 // falls ammo kleiner oder gleich 0 ist
    14. {
    15. -/*Hier bitte Code schreiben*/-
    16. player.ammo = 31; //ammo aufühlen
    17. player.muni -= 31; //muni - ammo
    18. }
    19. }
    20. }
    21. }
    22. }
    Alles anzeigen

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

  • Wenn ich mir deinen Code anschaue, fällt mir als allererstes auf:
    Willst du nicht lieber deine if Bedingungen verknüpfen?
    Dazu gibt es die logischen Operatoren, wie zum Beispiel
    und &&
    oder ||
    Dann wird aus
    if player.pl_weapon == 1 // falls player die MP40 hat
    {
    if player.muni >= 1 //falls Munition größer oder gleich 1 ist
    {
    if player.ammo >= 1 // falls ammo größer oder gleich 1 ist


    nämlich die schöne kurze Zeile
    if(player.pl_weapon==1 && player.muni>=1 && player.ammo>=1)

    Dann kannst du dir meinen Code nochmal (eventuell unter zuhilfenahme der Hilfe)
    anschauen, verstehen was er prinzipiell macht und dann mit in dein script integrieren.
    Gruß, Spellmaker
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • okay, weis schon was du meinst! dass mit && oder || kenne ich ^^
    sorgt warscheinlich für mehr Übersicht!
    mal schauen! danke für deine Ratschläge :D

    Edit: Irgendwie wartet der überhaupt nicht, es klappt nicht gescheit, zu blöd...
    Soll ich wirklich Alarm benutzten, dann müste ich für jede Waffe einen Skript anlegen oder ich mach ein piece of code // mal kucken?

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