Aller au contenu

FFARush Spawn + Inventaire


Messages recommandés

Posté(e)

Bien le bonjour communauté de Skript-mc, je souhaiterais un skript FFA Contenant ses caractéristique :

 

-Au Lobby du FFA, tu apparais avec une plume, quand tu clic droit sur cette épée en diamond , ou tu pourras choisir ton kits , le pvp est déjà actif du coup pour éviter le spawnkill j'aimerai pouvoir mettre plusieurs point de spawn.

Bien sur quand on clic sur la plume elle nous téléporte et nous donne un stuff diams par exemple.

Mais je voudrais que les Zorien quand eux ils clics sur la une épée, qu'ils aient un stuff full leatherProtection 1

 

* Version du Skript / serveur : 1.8.8

 

Commandes et permission :

 

* Pour les Zorien : FFA.kitZorien donnant accès au Stuff leather P1 avec une épée en diamond ,16 pomme doré mais pas cheat , 64 sandstone dans tout le reste de l'inventaire

 

Pour information j'utilise : SkQuery, Umbaska (et groupe manager pour les perms)

 

Pour les commandes :

 

* Pour mettre plusieurs point de spawn /setspawn 1 /setspawn 2 ...

* Pour mettre un Lobby FFA /setlobby / /lobby

Posté(e)
UP ?

DOWN ? x)

Les ups (ou les doubles post, mais c la mm chose) c'est avec un jour d'écart :)

 

Sinon désolé, je n'ai pas vraiment le temps de faire ca :)

Mais : Enlève umbaska, il ne peut que te faire buguer.

 

C'est bien, tu as bien décrit les commandes les perms et tout, mais décrit un peu plus le fonctionnement :)

kits : c'est quoi les kits ? c'est à nous de les créer ou tu as un plugin pour ca ?

La plume nous téléporte. Oui, mais ou ? (la position, ou la variable, ou la commande)

Les VIP cliquent, ils ont un stuff diams : Il l'ont direct (et donc pas de kit) ou il l'ont en plus du kit (donc il peuvent avoir les 2), ou c'est un kit, que seulement les VIP peuvent avoir ?

C'est quoi les Zorien ? c'est les VIPs ? :)

Posté(e)
DOWN ? x)

Les ups (ou les doubles post, mais c la mm chose) c'est avec un jour d'écart :)

 

Sinon désolé, je n'ai pas vraiment le temps de faire ca :)

Mais : Enlève umbaska, il ne peut que te faire buguer.

 

C'est bien, tu as bien décrit les commandes les perms et tout, mais décrit un peu plus le fonctionnement :)

kits : c'est quoi les kits ? c'est à nous de les créer ou tu as un plugin pour ca ?

La plume nous téléporte. Oui, mais ou ? (la position, ou la variable, ou la commande)

Les VIP cliquent, ils ont un stuff diams : Il l'ont direct (et donc pas de kit) ou il l'ont en plus du kit (donc il peuvent avoir les 2), ou c'est un kit, que seulement les VIP peuvent avoir ?

C'est quoi les Zorien ? c'est les VIPs ? :)

tu pourras quand ?

Posté(e)

1) Attention les doubles compte sont interdits !!!

2) Je ne peux pas le faire, j'ai déjà plein de choses à faire

3) Je ne peux encore moins le faire si tu ne donnes pas les infos que j'ai demandées ! xD

Posté(e)
1) Attention les doubles compte sont interdits !!!

2) Je ne peux pas le faire, j'ai déjà plein de choses à faire

3) Je ne peux encore moins le faire si tu ne donnes pas les infos que j'ai demandées ! xD

 

Sert à rien de dire à tout le monde je ne peux pas le faire sert à rien tes messages appart tes "Enlève tel addons ..."

Posté(e)
Sert à rien de dire à tout le monde je ne peux pas le faire sert à rien tes messages appart tes "Enlève tel addons ..."

Calme toi x)

 

Ensuite écrit un peu mieux ton messages est incompréhensible...

Et non mes messages ne sont pas inutile ! Ici, je lui ai informé que les doubles comptes sont interdits et que sa demande n'était pas assez détaillée.

