Aller au contenu

Messages recommandés

Posté(e)

Bonjour, Bonsoir

Actuellement je suis à la recherche d'un skript simple qui permet avec un certain grade d'avoir
un inventaire supplémentaire le problème étant que j'ai déjà crée un skript mais qui ne sauvegarde pas les items
j'aimerais savoir si vous pouviez m'aider à résoudre ce problème

Version de skript : 1.8
Version du serveur : 1.8/1.14.x


Ce que je souhaite faire :
Quand une personne mine mais que sont inventaire et plein que les items au sol soit récupérer dans sont backpack
automatiquement par contre si la personne meurt que sa drop les items de l'inventaire et du backpack au sol

ainsi faire plusieur type de backpack de 1 à 6 lignes pour mes différents grade


[Commande global pour ouvrir sont backpack : /inv ou /inventaire]


Voici comment mes grades sont constitué : 

Citoyen [1 ligne d'inventaire (Backpack)] - Permission : BP.Citoyen
Lotus [3 ligne d'inventaire (Backpack)]- Permission : BP.Lotus
Gargos [4 ligne d'inventaire (Backpack)]- Permission : BP.Gargos
Arius [5 ligne d'inventaire (Backpack)]- Permission : BP.Arius
Suprême [6 ligne d'inventaire (Backpack)]- Permission : BP.Suprême

 

Merci d'avance de votre aide ainsi que bonne continuation à vous !

Posté(e)

J'ai déjà vu des skript de backpack mais c'est pas les bon trucs j'aimerais avoir vraiment ce que je cherche
et pour information c'est skript v8 (1.8) une version patch (modifier)
merci des réponses 😄

Posté(e)

Bonsoir,

 

 


options:
	chat_prefix: &c<BackPack>
	inv_name: &f- &cBACKPACK &f-

	
# ===================================
import:	#IMPORT PART 1
	org.bukkit.Bukkit
	java.util.Collection
	java.util.Arrays
	java.util.ArrayList
	java.util.List
	org.bukkit.inventory.Inventory
	org.bukkit.inventory.ItemStack
	
option nms:
	get: 
		set {_ver} to Bukkit.getServer().getClass().getPackage().getName().split("\.")[3]
		return "net.minecraft.server.%{_ver}%"
import:	#IMPORT PART 2
	{@nms}.PacketPlayOutCollect
function getInventorySize(p: player) :: integer:
	set {_n} to 0
	#Permissions attributes
	set {_r::*} to "Citoyen", "Lotus", "Gargos", "Arius" and "Suprême" #Conseil: Evitez les accents.
	set {_v::*} to 1, 3, 4, 5 and 6
	loop {_r::*}:
		if {_p} has permission "BP.%loop-value%":
			set {_n} to {_v::%loop-index%}
	return {_n}
on join:
	while player is online:
		loop dropped items in radius 0.4 around player: #Item Detection
			set {_d} to loop-value.getItemStack()
			if player doesn't have space for {_d}:
				if {INV::%player%} has space for {_d}:
					# PACKET ANIMATION
					set {_packet} to new PacketPlayOutCollect(loop-value.getEntityId(), player.getEntityId())
					loop players in radius 50 around location of player: #EFFECT VIEW DISTANCE
						loop-value-2.getHandle().playerConnection!.sendPacket({_packet})
					# TRANSACTION
					delete loop-value
					{INV::%player%}.addItem({_d})
					send "{@chat_prefix} &9%{_d}% &7a/ont été stocké(s) dans votre &bbackpack."
		wait 1.25 seconds	
		
on join:
	if {INV::%player%} is not set:
		if {INV.BACKUP::%player%::*} is set:
			send "&2Restauration de vos données backpack..."
			set {INV::%player%} to Bukkit.createInventory(null, {_d} * 9, "{@inv_name}")
			set {_m::*} to [{INV.BACKUP::%player%::*} as ItemStack]
			{INV::%player%}.setContents({_m::*})
		else:	
			set {INV::%player%} to Bukkit.createInventory(null, {_d} * 9, "{@inv_name}")		
command /inv:
	executable by: players
	trigger:
		set {_d} to getInventorySize(player)
		if {_d} = 0:
			send "&cPermissions insuffisantes!"
			stop
		# INV INIT
		set {_s} to {INV::%player%}.getSize()
		set {_inv} to {INV::%player%}.getContents()
		if {_inv}[0] is set:
			set {_v} to Arrays.asList({_inv})
		set {INV::%player%} to Bukkit.createInventory(null, {_d} * 9, "{@inv_name}")
		if {_s} > 9 * {_d}:
			set {_inv} to {_v}.subList(0, {_d} * 9)
			set {_inv::*} to ...{_inv}.toArray()
			set {_inv::*} to [{_inv::*} as ItemStack]
			#DROP SECTION
			set {_p2} to {_v}.subList(9 * {_d}, {_s})
			set {_2} to {_p2}.size()
			set {_p2::*} to ...{_p2}.toArray()
			{INV::%player%}.setContents({_inv::*})
		else:
			{INV::%player%}.setContents({_inv})
		if {_p2::*} is set:
			loop {_p2::*}:
				player.getWorld().dropItemNaturally(player's location, loop-value)
			send "&aLa taille de votre &fbackpack &aa diminué, l'excédent d'item(s) est à terre."
		send "{@chat_prefix} &eOuverture..."
		player.openInventory({INV::%player%})

on inventory close:	
	if player.getOpenInventory().getTopInventory().getName() = "{@inv_name}":
		set {INV::%player%} to event-inventory
		set {INV.BACKUP::%player%::*} to ...event-inventory.getContents()
on death of player:
	...{INV::%victim%}.getContents() is set
	drop all items in {INV::%victim%} at victim
	{INV::%victim%}.clear()
	clear {INV.BACKUP::%victim%::*}
	send "&d&lLe contenu  de votre backpack s'est dispersé lors de votre mort." to victim

◘ Nécessite l'add-on skript-mirror

Posté(e)
Il y a 2 heures, Slophil a dit :

je peux t'aider, attends un peux je fais le code et je te l'envoie en privé

La communauté de skript-mc est là pour aider les développeurs, l'envoi de script en privé nuit à l'entraide. Une personne qui tombera sur ce topic, ne pourra pas récupérer un bout de code, ou le code. Ce qui l'obligera à refaire une demande...
Merci d'envoyer les codes sur le topic.

 

https://skript-mc.fr/forum/topic/14568-règlement-général-du-forum/

 

"Les demande d'aide et de skript doivent figurer de la demande jusqu'à la finalisation de la demande sur le forum. Les réponses du type "viens mp discord pour t'aider" ne sont plus tolérées car les demandes d'aide sur le forum ne sont jamais finalisées ni répondues."

 

 

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.