[niveau intermédiaire] TeamBan pendant un certain temps (kamikaze)

  • Initiateur de la discussion Oxy_Clems
  • Date de début
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Bonjour, ça fait longtemps, mais les problèmes arrivent toujours ..

J'ai créé un métier kamikaze à la demande de mes joueurs. Pour régulariser l'utilisation de ce métier, je l'ai déjà restreint au VIP, mais je souhaiterais faire en sorte qu'il soit utilisable qu'un seule fois par jour.

Pour cela j'ai rajouté ceci au métier :
Code:
PlayerDeath = function(ply, weapon, killer) ply:teamBan() ply:changeTeam(GAMEMODE.DefaultTeam, true) if killer:IsPlayer() then DarkRP.notifyAll(0, 4, "Un kamikaze est mort !") else DarkRP.notifyAll(0, 4, "Un kamikaze est mort !") end
end
Et j'aimerais savoir comment faire durer le teamBan pendant 24h, ce qui empêcherais le joueur de réutiliser le métier plusieurs fois dans la même journée.
J'ai déjà essayé de rentrer une valeur dedans, mais cela ne change rien ...

Tests faits :
ply:teamBan(3000)
ply:teamBan("3000")
Et cela na rien changer.

Après j'ai vu qu'il existait aussi
Player:teamBan(number team, number time)
Mais chez moi ça ne fonctionne pas ..

Merci d'avance si vous avez des solutions à proposer.

Cordialement.
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Et aussi je ne sais pas si il existe quelque chose à la place du "if killer:IsPlayer() then" qui permettrai de dire "si le tueur est le joueur lui même alors" au lieu "si le tueur est un joueur alors".
Ce qui permettrai de mettre ensuite le message "le kamikaze c'est fait exploser".
Et en else "Le kamikaze a été neutralisé ou est mort tout seul tel une terrible m****"
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Ou sinon mettre
if killer;istheplayerhimself() then
"le kamikaze c'est fait exploser"
else if killer:Isanotherplayerthanhimself() then
"le kamikaze c'est fait abattre"
else
"Ce con a raté une grosse occasion"
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
@Z3k4 @Diablos26 y'en a pas un de vous deux qui aurait une petite idée ?
 
P

PCMalexis

Geek suprême
Messages
600
Score réaction
49
Points
125
Salut,

Je n'est pas tester mais tu peut essayer ceci : ply:teamBan("darkrp", 3000)

Pour si il c'est fait exploser essaye ceci :
PHP:
if killer:PlayerSuicide
 
Dernière édition:
MathiouGaming

MathiouGaming

Geek suprême
Messages
376
Score réaction
99
Points
150
ply:TeamBan(TEAM_KAMIKAZE,3000)
 
  • J'aime