Et je lui informais aussi lui et les autres membres que je ne pouvez pas le faire et donc que ça ne servais à rien de me demander (vu que j'avais répondu à la conv).

 

Donc la c'est ton message qui est inutile :)

Posté(e)

#========
options:
#========

   #========
   #Misc
   #========

       #========
       #NE PAS MODIFIER
       current_version: DEFINITIVE-1
       #========

       #========
       #Cette option permet d'activer les mises à jour automatiques du skript (true = activer, false = désactiver)
       auto_update: true
       #========

       #========
       #Cette option permet d'activer les dégats de chute
       fall_damage: false
       #========

       #========
       #Cette option permet d'activer / désactiver le Bungeecord
       bungeecord: true
       #========

       #========
       #o-o-o-o-o OPTION ESSENTIELLE À CHANGER (SI BUNGEECORD = FALSE) o-o-o-o-o Changer le monde ou la partie a lieu
       map_game: votre_monde
       #========   

       #========
       #Cette option permet de changer le nom du GUI de sélection de kits
       name_gui: &dSélection de kit
       #========

       #========
       #Cette option permet de changer la taille du GUI (1 à 6)
       size_gui: 2
       #========

       #========
       #Cette option permet de changer l'item représentant les kits dans le gui
       item_gui: book
       #========

       #========
       #Cette option permet d'activer ou de désactiver la regénération des blocs posés tout en même temps sur la map de FFARush > true = oui / false = non
       regen_block: false
       #Si regen_block = true, cette option permet de sélectionner le temps avant que tous les blocks se régénèrent.
       cd: 30 seconds
       #========

       #========
       #Cette option permet de changer la permission de la commande /rushffa
       permission: rushffa.admin
       #========

       #========
       #Cette option permet de changer le format de permission des kits
       kit_permission_format: rushffa.kit.%{_kit}%
       #========

       #========
       #Cette option permet de activer la perte de nourriture (false) ou de la désactiver (true)
       no_food_loss: true
       #========

       #========
       #Items de sélection de kits
       item: a nether star
       #Nom de l'item de sélection de kits
       item_name: &dKits
       #Slot de l'item de sélection de kits
       item_slot: 4
       #========

   #========
   #Messages
   #========

       #========
       #Message lorsque un joueur rejoins la partie (Si bungeecord = false)
       join_game_msg: &dTu rejoins la partie !
       #========

       #========
       #Message quand on quitte la partie (Si bungeecord = false)
       quit_game_msg: &dTu quittes la partie !
       #========

       #========
       #Message d'erreur quand un kit n'existe pas
       erreur_kitnoexist: &cErreur, ce kit n'existe pas !
       #========

       #========
       #Message d'erreur quand un kit existe déjà
       erreur_kitalreadyexist: &cErreur, ce kit existe déjà !
       #========

       #========
       #Message d'erreur quand un kit n'existe pas
       erreur_insuffisantperms: &cErreur, vous n'avez pas la permission de faire ceci !
       #========

       #========
       #Préfixe du plugin (mettre un "&r" si vous ne voulez pas de préfixe)
       prefix: &r
       #========

       #========
       #Message quand on créé un kit
       add_kit_msg: &dTu as créé le kit %{_kit}% !
       #========

       #========
       #Message quand on supprime un kit
       remove_kit_msg: &dTu as supprimé le kit %{_kit}% !
       #========

       #========
       #Message quand on sauvegarde un kit
       save_kit: &dTu as sauvegardé le kit %{_kit}% !
       #========

       #========
       #Message quand on sauvegarde un kit
       receive_kit: &dTu as reçu le kit %{_kit}% !
       #========

       #========
       #Message quand les blocs sont regénérés (si regen_block = true)
       regen_block_message: &dLes blocs ont été régénérés.
       #========

       #========
       #Message quand un joueur fait la commande /rushffa join mais qu'il est déjà en jeu (si bungeecord = false)
       already_in_game_msg: &dTu es déjà en jeu !
       #========

       #========
       #Message quand un joueur fait la commande /rushffa leave et qu'il n'est pas en jeu (si bungeecord = false)
       not_in_game_msg: &dTu n'es pas en jeu !
       #========

       #========
       #Message lors de l'ajout d'un spawn
       add_spawn_msg: &dVotre position actuelle a été ajouté à la liste des points de spawns.
       #========

       #========
       #Message lors de la réinitialisation des spawns
       reset_spawn_msg: &dVous avez bien réinitialisé les points de spawns.
       #========

       #========
       #Message lors de la mort par un autre joueur (action bar)
       death_msg_1: &f%victim% &da été tué par &f%attacker%
       #========

       #========
       #Message lors de la mort par autre chose (action bar)
       death_msg_2: &f%victim% &dest mort
       #========

       #========
       #Message quand le spawn principal est défini
       main_spawn_msg: &dLe spawn principal a été défini à votre position actuelle.
       #========

   #========
   #Scoreboard
   #========

       #{_p} veut dire joueur donc %player%

       #========
       #Permet de désactiver / activer le scoreboard pour les joueurs
       scoreboard: true
       #========

       #========
       #Permet de modifier le nom du scoreboard (si il est actif)
       scoreboard_name: &dRushFFA
       #========

       #========
       #Permet de modifier le format de l'une ligne
       scoreboard_1: &fKills: %{rf_kills::%{_p}%}% #de base le nombre de kills
       scoreboard_2: &fMorts: %{rf_deaths::%{_p}%}% #de base le nombre de morts
       scoreboard_3: &fRatio: %{_ratio}% #de base le ratio du joueur
       #========

#=========
#FUNCTIONS
#=========
function RFScoreboard(p: player): #Function pour actualiser le Scoreboard
   set {_ratio} to ({rf_kills::%{_p}%} / {rf_deaths::%{_p}%})
   wipe {_p}'s sidebar
   set name of sidebar of {_p} to "{@scoreboard_name}"
   set score "{@scoreboard_1}" in sidebar of {_p} to 15
   set score "{@scoreboard_2}" in sidebar of {_p} to 14
   set score "{@scoreboard_3}" in sidebar of {_p} to 13

function RFMapRegen(t: text): #Function pour regénérer les blocs posés
   loop {rf_blocks::*}:
       set block at loop-value to air
   clear {rf_blocks::*}
   if {@bungeecord} is false:
       loop all players:
           if {rf_playing::%loop-player%} is set:
               send "{@prefix}{@regen_block_message}" to loop-player
               stop
   broadcast "{@prefix}{@regen_block_message}"


function RFSaveKit(p: player, kit: text): #Function pour sauvegarder un kit du menu
   if {rf_kits::%{_kit}%} is true:
       set {rf_kit::%{_kit}%::inv} to {_p}'s serialized inventory
       set {rf_kit::%{_kit}%::helm} to {_p}'s helmet
       set {rf_kit::%{_kit}%::chest} to {_p}'s chestplate
       set {rf_kit::%{_kit}%::leg} to {_p}'s leggings
       set {rf_kit::%{_kit}%::boots} to {_p}'s boots
       send "{@prefix}{@save_kit}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFGiveKit(p: player, kit: text): #Function pour donner le kit à un joueur
   if {rf_kits::%{_kit}%} is true:
       equip {_p} with {rf_kit::%{_kit}%::helm}
       equip {_p} with {rf_kit::%{_kit}%::chest}
       equip {_p} with {rf_kit::%{_kit}%::leg}
       equip {_p} with {rf_kit::%{_kit}%::boots}
       restore inventory of {_p} from {rf_kit::%{_kit}%::inv}
       send "{@prefix}{@receive_kit}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFAddKit(p: player, kit: text): #Function pour ajouter un kit dans le menu
   if {rf_kits::%{_kit}%} is true:
       send "{@prefix}{@erreur_kitalreadyexist}" to {_p}
   else:
       send "{@prefix}{@add_kit_msg}" to {_p}
       set {rf_kits::%{_kit}%} to true
       RFSaveKit({_p}, {_kit})

function RFRemoveKit(p: player, kit: text): #Function pour supprimer un kit du menu
   if {rf_kits::%{_kit}%} is true:
       clear {rf_kits::%{_kit}%}
       clear {rf_kit::%{_kit}%::helm}
       clear {rf_kit::%{_kit}%::chest}
       clear {rf_kit::%{_kit}%::leg}
       clear {rf_kit::%{_kit}%::boots}
       clear {rf_kit::%{_kit}%::inv}
       send "{@prefix}{@remove_kit_msg}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFGui(p: player): #Function pour ouvrir le menu des kits
   open virtual chest inventory with size {@size_gui} named "{@name_gui}" to {_p}
   wait 1 tick
   set {_s} to 0
   loop {rf_kits::*}:
       set {_k} to loop-index
       make a gui slot {_s} of {_p} with a {@item_gui} named coloured "%loop-index%" parsed as text to run:
           if {_p} has permission "{@kit_permission_format}":
               RFGiveKit({_p}, {_k})
               set {_sp} to a random element out of {rf_spawns::*}
               teleport {_p} to {_sp}
           else:
               send "{@prefix}{@erreur_insuffisantperms}"
       add 1 to {_s}

function RFPlay(p: player): #Function pour commencer a jouer
   if {@bungeecord} is false:
       set {rf_playing::%{_p}%} to location of {_p}
       set {rf_inv::%{_p}%::leg} to {_p}'s leggings
       set {rf_inv::%{_p}%::boots} to {_p}'s boots
       set {rf_inv::%{_p}%} to {_p}'s serialized inventory
       set {rf_inv::%{_p}%::helm} to {_p}'s helmet
       set {rf_inv::%{_p}%::chest} to {_p}'s chestplate
       send "{@prefix}{@join_game_msg}" to {_p}
   RFScoreboard({_p})
   teleport {_p} to {rf_spawn.main}
   make console execute command "/minecraft:clear %{_p}%"
   wait 1 tick
   set slot {@item_slot} of {_p} to {@item} named "{@item_name}"

function RFUpdate(arg: text): #Function pour update le skript
   if {_arg} is "check":
       if text from "https://pastebin.com/raw/HWuz0LsP" is not "{@current_version}":
           if {@auto_update} is true:
               RFUpdate("update")
           else:
               set {rf_update} to true
               loop all players:
                   if loop-player is op:
                       send "{@prefix} &7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger." to loop-player
   if {_arg} is "update":
       if text from "https://pastebin.com/raw/HWuz0LsP" is not "{@current_version}":
           set {_version} to text from "https://pastebin.com/raw/HWuz0LsP"
           download from "https://pastebin.com/raw/rxEcW7wD" to "plugins/Skript/scripts/RushFFA-%{_version}%.sk"
           delete file "plugins/Skript/scripts/%script's name%.sk"
           wait 0.5 second
           make console execute command "/sk reload all"
           clear {rf_update}

#=========
#Games Mechanics
#=========
on load:
   RFUpdate("check")
   wait 1 tick
   if {rf_update} is true:
       loop all players:
           if loop-player is op:
               send "{@prefix} &7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger." to loop-player

on hunger meter change:
   if {@bungeecord} is true:
       if {@no_food_loss} is true:
           set player's food bar to 20
   else:
       if {rf_playing::%player%} is true:
           if {@no_food_loss} is true:
               set player's food bar to 20

on damage:
   if {@bungeecord} is true:
       if damage cause is attack:
           set {rf_lasthit::%victim%} to attacker
       if damage cause is fire:
           cancel event
       if damage cause is burning:
           extinguish victim
           cancel event
       if damage cause is fall:
           if {@fall_damage} is false:
               cancel event
   else:
       if {rf_playing::%victim%} is set:
           if damage cause is attack:
               set {rf_lasthit::%victim%} to attacker
           if damage cause is fire:
               cancel event
           if damage cause is burning:
               extinguish victim
               cancel event
           if damage cause is fall:
               if {@fall_damage} is false:
                   cancel event


every {@cd}:
   if {@regen_block} is true:
       RFMapRegen("Regen")
   else:
       stop

on place:
   if {@bungeecord} is true:
       if event-block is sandstone:
           remove 1 sandstone:2 from player's inventory
           give 1 sandstone:2 to player
       if {@regen_block} is true:
           if event-block is sandstone:2:
               add location of event-block to {rf_blocks::*}
       else:
           wait 20 seconds
           if event-block is sandstone:2:
               set event-block to air
   else:
       if player's world is "{@map_game}":
           if event-block is sandstone:
               remove 1 sandstone:2 from player's inventory
               give 1 sandstone:2 to player
           if {@regen_block} is true:
               if event-block is sandstone:2:
                   add location of event-block to {rf_blocks::*}
           else:
               wait 20 seconds
               if event-block is sandstone:2:
                   set event-block to air

on break:
   if {@bungeecord} is true:
       if event-block is sandstone:2 or tnt:
           stop
       else:
           cancel event
   else:
       if player's world is "{@map_game}":
           if event-block is sandstone:2 or tnt:
               stop
           else:
               cancel event

on death of player:
   clear drops
   if {rf_lasthit::%victim%} is set:
       give 4 tnt to attacker
       add 1 to {rf_lasthit::%victim%}
       RFScoreboard({rf_lasthit::%victim%})
       wait 1 tick
       heal attacker
       loop all players:
           set action bar of loop-player to "{@death_msg_1}"
   else:
       loop all players:
           set action bar of loop-player to "{@death_msg_2}"
   add 1 to {rf_deaths::%victim%}

#=========
#Commande principale
#=========
command /rushffa [<text>] [<string>]:
   aliases: /rf, /ffarush, /fr
   permission: {@permission}
   permission message: {@prefix}{@erreur_insuffisantperms}
   trigger:
       if player has permission "{@permission}":
           if arg 1 is not set:
               send "&d- RushFFA -"
               send "&f/rushffa <spawn> <main / add / clear> &7: définir ou clear les spawns"
               send "&f/rushffa <definekit> <default, vip, vip+, youtuber, famous>"
               send "&f/rushffa <check>"
               send "&f/rushffa <update>"
           if arg 1 is set:
               if arg 1 is "spawn":
                   if arg 2 is "add":
                       add location of player to {rf_spawns::*}
                       send "{@prefix}{@add_spawn_msg}"
                   if arg 2 is "main":
                       set {rf_spawn.main} to location of player
                       send "{@prefix}{@main_spawn_msg}"
                   if arg 2 is "clear":
                       clear {rf_spawn.main}
                       clear {rf_spawns::*}
                       send "{@prefix}{@reset_spawn_msg}"
               if arg 1 is "addkit" or "add":
                   if arg 2 is set:
                       RFAddKit(player, "%arg-2%")
               if arg 1 is "removekit" or "deletekit" or "delete":
                   if arg 2 is set:
                       RFRemoveKit(player, "%arg-2%")
               if arg 1 is "inventory" or "inv":
                   RFSaveKit(player, "%arg-2%")
               if arg 1 is "check":
                   RFUpdate("check")
                   wait 0.6 second
                   if {rf_update} is not set:
                       send "{@prefix}&dVous possédez la dernière version de RushFFA"
               if arg 1 is "update":
                   RFUpdate("update")
                   wait 0.6 second
                   send "{@prefix}&dVous possédez la dernière version de RushFFA"
       if {@bungeecord} is false:
           if arg 1 is "join":
               if {rf_playing::%player%} is not set:
                   RFPlay(player)
               else:
                   send "{@already_in_game_msg}"
           if arg 1 is "leave" or "quit":
               if {rf_playing::%player%} is set:
                   teleport player to {rf_playing::%player%}
                   clear {rf_playing::%player%}
                   wipe player's sidebar
                   send "{@quit_game_msg}"
                   wait 1 tick
                   equip {_p} with {rf_inv::%player%::helm}
                   equip {_p} with {rf_inv::%player%::chest}
                   equip {_p} with {rf_inv::%player%::leg}
                   equip {_p} with {rf_inv::%player%::boots}
                   restore inventory of player from {rf_inv::%player%}
               else:
                   send "{@not_in_game_msg}"
#=========
#Séléction de kit et jeu
#=========
on first join:
   if {rf_kills::%player%} is not set:
       set {rf_kills::%player%} to 0
   if {rf_deaths::%player%} is not set:
       set {rf_deaths::%player%} to 0
   if {@bungeecord} is true:
       RFPlay(player)

on join:
   if {rf_kills::%player%} is not set:
       set {rf_kills::%player%} to 0
   if {rf_deaths::%player%} is not set:
       set {rf_deaths::%player%} to 0
   if {@bungeecord} is true:
       RFPlay(player)
       if player is op:
           if {rf_update} is true:
               send "{@prefix}&7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger."
   if {rf_playing::%player%} is set:
       teleport player to {rf_playing::%player%}
       clear {rf_playing::%player%}

on respawn:
   if {@bungeecord} is true:
       wait 2 ticks
       RFPlay(player)
   else if {rf_playing::%player%} is set:
       wait 2 ticks
       RFPlay(player)

on rightclick with {@item}:
   if name of tool of player is "{@item_name}":
       RFGui(player)

Ce skript vien pas de moi... Il étais sur mon pc depuis un moment .

  • J'aime 1
Posté(e)
Calme toi x)

 

