Aller au contenu
  • 0

Problème de mort


Question

Posté(e)

Bonjour/Bonsoir,

 

Alors voila je suis entrain de faire un ffarush mais j'ai un problème. Je voudrais savoir comment faire pour savoir qui a tué qui.

 

Exemple:

Quand un joueur pousse un autre joueur dans le vide ça écrit "Joueur fell out of the world" est moi je voudrais savoir qui la pousser dans le vide genre "Joueur est mort par le vide et Joueur" ou "Joueur a été pousser par Joueur".

 

Voila merci de vos réponse.

 

Cordialement ElderFr.

6 réponses à cette question

Messages recommandés

  • 0
Posté(e)

D'après mes souvenirs ce problème à déjà été résolu, et pour faire simple (je regarderais si je trouve le code dans les archives du forum) il te faut un timer de 30 secondes sur la dernière attaque effectuée du joueur A sur le joueur B

 

EDIT: J'ai retrouvé le post. La prochaine fois, recherche mieux ;)

 

Code de @LeCraftDeOuf : (légèrement modifié)

on damage:
   if attacker is a player:
       if victim is a player:
           set {attacker.%victim%} to "%attacker%"

on death:
   victim is a player
   if damage cause is void:
       if {attacker.%victim%} is set:
            if difference between now and {attacker.%victim%} is more than 30 seconds:
                  set death message to "&6Mort &l&8» &2%victim% &6est mort de &bchute &6et &b%{attacker.%victim%}%&6."
                  clear {attacker.%victim%}
            else:
                 set death message to "&6Mort &l&8» &2%victim% &6est mort de &bchute&6."
                 clear {attacker.%victim%}  

  • J'aime 2
  • 0
Posté(e)

Holà, désolé de chipoter mais je ne suis pas d'accord pour cette partie là :

on damage:
   if attacker is a player:
       if victim is a player:
           set {attacker.%victim%} to "%attacker%"
           wait 30 seconds
           {attacker.%victim%} is "%attacker%"
           clear {attacker.%victim%}

 

Car à cause du "wait 30 seconds" on va forcement clear la valeur, c'est à dire que si un combat dure plus de 30 secondes (entre les même 2 joueurs) il peut y avoir un problème de variable qui se clear trop tôt !

 

exemple :

t=0 : Anarchick atk Noftaly = variable set

t=10 Anarchick atk Noftaly = variable set

t=30: Variable clear

t=35: Anarchick tue Noftaly=MAIS OU EST PASSE LA VARIABLE BORDEL DE GZ564VGs** =D

(Pardonne moi Noftaly)

 

Pour palier à ce problème is est impératif d'utiliser un :

if difference between now and {attacker.%victim%} is more than 30 seconds:

 

BONNE ANNÉE (ceci est valable dans le cas où quelqu'un voit ce message à minuit, d'un autre côté une période Terrestre ne dure pas 24h mais 23h53 minutes donc la nouvelle année est déjà passé depuis longtemps ... OSEF)

  • 0
Posté(e)

Pas vraiment, car enfaite on imagine le combat suivant:

Anarchick attaque 3 coups sur Noftaly, du coup le code sera exécuté à chaque fois, sur les 3 coups.

Résultat, le dernier coup porté par Anarchick aura le timer de 30 secondes, et si Noftaly tombe, il n'y aura pas de soucis.

 

Cependant, tu m'as fais tilté sur quelque chose qui pourrait se compliquer: si le combat s'exerce entre 3 joueurs. (ou plus)

 

Et là, pour le coup ton:

if difference between now and {attacker.%victim%} is more than 30 seconds:

est très important, car le problème est réglé.

 

Du coup, j'ai édité le code principal :)

  • J'aime 1
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.