Aller au contenu

InventorySaver


Messages recommandés

Posté(e)

Bonjour tout le monde,

je vous explique mon problème :

Sur mon serveur Faction il y à beaucoup de cheat. Beaucoup de personnes viennent se plaindre pour récupéré leurs stuff.

J'aimerais donc crée un skript appeller InventorySaver.

UTILISATION :

Envoyé un messages au personnes ayant le permission "InventorySaver.alerts" ceci :

&7[&cInventorySaver&7] &c%player% &7vient de se faire tué(e) par &c%JeSaisPasLaVariable% &bSon ID d'inventaire est &c%GénérerUneID%

Et que sa dise au joueur :

&7[&cInventorySaver&7] Vous êtes mort, en cas de problème avec un cheater, notez bien votre id et venez sur notre TeamSpeak 3 ! Votre ID : %ID%

 

Lorsque l'on fait /inventorysaverview IDDUJOUEUR ça nous ouvre une interface avec tout son stuff & son inventaire. Si possible y ajouté un BEACON en bas au milieux appeller "Rendre le Stuff" et surtout préciser grâce a une tête le pseudo de la personne et de dire par qui elle est morte avec son ID ! Pour toutes demande communiquez moi un ts svp ! merci bc !

Posté(e)
Le problème c'est qu'on peut vite se retrouver avec une liste d'id énorme pour les gros serveurs :/

Justement, ce que je n'ai pas eu le temps de préciser c'est que tout les 24H toutes les ID's doivent être delete ;)

 

Donc personne ne veut quoi ..

Posté(e)
Evite le double post, de plus, ce n'est pas en 14 minutes que l'on va faire un skript de cette taille :/

Non mais personne repond je veut bien le faire ou autre donc c'est que personne ne veut le faire .. :x

Posté(e)
Pourquoi pas juste enregistrer le dernier inventaire avant de mourir et l'écraser à la mort suivante ?

Car si le staff et pas dispo et qu'il et dans sa fac et qu'il se fait spawnkill ou autre... tu vois le truc

Posté(e)
Voilà ;)

[spoiler=Code]

options:
  Prefixe: &7[&cInventorySaver&7]

on death of player:
  if attacker is a player:
    set {_slot} to 0
    loop 36 times:  
      set {inventory.inventoryrestorer.%{nombre.id}%.%{_slot}%} to slot {_slot} of player's inventory
      add 1 to {_slot}
    set {helmet.inventoryrestorer.%{nombre.id}%} to player's helmet
    set {chestplate.inventoryrestorer.%{nombre.id}%} to player's chestplate
    set {leggings.inventoryrestorer.%{nombre.id}%} to player's leggings
    set {boots.inventoryrestorer.%{nombre.id}%} to player's boots
    set {debut.inventoryrestorer.%{nombre.id}%} to now
    set {nom.victime.%{nombre.id}%} to victim
    set {nom.attaquant.%{nombre.id}%} to attacker
    add {nombre.id} to {list.id.inventoryrestorer::*}
    set {id.inventoryrestorer.%{nombre.id}%} to true
    loop all players:
      if loop-player have permission "InventorySaver.alerts":
        send "{@Prefixe} &c%victim% &7vient de se faire tué(e) par &c%attacker%. &bSon ID d'inventaire est &c%{nombre.id}%" to loop-player
    send "{@Prefixe} Vous êtes mort, en cas de problème avec un cheater, notez bien votre ID et venez sur votre TeamSpeak 3 ! Votre ID : %{nombre.id}%" to victim
    add 1 to {nombre.id}


command /InventorySaverview [<integer>]:
  permission: InventorySaver.view
  permission message: &cErreur : Vous n'avez pas la permission d'utiliser cette commande.
  trigger:
    if arg 1 is set:
      if arg 1 is smaller than or equal to {nombre.id}:
        if {id.inventoryrestorer.%arg 1%} is set:  
          open chest with 6 rows named "&eInventaire de %{nom.victime.%arg 1%}%" to player
          wait 1 tick
          format slot 4 of player with {nom.victime.%arg 1%}'s skull named "  &9&nYokix" with lore "||&3&nTueur :&r &b%{nom.attaquant.%arg 1%}%||&3&nDate :&r &b%{debut.inventoryrestorer.%arg 1%}%||&3&nID :&r &b%arg 1%" to be unstealable
          format slot 11 of player with {helmet.inventoryrestorer.%arg 1%} to be unstealable
          format slot 12 of player with {chestplate.inventoryrestorer.%arg 1%} to be unstealable  
          if {nom.victime.%arg 1%} is online:  
            format slot 13 of player with beacon named "&9&nRendre son stuff" with lore "&3Cliques dessus pour rendre||&3Le stuff à %{nom.victime.%arg 1%}%" to close then run [run {nom.victime.%arg 1%} command "/InventorySaverGive %arg 1% %{nom.victime.%arg 1%}%" as op]
          else:
            format slot 13 of player with barrier named "&9&nImpossible de lui rendre son stuff" to be unstealable
          format slot 14 of player with {leggings.inventoryrestorer.%arg 1%} to be unstealable
          format slot 15 of player with {boots.inventoryrestorer.%arg 1%} to be unstealable
          set {_slot} to 18
          loop 36 times:  
            set slot {_slot} of player's inventory to {inventory.inventoryrestorer.%{nombre.id}%.%{_slot}%}
            add 1 to {_slot}
        else:
          send "&cErreur : Cette inventaire n'existe pas."

      else:
        send "&cErreur : Cette inventaire n'existe pas."
    else:
      send "&cErreur : Merci de mettre un ID."