Ensuite écrit un peu mieux ton messages est incompréhensible...

Et non mes messages ne sont pas inutile ! Ici, je lui ai informé que les doubles comptes sont interdits et que sa demande n'était pas assez détaillée.

Et je lui informais aussi lui et les autres membres que je ne pouvez pas le faire et donc que ça ne servais à rien de me demander (vu que j'avais répondu à la conv).

 

Donc la c'est ton message qui est inutile :)

 

J'ai toujours raison :D + mon message est pas incompréhensible si ta réussi à le lire :D

+ tu dit sa alors que tu fait jamais les codes appart dire je ne peut pas le faire x')

Posté(e)

Eh bah écoute si ca peut te faire plaisir de cracher sur quelqu'un vas-y :) Fais toi plaisir :)

 

Bref, je donne beaucoup de code ou d'aide dans la section d'aide, même si il est vrai que je donne moins de code dans la section demande de skript (mais j'en ai déjà donné). Et mes messages ne sont pas inutiles : j'aide le demandeur d'aide a pouvoir plus facilement trouver de l'aide en précisant sa demande.

Bref je vais arrêter de débattre avec toi, mais sache juste que si tu pars du principes que tu as toujours raison, sache que tu n'iras pas loin...

 

Encore une fois ton message était inutile, d'ailleurs. Tu n'as rien dis a part me critiquer et te faire des éloges.

Et ce que je voulais dire par "incompréhensible" c'est qu'il n'y a aucun point, aucune virgule, aucune ponctuation et qu'il y a beaucoup de fautes... (attention je ne dis pas que j'en fait pas). Et j'ai peiné à le lire... Après je ne suis pas non-plus totalement attardé, évidemment que j'ai réussi à le lire.

Posté(e)
#========
options:
#========

   #========
   #Misc
   #========

       #========
       #NE PAS MODIFIER
       current_version: DEFINITIVE-1
       #========

       #========
       #Cette option permet d'activer les mises à jour automatiques du skript (true = activer, false = désactiver)
       auto_update: true
       #========

       #========
       #Cette option permet d'activer les dégats de chute
       fall_damage: false
       #========

       #========
       #Cette option permet d'activer / désactiver le Bungeecord
       bungeecord: true
       #========

       #========
       #o-o-o-o-o OPTION ESSENTIELLE À CHANGER (SI BUNGEECORD = FALSE) o-o-o-o-o Changer le monde ou la partie a lieu
       map_game: votre_monde
       #======== 

       #========
       #Cette option permet de changer le nom du GUI de sélection de kits
       name_gui: &dSélection de kit
       #========

       #========
       #Cette option permet de changer la taille du GUI (1 à 6)
       size_gui: 2
       #========

       #========
       #Cette option permet de changer l'item représentant les kits dans le gui
       item_gui: book
       #========

       #========
       #Cette option permet d'activer ou de désactiver la regénération des blocs posés tout en même temps sur la map de FFARush > true = oui / false = non
       regen_block: false
       #Si regen_block = true, cette option permet de sélectionner le temps avant que tous les blocks se régénèrent.
       cd: 30 seconds
       #========

       #========
       #Cette option permet de changer la permission de la commande /rushffa
       permission: rushffa.admin
       #========

       #========
       #Cette option permet de changer le format de permission des kits
       kit_permission_format: rushffa.kit.%{_kit}%
       #========

       #========
       #Cette option permet de activer la perte de nourriture (false) ou de la désactiver (true)
       no_food_loss: true
       #========

       #========
       #Items de sélection de kits
       item: a nether star
       #Nom de l'item de sélection de kits
       item_name: &dKits
       #Slot de l'item de sélection de kits
       item_slot: 4
       #========

   #========
   #Messages
   #========

       #========
       #Message lorsque un joueur rejoins la partie (Si bungeecord = false)
       join_game_msg: &dTu rejoins la partie !
       #========

       #========
       #Message quand on quitte la partie (Si bungeecord = false)
       quit_game_msg: &dTu quittes la partie !
       #========

       #========
       #Message d'erreur quand un kit n'existe pas
       erreur_kitnoexist: &cErreur, ce kit n'existe pas !
       #========

       #========
       #Message d'erreur quand un kit existe déjà
       erreur_kitalreadyexist: &cErreur, ce kit existe déjà !
       #========

       #========
       #Message d'erreur quand un kit n'existe pas
       erreur_insuffisantperms: &cErreur, vous n'avez pas la permission de faire ceci !
       #========

       #========
       #Préfixe du plugin (mettre un "&r" si vous ne voulez pas de préfixe)
       prefix: &r
       #========

       #========
       #Message quand on créé un kit
       add_kit_msg: &dTu as créé le kit %{_kit}% !
       #========

       #========
       #Message quand on supprime un kit
       remove_kit_msg: &dTu as supprimé le kit %{_kit}% !
       #========

       #========
       #Message quand on sauvegarde un kit
       save_kit: &dTu as sauvegardé le kit %{_kit}% !
       #========

       #========
       #Message quand on sauvegarde un kit
       receive_kit: &dTu as reçu le kit %{_kit}% !
       #========

       #========
       #Message quand les blocs sont regénérés (si regen_block = true)
       regen_block_message: &dLes blocs ont été régénérés.
       #========

       #========
       #Message quand un joueur fait la commande /rushffa join mais qu'il est déjà en jeu (si bungeecord = false)
       already_in_game_msg: &dTu es déjà en jeu !
       #========

       #========
       #Message quand un joueur fait la commande /rushffa leave et qu'il n'est pas en jeu (si bungeecord = false)
       not_in_game_msg: &dTu n'es pas en jeu !
       #========

       #========
       #Message lors de l'ajout d'un spawn
       add_spawn_msg: &dVotre position actuelle a été ajouté à la liste des points de spawns.
       #========

       #========
       #Message lors de la réinitialisation des spawns
       reset_spawn_msg: &dVous avez bien réinitialisé les points de spawns.
       #========

       #========
       #Message lors de la mort par un autre joueur (action bar)
       death_msg_1: &f%victim% &da été tué par &f%attacker%
       #========

       #========
       #Message lors de la mort par autre chose (action bar)
       death_msg_2: &f%victim% &dest mort
       #========

       #========
       #Message quand le spawn principal est défini
       main_spawn_msg: &dLe spawn principal a été défini à votre position actuelle.
       #========

   #========
   #Scoreboard
   #========

       #{_p} veut dire joueur donc %player%

       #========
       #Permet de désactiver / activer le scoreboard pour les joueurs
       scoreboard: true
       #========

       #========
       #Permet de modifier le nom du scoreboard (si il est actif)
       scoreboard_name: &dRushFFA
       #========

       #========
       #Permet de modifier le format de l'une ligne
       scoreboard_1: &fKills: %{rf_kills::%{_p}%}% #de base le nombre de kills
       scoreboard_2: &fMorts: %{rf_deaths::%{_p}%}% #de base le nombre de morts
       scoreboard_3: &fRatio: %{_ratio}% #de base le ratio du joueur
       #========

#=========
#FUNCTIONS
#=========
function RFScoreboard(p: player): #Function pour actualiser le Scoreboard
   set {_ratio} to ({rf_kills::%{_p}%} / {rf_deaths::%{_p}%})
   wipe {_p}'s sidebar
   set name of sidebar of {_p} to "{@scoreboard_name}"
   set score "{@scoreboard_1}" in sidebar of {_p} to 15
   set score "{@scoreboard_2}" in sidebar of {_p} to 14
   set score "{@scoreboard_3}" in sidebar of {_p} to 13

function RFMapRegen(t: text): #Function pour regénérer les blocs posés
   loop {rf_blocks::*}:
       set block at loop-value to air
   clear {rf_blocks::*}
   if {@bungeecord} is false:
       loop all players:
           if {rf_playing::%loop-player%} is set:
               send "{@prefix}{@regen_block_message}" to loop-player
               stop
   broadcast "{@prefix}{@regen_block_message}"


function RFSaveKit(p: player, kit: text): #Function pour sauvegarder un kit du menu
   if {rf_kits::%{_kit}%} is true:
       set {rf_kit::%{_kit}%::inv} to {_p}'s serialized inventory
       set {rf_kit::%{_kit}%::helm} to {_p}'s helmet
       set {rf_kit::%{_kit}%::chest} to {_p}'s chestplate
       set {rf_kit::%{_kit}%::leg} to {_p}'s leggings
       set {rf_kit::%{_kit}%::boots} to {_p}'s boots
       send "{@prefix}{@save_kit}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFGiveKit(p: player, kit: text): #Function pour donner le kit à un joueur
   if {rf_kits::%{_kit}%} is true:
       equip {_p} with {rf_kit::%{_kit}%::helm}
       equip {_p} with {rf_kit::%{_kit}%::chest}
       equip {_p} with {rf_kit::%{_kit}%::leg}
       equip {_p} with {rf_kit::%{_kit}%::boots}
       restore inventory of {_p} from {rf_kit::%{_kit}%::inv}
       send "{@prefix}{@receive_kit}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFAddKit(p: player, kit: text): #Function pour ajouter un kit dans le menu
   if {rf_kits::%{_kit}%} is true:
       send "{@prefix}{@erreur_kitalreadyexist}" to {_p}
   else:
       send "{@prefix}{@add_kit_msg}" to {_p}
       set {rf_kits::%{_kit}%} to true
       RFSaveKit({_p}, {_kit})

function RFRemoveKit(p: player, kit: text): #Function pour supprimer un kit du menu
   if {rf_kits::%{_kit}%} is true:
       clear {rf_kits::%{_kit}%}
       clear {rf_kit::%{_kit}%::helm}
       clear {rf_kit::%{_kit}%::chest}
       clear {rf_kit::%{_kit}%::leg}
       clear {rf_kit::%{_kit}%::boots}
       clear {rf_kit::%{_kit}%::inv}
       send "{@prefix}{@remove_kit_msg}" to {_p}
   else:
       send "{@prefix}{@erreur_kitnoexist}" to {_p}

function RFGui(p: player): #Function pour ouvrir le menu des kits
   open virtual chest inventory with size {@size_gui} named "{@name_gui}" to {_p}
   wait 1 tick
   set {_s} to 0
   loop {rf_kits::*}:
       set {_k} to loop-index
       make a gui slot {_s} of {_p} with a {@item_gui} named coloured "%loop-index%" parsed as text to run:
           if {_p} has permission "{@kit_permission_format}":
               RFGiveKit({_p}, {_k})
               set {_sp} to a random element out of {rf_spawns::*}
               teleport {_p} to {_sp}
           else:
               send "{@prefix}{@erreur_insuffisantperms}"
       add 1 to {_s}

function RFPlay(p: player): #Function pour commencer a jouer
   if {@bungeecord} is false:
       set {rf_playing::%{_p}%} to location of {_p}
       set {rf_inv::%{_p}%::leg} to {_p}'s leggings
       set {rf_inv::%{_p}%::boots} to {_p}'s boots
       set {rf_inv::%{_p}%} to {_p}'s serialized inventory
       set {rf_inv::%{_p}%::helm} to {_p}'s helmet
       set {rf_inv::%{_p}%::chest} to {_p}'s chestplate
       send "{@prefix}{@join_game_msg}" to {_p}
   RFScoreboard({_p})
   teleport {_p} to {rf_spawn.main}
   make console execute command "/minecraft:clear %{_p}%"
   wait 1 tick
   set slot {@item_slot} of {_p} to {@item} named "{@item_name}"

function RFUpdate(arg: text): #Function pour update le skript
   if {_arg} is "check":
       if text from "https://pastebin.com/raw/HWuz0LsP" is not "{@current_version}":
           if {@auto_update} is true:
               RFUpdate("update")
           else:
               set {rf_update} to true
               loop all players:
                   if loop-player is op:
                       send "{@prefix} &7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger." to loop-player
   if {_arg} is "update":
       if text from "https://pastebin.com/raw/HWuz0LsP" is not "{@current_version}":
           set {_version} to text from "https://pastebin.com/raw/HWuz0LsP"
           download from "https://pastebin.com/raw/rxEcW7wD" to "plugins/Skript/scripts/RushFFA-%{_version}%.sk"
           delete file "plugins/Skript/scripts/%script's name%.sk"
           wait 0.5 second
           make console execute command "/sk reload all"
           clear {rf_update}

#=========
#Games Mechanics
#=========
on load:
   RFUpdate("check")
   wait 1 tick
   if {rf_update} is true:
       loop all players:
           if loop-player is op:
               send "{@prefix} &7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger." to loop-player

on hunger meter change:
   if {@bungeecord} is true:
       if {@no_food_loss} is true:
           set player's food bar to 20
   else:
       if {rf_playing::%player%} is true:
           if {@no_food_loss} is true:
               set player's food bar to 20

on damage:
   if {@bungeecord} is true:
       if damage cause is attack:
           set {rf_lasthit::%victim%} to attacker
       if damage cause is fire:
           cancel event
       if damage cause is burning:
           extinguish victim
           cancel event
       if damage cause is fall:
           if {@fall_damage} is false:
               cancel event
   else:
       if {rf_playing::%victim%} is set:
           if damage cause is attack:
               set {rf_lasthit::%victim%} to attacker
           if damage cause is fire:
               cancel event
           if damage cause is burning:
               extinguish victim
               cancel event
           if damage cause is fall:
               if {@fall_damage} is false:
                   cancel event


every {@cd}:
   if {@regen_block} is true:
       RFMapRegen("Regen")
   else:
       stop

on place:
   if {@bungeecord} is true:
       if event-block is sandstone:
           remove 1 sandstone:2 from player's inventory
           give 1 sandstone:2 to player
       if {@regen_block} is true:
           if event-block is sandstone:2:
               add location of event-block to {rf_blocks::*}
       else:
           wait 20 seconds
           if event-block is sandstone:2:
               set event-block to air
   else:
       if player's world is "{@map_game}":
           if event-block is sandstone:
               remove 1 sandstone:2 from player's inventory
               give 1 sandstone:2 to player
           if {@regen_block} is true:
               if event-block is sandstone:2:
                   add location of event-block to {rf_blocks::*}
           else:
               wait 20 seconds
               if event-block is sandstone:2:
                   set event-block to air

on break:
   if {@bungeecord} is true:
       if event-block is sandstone:2 or tnt:
           stop
       else:
           cancel event
   else:
       if player's world is "{@map_game}":
           if event-block is sandstone:2 or tnt:
               stop
           else:
               cancel event

on death of player:
   clear drops
   if {rf_lasthit::%victim%} is set:
       give 4 tnt to attacker
       add 1 to {rf_lasthit::%victim%}
       RFScoreboard({rf_lasthit::%victim%})
       wait 1 tick
       heal attacker
       loop all players:
           set action bar of loop-player to "{@death_msg_1}"
   else:
       loop all players:
           set action bar of loop-player to "{@death_msg_2}"
   add 1 to {rf_deaths::%victim%}

#=========
#Commande principale
#=========
command /rushffa [<text>] [<string>]:
   aliases: /rf, /ffarush, /fr
   permission: {@permission}
   permission message: {@prefix}{@erreur_insuffisantperms}
   trigger:
       if player has permission "{@permission}":
           if arg 1 is not set:
               send "&d- RushFFA -"
               send "&f/rushffa <spawn> <main / add / clear> &7: définir ou clear les spawns"
               send "&f/rushffa <definekit> <default, vip, vip+, youtuber, famous>"
               send "&f/rushffa <check>"
               send "&f/rushffa <update>"
           if arg 1 is set:
               if arg 1 is "spawn":
                   if arg 2 is "add":
                       add location of player to {rf_spawns::*}
                       send "{@prefix}{@add_spawn_msg}"
                   if arg 2 is "main":
                       set {rf_spawn.main} to location of player
                       send "{@prefix}{@main_spawn_msg}"
                   if arg 2 is "clear":
                       clear {rf_spawn.main}
                       clear {rf_spawns::*}
                       send "{@prefix}{@reset_spawn_msg}"
               if arg 1 is "addkit" or "add":
                   if arg 2 is set:
                       RFAddKit(player, "%arg-2%")
               if arg 1 is "removekit" or "deletekit" or "delete":
                   if arg 2 is set:
                       RFRemoveKit(player, "%arg-2%")
               if arg 1 is "inventory" or "inv":
                   RFSaveKit(player, "%arg-2%")
               if arg 1 is "check":
                   RFUpdate("check")
                   wait 0.6 second
                   if {rf_update} is not set:
                       send "{@prefix}&dVous possédez la dernière version de RushFFA"
               if arg 1 is "update":
                   RFUpdate("update")
                   wait 0.6 second
                   send "{@prefix}&dVous possédez la dernière version de RushFFA"
       if {@bungeecord} is false:
           if arg 1 is "join":
               if {rf_playing::%player%} is not set:
                   RFPlay(player)
               else:
                   send "{@already_in_game_msg}"
           if arg 1 is "leave" or "quit":
               if {rf_playing::%player%} is set:
                   teleport player to {rf_playing::%player%}
                   clear {rf_playing::%player%}
                   wipe player's sidebar
                   send "{@quit_game_msg}"
                   wait 1 tick
                   equip {_p} with {rf_inv::%player%::helm}
                   equip {_p} with {rf_inv::%player%::chest}
                   equip {_p} with {rf_inv::%player%::leg}
                   equip {_p} with {rf_inv::%player%::boots}
                   restore inventory of player from {rf_inv::%player%}
               else:
                   send "{@not_in_game_msg}"
#=========
#Séléction de kit et jeu
#=========
on first join:
   if {rf_kills::%player%} is not set:
       set {rf_kills::%player%} to 0
   if {rf_deaths::%player%} is not set:
       set {rf_deaths::%player%} to 0
   if {@bungeecord} is true:
       RFPlay(player)

on join:
   if {rf_kills::%player%} is not set:
       set {rf_kills::%player%} to 0
   if {rf_deaths::%player%} is not set:
       set {rf_deaths::%player%} to 0
   if {@bungeecord} is true:
       RFPlay(player)
       if player is op:
           if {rf_update} is true:
               send "{@prefix}&7Une &dmise à jour &7est disponible, faites &d/rushffa update &7pour la télécharger."
   if {rf_playing::%player%} is set:
       teleport player to {rf_playing::%player%}
       clear {rf_playing::%player%}

on respawn:
   if {@bungeecord} is true:
       wait 2 ticks
       RFPlay(player)
   else if {rf_playing::%player%} is set:
       wait 2 ticks
       RFPlay(player)

on rightclick with {@item}:
   if name of tool of player is "{@item_name}":
       RFGui(player)

Ce skript vien pas de moi... Il étais sur mon pc depuis un moment .

J'Ai Fais Un Rush_FFA Sur Mon Serveur Dit Moi Si tu veux que je te passe le fichier (pas super optimisé mais sa merche :)

Oui stp sa me serai utile

Posté(e)

Bonjour, j'vient un peut tard je sait x) 1 ans apres, mais bon au niveau du skript il y a 50 erreurs et les commandes /rushffa ne marche pas ne m'y connaissant pas je demande pourquoi ?

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