Aller au contenu
  • 0

This command doesn't have a 2nd argument


Question

Posté(e)

[spoiler=Ancien problème]

Hey!

J'ai un petit problème avec ma commande, je veux enfaite que mes admins ne puissent pas ban tout simplement car je le juge inutile mais a la place qu'ils banip, ils peuvent oublier ou n'ont tout simplement pas le temps, ducoup j'ai créé ce Skript (que je vais copier pour le tempban), mais il me dit : %arg 1% is not an entity type, la commande exacte est /ban [-s] <player> [timespec] [reason]. Voici mon skript :

 

on command "/ban <player> [reason]":
 cancel event
 if %arg 1% is not set:
 send "&c&k||&c RektiBot &k||&c Petit conseil, mettez le nom du joueur !" to player
 if %arg 2% is not set:
 execute console command "ipban %arg 1%"
 send "&c&k||&c RektiBot &k||&c Un ban simple étant jugé inefficace, %arg 1% à été banip, la prochaine fois essayez de spécifier la raison." to player
 else:
 execute console command "ipban %arg 1% %arg 2%"
 "&c&k||&c RektiBot &k||&c Un ban simple étant jugé inefficace, %arg 1% à été banip pour %arg 2%" to player

 

(RektiBot est le nom de notre anticheat et je veux que ce soit ça qui envoie le message, oui je suis bizarre)

 

Aussi, je suis assez nouveau dans Skript, donc ne me jugez pas si je fais une erreur débile x)

 

 

PS : J'utilise console command pour ban car nous utilisons un plugin spécial qui sauvegarde sur une base de données (LiteBans).

 

 

 

EDIT : J'ai résolu le problème, il ne fallait pas que je mettes de pourcents pour if arg 1 is not set, etc... mais maintenant ça me dit : This command doesn't have a 2nd argument, pour cette ligne :

 

  if arg 2 is not set:

 

Merci d'avance,

RektibouCaribou (titicz)

24 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Des arguments dans un on command est pas possible je pense :eek:

Pas sur car j'ai ajouté ça :

execute console command "broadcast Vous avez poke %arg 1%"

 

a cette commande

 

command /poke <player>:
   usage: poke <joueur>
   trigger:
       wait 1 second
       send "&b&k||&b GeekOnly &b&k||&b Vous avez été poke par %player%" to arg 1
       play "NOTE_PLING" to arg 1 at volume 1.0
       send "&b&k||&b GeekOnly &b&k||&b Vous avez poke %arg 1%" to player

 

Et, you know what ? ça a marché !

 

Donc, c'est bizarre mais ça détecte qd même tjs le ipban %arg 1% et %arg 2% comme des arguments invalides alors que pour la commande de poke, non...

NEVER MIND j'étais juste con j'avais mis des % alors que je devais pas mais maintenant j'ai cette erreur :

This command doesn't have a 2nd argument pour la ligne if arg 2 is not set

  • 0
Posté(e)

command /ban <player> [<text>]:
 if %arg 1% is not set:
 	send "&c&k||&c RektiBot &k||&c Petit conseil, mettez le nom du joueur !" to player
 else if %arg 2% is not set:
 	execute console command "ipban %arg 1%"
 	send "&c&k||&c RektiBot &k||&c Un ban simple étant jugé inefficace, %arg 1% à été banip, la prochaine fois essayez de spécifier la raison." to player
else:
 execute console command "ipban %arg 1% %arg 2%"    #La je suis pas trop sur
 send "&c&k||&c RektiBot &k||&c Un ban simple étant jugé inefficace, %arg 1% à été banip pour %arg 2%" to player

Le execute command j'ai un gros doute (Refait les tabs aussi)

  • 0
Posté(e)

Montre nous ton code :)

Si c'est le même que dans ton ancien problème, pour une argument facultatif il me semble qu'il faut quand même les < essaie avec [<reason>] et si cela se trouve reason n'est pas un argument défini dans Skript, utilise text: [<text>]

  • 0
Posté(e)

les arguments pour les commande doivent être des Types

Player

Texte

number

....

 

reason ne fait pas partie de la liste des Types possible pour une commande

donc si c'est la raison est un texte tu utilise text, si c'est un chiffre tu utilise number ...

 

pour un argument optionnel c'est [<TYPE>]

 

voire plus d'exemple dans la doc Officiel

http://njol.ch/projects/skript/doc/commands/

  • 0
Posté(e)

J'ai mis comme vous m'avez dit :

 

http://pastebin.com/AbC01DTd (je l'ai mis sur PasteBin parce que le insérer -> code, ça détruit mes espaces ;).

 

Ca me met toujours this command doesn't have a second argument mais cette fois pour ces lignes :

 

if arg 2 is not set:

 

execute console command "ipban %arg 1% %arg 2%"

 

send "&c&k||&c RektiBot &k||&c Un ban simple étant jugé inefficace, %arg 1% à été banip pour %arg 2%" to player

  • 0
Posté(e)

Parce que je veux que quand on fait /ban qqun ça le banip, je préfère, peut-être que parfois les modos n'auront pas le temps de taper /banip ou /ipban ou oublierons, je veux donc que ça le fasse automatiquement :)

  • 0
Posté(e)

D'accord,

Donc en gros ton code est totalement faux x)

Tu peut seulement récupérer un argument avec le "on command" qui serrât constitué du joueur, raison, etc

Tu n'utilise pas la bonne méthode ^^ a tu un plugin de ban ? (essentials, advancedban, etc)

  • 0
Posté(e)

Bah pourquoi ne pas mettre un "command" tout simplement? ._.

PS :

Si c'est Essentials ton plugin de ban, pour ipban quelqu'un, tu dois marquer son IP, donc, met l'ip de arg-1 plutot (%arg-1's ip%)

  • 0
Posté(e)
Le "command" va écraser la commande du plugin, mais il y a une solution quand même ^^

Bah justement, s'il veut banip en faisant /ban, mieux vaut écraser la commande du plugin (Pour moi xD).

 

Puis pour reban un pseudo normalement c'est :

NOMDUPLUGIN:ban etc.

  • 0
Posté(e)

Ha mais c'est dans un "on command" pardon

Effectivement sa ne peut pas fonctioner comme ça

 

Tu doit split " decouper " ce qu'il y as en paramettre dans la commande avec pour element de decoupe " l'espace "

En effet ici

/ban angelus76 t'est un noob

La commande c'est /ban

Le parametre c'est " angelus76 t'est un noob "

 

Donc 1 seul parametre

  • J'aime 1
  • 0
Posté(e)
Ha mais c'est dans un "on command" pardon

Effectivement sa ne peut pas fonctioner comme ça

 

Tu doit split " decouper " ce qu'il y as en paramettre dans la commande avec pour element de decoupe " l'espace "

En effet ici

/ban angelus76 t'est un noob

La commande c'est /ban

Le parametre c'est " angelus76 t'est un noob "

 

Donc 1 seul parametre

 

Du genre je dois mettre : on command "/ban player reason" ? Je comprends pas trop xD

  • 0
Posté(e)
Je pense que on command n'est pas compatible. Esseye seulement un command

 

Je pense que sa devrais marché un peut mieu

 

Effectivement ça marche mieux :) Si quelqu'un est intéressé qui lit ça dans le futur est intéressé par ce Skript : http://pastebin.com/4YwuR8Mk

 

Merci énormément pour votre aide !

×
×
  • 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.