command /InventorySaverGive [<integer>]:
  trigger:
    if player is op:
      if {nom.victime.%arg 1%} is "%player%"  
        if arg 1 is set:
          if arg 1 is smaller than or equal to {nombre.id}:
            if {id.inventoryrestorer.%arg 1%} is set:
              if player's helmet is air:
                set player's helmet to {helmet.inventoryrestorer.%arg 1%}
              else:
                set {_message} to true
                drop {helmet.inventoryrestorer.%arg 1%}
              if player's chestplate is air:
                set player's chestplate to {chestplate.inventoryrestorer.%arg 1%}
              else:
                set {_message} to true
                drop {chestplate.inventoryrestorer.%arg 1%}
              if player's leggings is air:
                set player's leggings to {leggings.inventoryrestorer.%arg 1%}
              else:
                set {_message} to true
                drop {leggings.inventoryrestorer.%arg 1%}
              if player's boots is air:
                set player's boots to {boots.inventoryrestorer.%arg 1%}
              else:
                set {_message} to true
                drop {boots.inventoryrestorer.%arg 1%}
              set {_slot} to 0
              loop 36 times:
                if slot {_slot} of player's inventory is air:
                  set slot {_slot} of player to {inventory.inventoryrestorer.%arg 1%.%{_slot}%}            
                else:
                  drop {inventory.inventoryrestorer.%arg 1%.%{_slot}%}
                  set {_message} to true
              if {_message} is true:
                send "{@Prefixe} Vous n'avez pas assez de place dans l'inventaire pour tout obtenir, certains items sont au sol."
              delete {inventory.inventoryrestorer.%arg 1%}
              delete {helmet.inventoryrestorer.%arg 1%}
              delete {chestplate.inventoryrestorer.%arg 1%}
              delete {leggings.inventoryrestorer.%arg 1%}
              delete {boots.inventoryrestorer.%arg 1%}
              delete {debut.inventoryrestorer.%arg 1%}
              delete {nom.victime.%arg 1%}
              delete {nom.attaquant.%arg 1%}
              remove arg 1 from {list.id.inventoryrestorer::*}
              delete {id.inventoryrestorer.%arg 1%}
            else:
              send "&cErreur : Cette inventaire n'existe pas."
          else:
            send "&cErreur : Cette inventaire n'existe pas."
        else:
          send "&cErreur : Merci de mettre un nom d'inventaire."
      else:
        send "&cErreur : Ce kit ne vous appartient pas."
    else:
      send "&cErreur : Vous n'avez pas la permission d'utiliser cette commande."


every 30 seconds:
  loop {list.id.inventoryrestorer::*}:
    if difference between {debut.inventoryrestorer.%loop-value%} and now is greater than or equal to 24 hours:
      delete {inventory.inventoryrestorer.%loop-value%}
      delete {helmet.inventoryrestorer.%loop-value%}
      delete {chestplate.inventoryrestorer.%loop-value%}
      delete {leggings.inventoryrestorer.%loop-value%}
      delete {boots.inventoryrestorer.%loop-value%}
      delete {debut.inventoryrestorer.%loop-value%}
      delete {nom.victime.%loop-value%}
      delete {nom.attaquant.%loop-value%}
      remove loop-value from {list.id.inventoryrestorer::*}


on load:
  if {nombre.id} isn't set:
    set {nombre.id} to 1

Merci mec je teste ça desuite :)

Posté(e)
Tes erreurs ne seraient pas des erreurs de tabulations par exemple, donne moi en une stp

indentation error: expected 6 spaces, but found 5 spaces (saver.sk, line 130 set {nombre.id} to 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.