Jump to content

Recommended Posts

Posted (edited)

 

 

Moin Leute, 

als allererstes möchte ich gerne anmerken, dass ich kein Programmierer bin und davon relativ wenig verstehe, ich möchte lediglich für mich und ein paar Freunde einen Gangwar-Server erstellen.

Ich würde gerne über Keybinds (Komma und Punkt) nach einem 4 Sekunden timeout das health oder die armour auffüllen, wie hier unten bereits zu sehen.

Mein Problem ist nun, dass man noch beide Tasten gleichzeitig drücken kann und somit in 4 Sekunden Leben + Rüstung gleichzeitig auffüllt.

Außerdem kann man die Taste spamen, sodass man quasi unsterblich ist

Ich hab Stundenlang gegoogelt und rumprobiert aber habe nichts gefunden (bzw nichts gefunden was ich verstehe :D). um die Probleme zu beseitigen.

 

Wäre cool wenn ihr mir einen Tipp geben könntet. 

 

Das ist der vorhandene Code einmal Clientside und Serverside.

	mp.keys.bind(0xBC, true, () => {

        mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
        mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
	setTimeout(function () {
        mp.events.callRemote("Health");  	
   
      }, 4000);          	
});
	mp.keys.bind(0xBE, true, () => {  
     
            mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
            mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
            setTimeout(function () {
                 mp.events.callRemote("Armour");        
           
        }, 4000);
        
});
mp.events.add ('Health', (player) => {
    	
        player.health = 100;
   
});

mp.events.add ('Armour', (player) => {
    	
        player.armour = 100;
   
});

 

Edited by DerFlamer
Posted (edited)


mp.keys.bind(0xBC, true, () => {
  mp.events.callRemote("Heilen");
});
 
mp.keys.bind(0xBE, true, () => {
  mp.events.callRemote("Rüstung");
});

 

mp.events.add("Heilen", () => {
  mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
  mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
  mp.keys.unbind(0xBE, true);
setTimeout(function () {
  mp.events.callRemote("Health");   
 
}, 4000);
});
 
mp.events.add("Rüstung", () => {
  mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
  mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
  mp.keys.unbind(0xBC, true);
setTimeout(function () {
       mp.events.callRemote("Armour");        
 
}, 4000);
});

 


//====SERVERSIDE====

 

 

mp.events.add ('Health', (player) => {
    
    player.health = 100;
    mp.keys.bind(0xBE, true, () => {
        mp.events.callRemote("Rüstung");
      });
});

mp.events.add ('Armour', (player) => {
    
    player.armour = 100;
    mp.keys.bind(0xBC, true, () => {
        mp.events.callRemote("Heilen");
    });
});

Eventuell gehts so

Edited by Starblocks
Posted
vor 7 Minuten schrieb Starblocks:


mp.keys.bind(0xBC, true, () => {
  mp.events.callRemote("Heilen");
});
 
mp.keys.bind(0xBE, true, () => {
  mp.events.callRemote("Rüstung");
});

 

mp.events.add("Heilen", () => {
  mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
  mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
  mp.keys.unbind(0xBE, true);
setTimeout(function () {
  mp.events.callRemote("Health");   
 
}, 4000);
});
 
mp.events.add("Rüstung", () => {
  mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");//preload the animation
  mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a", "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);
  mp.keys.unbind(0xBC, true);
setTimeout(function () {
       mp.events.callRemote("Armour");        
 
}, 4000);
});

 


//====SERVERSIDE====

 

 

mp.events.add ('Health', (player) => {
    
    player.health = 100;
    mp.keys.bind(0xBE, true, () => {
        mp.events.callRemote("Rüstung");
      });
});

mp.events.add ('Armour', (player) => {
    
    player.armour = 100;
    mp.keys.bind(0xBC, true, () => {
        mp.events.callRemote("Heilen");
    });
});

Eventuell gehts so

Ja, das funktioniert leider nicht. Da passiert nichts wenn ich den button drücke..Trotzdem schon mal danke für die Antworten !

  • 1 month later...
Posted

probier mal des

const cooldownMilliseconds = 4000;
mp.events.add("Armour", (player) => {
    if (Date.now() - player.lastArmorTimestamp < cooldownMilliseconds) {
        player.outputChatBox("Du kannst noch keine neue Weste ziehen.");
        return;
    }

    player.armour = 100;
    player.lastArmorTimestamp = Date.now();
    player.outputChatBox("Deine Rüstung wurde aufgefüllt");
});

mp.events.add("Health", (player) => {
    if (Date.now() - player.LastHealthTimestamp < cooldownMilliseconds) {
        player.outputChatBox("Du kannst noch kein neuen Verbandskasten nehmen");
        return;
    }


    player.health = 100;
    player.LastHealthTimestamp = Date.now()
    player.outputChatBox("Dein Leben wurde aufgefüllt")
});

und

mp.keys.bind(0xBE, false, () => {
    mp.events.callRemote("Armour");

    mp.players.local.freezePosition(true);
    mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");
    mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a",
        "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);

    setTimeout(
        () => {
            mp.players.local.freezePosition(false);
        },
        4 * 1000
    );
});

mp.keys.bind(0xBC, false, () => {
    mp.events.callRemote("Health");

    mp.players.local.freezePosition(true);
    mp.game.streaming.requestAnimDict("amb@code_human_cower@male@idle_a");
    mp.players.local.taskPlayAnim("amb@code_human_cower@male@idle_a",
        "idle_b", 8.0, 1.0, 4000, 1, 1.0, false, false, false);

    setTimeout(
        () => {
            mp.players.local.freezePosition(false);
        },
        4 * 1000
    );
});

löst nicht problem mit beides gleichzeitig aber sollte das mit dem spammen lösen

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...