Réactions: Oxy_Clems
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Normalement je suis absent pendant 1 semaine mais bon la question est assez interessante, donc je vais répondre :
Code:
if killer:IsPlayer() then
DarkRP.notifyAll(0, 4, "Un kamikaze est mort !")
ne signifie pas "si le tueur est un joueur alors" mais il demande d'afficher au joueur (donc au Player()) qui a tué (le "killer" initialisé dans la fonction) d'exécuter ensuite les arguments (ici, un DarkRP.notify donc ça va envoyer un certain message au joueur qui a tué la personne).
Sinon le teamban de Mathiou est bon : toujours regarder la fonction qu'on utilise. Si teamBan (pas de T majuscule par contre) demande deux nombres, forcément on peut pas en mettre en un seul. Le premier, le nom de la team, est une variable renvoyant un nombre, donc c'est bon. Le second, lui, est le temps, donc il est bon aussi. En mettant des guillemets " ", tu indiques un string, donc ça n'aurait pas fonctionné.
Voilà, si tu as d'autres questions n'hesite pas mais je ne réponds pas avant Samedi :).
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
J'avais réussi avec le code de mathiou que j'ai d'ailleurs oublié de remercier :/ donc merci ;). Mais tu as tort diablos, if killer:Isplayer veut bien dire "si le tueur(killer) Isplayer(êtrejoueur) "Si le tueur est un joueur", donc on a
Code:
Si le tueur est un joueur alors
notif darkrp "le joueur c'est fait tuer !"
Sinon(si le tueur n'est pas un joueur)
notif darkrp "le joueur est mort !"
.
 
Dernière édition:
MathiouGaming

MathiouGaming

Geek suprême
Messages
376
Score réaction
99
Points
150
Et bien de rien ^^
 
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Sorry, j'avais mal compris, là sur le coup je passe pour un con : ma seule défense, c'est que je suis sur téléphone, donc à moitié concentré :p J'avais cru à un autre code. Alors dans ce cas, dans le if killer:IsPlayer() tu mets une phrase style : "Le maire s'est fait tué" et le else fait office de suicide (car le killer n'est pas un joueur, autrement dit c'est un prop ou un suicide), donc tu mets une phrase style : "Le maire s'est tué".
C'est ça que tu veux, non ?
Sinon, je répondrais à partir de Samedi, y'aura pas de soucis pour obtenir ce que tu veux mais faut juste que je sois en bonne condition ^^
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Bruh ... Tu n'as pas du relire alors car il est même pas question de maire mais de kamikaze ^^' ...
 
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Le principe reste le même, l'important est la logique, pas la phrase :).
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Nan mais ce que tu m'as dit c'est le code que j'ai déjà ... Moi c'était autre chose que je voulais ... Relis le sujet vite fait tu verras que je cherchais autre chose.. :D
 
Dernière édition:
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Sorry, en effet j'avais décidément rien compris au sujet. Pour éviter de sortir n'importe quoi et de faire durer les messages pour quelque chose d'aussi simple, je répondrais à la discussion dès Samedi, une fois mon ordinateur en main :D Sorry de l'attente :p
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Bon, malgret les modifications apportés, ce métier me cause toujours problème ... J'aimerais que le job kamikaze puisse être utilisé par les joueurs seulement 1 fois toute les x heures. Cela permettrai de régulariser les explosions à 10 morts qui on lieu en se moment toutes les 30 minutes.

Si quelqu'un à une idée, je le remercie d'avance.
 
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
La fonction teamBan devrait fonctionner : A partir du moment où les joueurs se déconnectent et reconnectent de ton serveur, par contre le teamBan est totalement oublié... Donc, ils ont dû se reconnecter à ton serveur pour pouvoir le faire.
Pour ta demande en haut, en réalité je relis bien et je comprends toujours pas très clairement : tu veux que si le kamikaze se suicide, il y'a "le kamikaze s'est fait explosé", et que sinon, "Le kamikaze a été neutralisé ou est mort tout seul tel une terrible m***** !" ? Si oui, alors tente ce code :
Code:
PlayerDeath = function(ply, weapon, killer)
ply:teamBan()
ply:changeTeam(GAMEMODE.DefaultTeam, true)
if ( ply == killer ) then
DarkRP.notifyAll(0, 4, "Le kamikaze s'est fait explosé !")
else
DarkRP.notifyAll(0, 4, "Le kamikaze a été neutralisé ou est mort tout seul tel une terrible m***** !")
end
end
Si c'est pas ça que tu veux, ce n'est pas que j'y arrive pas, mais je comprends pas en faite, enfin je pense et j'espère que c'est ça que tu veux :)
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
Oklm administrateur d'un groupe d'entraide gmod avec yaya, didi etc dans les modos ...

Bref sinon maintenant la seule chose qui m'importe, c'est de faire en sorte que le métier soit utilisable toutes les 2h. En gros, au lieu que chaque utilisateurs puissent l'utiliser toutes les deux heures, c'est le métier en lui même qui est utilisable toutes les 2h, donc une explosion toutes les 2h et pas plus de possible.
 
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Oxy_Clems à dit:
Oklm administrateur d'un groupe d'entraide gmod avec yaya, didi etc dans les modos ...

Oklm administrateur d'un groupe d'entraide gmod avec yaya, didi etc dans les modos ...[/QUOTE]
Je fais le plaisir de t'aider. Tu m'ajoutes sur Steam. Tu me demandes des fonctions sur le menu F4. Et après tu es presque à te plaindre que je sois administrateur d'un groupe d'entraide Garry's Mod.
Déjà, tu ne connais pas mes capacités. Ce que tu me demandes est vraiment tout bête et je n'arrive pas à le comprendre : ce n'est donc pas le code qui foire ou que je n'y arrive pas, c'est que je ne comprends pas tes explications.
Ensuite, je suis administrateur parce que c'est moi qui est eu avec Momo l'idée de créer ce groupe, normal donc.
De plus, il y'a une discussion parlant des capacités de chacun, et c'est bien écrit que je suis pas non plus dans les meilleurs.
Pour finir, ne croit pas que "yaya" ou d'autres personnes sont des codeurs hein, je ne connais pas ce gars car je ne lui parle pas, mais je peux te dire que c'est pas parce que c'est le fondateur d'Impulsion que ça fait de lui un codeur. Ils achètent des codeurs assez expérimentés (je ne citerais pas leurs noms), pour leur faire un addon exclusif puis les payer. Alors désolé, mais le jour où ils feront leurs propres addons, là on pourra dire. Actuellement j'ai pas le souvenir qu'ils méritent la place d'"Administrateur" que moi je ne mérite pas :0.

De plus, avoir le plaisir d'aider, c'est déjà ça, alors pour un "Administrateur" je suis quelqu'un de bien, enfin je pense. Je ne fais pas de service "payant", moi. Désolé mais tu m'as vraiment énervé, ça m'a beaucoup déçu de toi de faire des remarques comme ça en plein milieu d'une discussion alors que je pensais que t'étais un gars plutôt bien et censé.
 
  • Initiateur de la discussion
Oxy_Clems

Oxy_Clems

Geek suprême
Messages
604
Score réaction
40
Points
130
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT ?
J'ai rien dit de mal !! Si ? Justement j'me disais "whoaw le mec à un groupe d'entraide avec yaya, didi etc dedans", en aucun je disais que tu ne méritais pas ça ... Au contraire ..
 
Diablos26

Diablos26

Psychopathe
Messages
951
Score réaction
326
Points
315
Désolé alors de la mauvaise interprétation alors, mais pour moi mettre "...", puis ensuite le "bref sinon" (genre "oublie t'es nul"), c'était pas à but valorisant. Merci alors si je suis censé le prendre bien. On continue la discussion sur Steam et je poste la réponse pour ta demande en EDIT de ce message, pour ceux que ça intéresse :).

EDIT : Voilà le code pour les intéressés.

Code:
local plyJoinTeam = CurTime() -- pour initialiser une variable LOCALE juste avant le début de ton job, et mettre un simple CurTime() pour pouvoir autoriser le premier joueur à join dès l'ouverture du serveur
-- DEBUT DE TON JOB
PlayerDeath = function(ply, weapon, killer) ply:teamBan() ply:changeTeam(GAMEMODE.DefaultTeam, true) if killer:IsPlayer() then DarkRP.notifyAll(0, 4, "Un kamikaze est mort !") else DarkRP.notifyAll(0, 4, "Un kamikaze est mort !") end, plyJoinTeam = CurTime() + 7200 end, -- FIN DE LA FONCTION PLAYERDEATH customCheck = function(ply) return CurTime() >= plyJoinTeam or ply:IsUserGroup("superadmin") end,
customCheckFailMsg = "Désolé, vous devez attendre avant d'utiliser ce job !" end, -- FIN DU JOB
 
Dernière édition:
Discord d'entraide
Rejoignz-nous sur Discord