Jump to content

"Gangwar" Server problem


DerFlamer

Recommended Posts

 

 

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
Link to comment
Share on other sites


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
Link to comment
Share on other sites

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 !

Link to comment
Share on other sites

  • 1 month later...

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

Link to comment
Share on other sites

  • Recently Browsing   0 members

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