Advertisement
Guest User

SurvivalLeveling V 0.6.0

a guest
Mar 28th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.08 KB | None | 0 0
  1. #AJOUTER LA CONDITION IF PLAYER LEVELING IS TRUE
  2. options:
  3. prefix: &f[&eSurvivalLeveling&f]&7
  4. playerleveling: false
  5. monsterleveling: true
  6. playermaxlevel: 100
  7.  
  8. #----------------------
  9. # FONCTIONS
  10. #----------------------
  11.  
  12. function CalcMonsterLevel(levelplayer: number) :: number:
  13. set {_monsterlevel} to {_levelplayer} / 2
  14. add a random number between 2 and 20 to {_monsterlevel}
  15. set {_result} to rounded {_monsterlevel}
  16. return {_result}
  17.  
  18. function CalcMonsterHealth(level: number , base: number) :: number:
  19. set {_monsterHealth} to {_level} * 100
  20. set {_divisor} to a random number between 70 and 120
  21. set {_result} to {_monsterlevel} / {_divisor}
  22. add {_base} to {_result}
  23. set {_result} to rounded {_result}
  24. return {_result}
  25.  
  26. function CheckExp(player: player , level: number , exp: number , goal: number) :: number:
  27. while {_exp} >= {_goal}:
  28. if {_level} < {@playermaxlevel}:
  29. add 1 to {_level}
  30. add 1 to {level.%{_player}%}
  31. remove {_goal} from {_exp}
  32. send "{@prefix} Tu es désormais niveau &e%{_level}% &7!" to {_player}
  33. # GIVE TNC
  34. # CHECK EFFETS DES LVL
  35. if {_level} / 10 = rounded {_level} / 10:
  36. broadcast "{@prefix} &e%{_player}% &fvient de passer niveau &6%{_level}% &7!"
  37. set {_nextgoal} to rounded (2500 * {_level} / {@playermaxlevel})
  38. add {_nextgoal} to {_goal}
  39. set {exp.goal.%{_player}%} to {_goal}
  40. return {_exp}
  41.  
  42. #----------------------
  43. # EVENTS
  44. #----------------------
  45.  
  46. on join:
  47. if {survival.%player%} isn't set:
  48. set {survival.%player%} to true
  49. set {level.%player%} to 1
  50. set {exp.%player%} to 0
  51. set {exp.goal.%player%} to 50
  52. set {mobs.kill.%player%} to 0
  53. set {boss.kill.%player%} to 0
  54.  
  55.  
  56. #----------------------
  57. # COMMANDES
  58. #----------------------
  59.  
  60. command /survivalleveling [<text>]:
  61. usage: /survivalleveling
  62. aliases: /sl
  63. trigger:
  64. if arg 1 isn't set:
  65. send "bla" to player
  66. send "bla" to player
  67. send "bla" to player
  68. send "bla" to player
  69. send "bla" to player
  70. send "bla" to player
  71. if arg 1 is "reload":
  72. if player has permission "sl.admin":
  73. send "{@prefix} Reload en cours..."
  74. wait 1 tick
  75. execute console command "/sk reload SurvivalLeveling"
  76. wait 1 tick
  77. send "{@prefix} Reload fini !" to player
  78.  
  79. command /level [<offlineplayer>]:
  80. usage: /level <Joueur>
  81. aliases: /lvl , /niveau , /niv
  82. trigger:
  83. if arg 1 is set:
  84. if {survival.%arg-1%} is true:
  85. set {_player} to arg 1
  86. else:
  87. send "{@prefix} Ce joueur ne s'est jamais connecté !" to player
  88. stop
  89. else:
  90. set {_player} to player
  91. set {_percentage} to ({exp.%{_player}%}/{exp.goal.%{_player}%})
  92. set {_percentage} to rounded down ({_percentage} * 20)
  93. set {_total} to ""
  94. loop {_percentage} times:
  95. set {_total} to "%{_total}%&6X"
  96. loop (20 - {_percentage}) times:
  97. set {_total} to "%{_total}%&fX"
  98. send "" to player
  99. send "&eStatistiques de &d%{_player}%" to player
  100. send "" to player
  101. send "&eNiveau > &8[&b%{level.%{_player}%}%&e/&b{@playermaxlevel}&8]" to player
  102. send "&eExpérience > &8[&a%{exp.%{_player}%}%&e/&a%{exp.goal.%{_player}%}%&8] >> %{_total}%" to player
  103. send "" to player
  104. send "&eBoss tués > &4%{boss.kill.%{_player}%}%" to player
  105. send "&eMobs tués > &c%{mobs.kill.%{_player}%}%" to player
  106. #----------------------
  107. # SPAWN MOBS
  108. #----------------------
  109.  
  110. #
  111. # FINIR LES MOBS (Rajouter ghast blaze guardian <jockey villageois zombie> [slime/magmacube/endermite])
  112. #
  113. on spawn of a zombie or a skeleton or a zombie pigman or a creeper or a spider or a cave spider or a enderman or a witch or a silverfish:
  114. if {@monsterleveling} is true:
  115. loop all players in radius 59 of event-entity:
  116. if name of event-entity is set:
  117. stop
  118. else:
  119. set {_chance} to {level.%loop-player%} / 9000
  120. remove 0.004 from {_chance}
  121. chance of {_chance}:
  122. set {_bosslocation} to location of event-entity
  123. kill event-entity
  124. #
  125. # FAIRE DES BOSS
  126. #
  127. stop
  128. set {_entityvalue} to {level.%loop-player%} * 100 / {@playermaxlevel}
  129. set {_entityvalue} to rounded {_entityvalue}
  130. set {_basehealth} to event-entity's max health
  131. set {_monsterLevel} to CalcMonsterLevel({level.%loop-player%})
  132. set rf max hp of event-entity to CalcMonsterHealth({_monsterLevel} , {_basehealth})
  133. if event-entity isn't a zombie or a skeleton or a zombie pigman:
  134. apply health 255 to event-entity
  135. else:
  136. apply damage 255 to event-entity
  137. set {_randomvalue} to a random number between 0 and 50
  138. set {_armorvalue} to {_entityvalue} + {_randomvalue}
  139. if {_armorvalue} >= 125:
  140. set {_levelenchant} to {_armorvalue} - 125
  141. set {_levelenchant} to rounded down {_levelenchant} / 5
  142. equip event-entity with all diamond armour# of protection {_levelenchant}
  143. if event-entity isn't a skeleton:
  144. equip event-entity with diamond sword# of sharpness {_levelenchant}
  145. else:
  146. if event-entity isn't in world "world_nether":
  147. equip event-entity with bow of power 5
  148. else:
  149. equip event-entity with diamond sword# of sharpness {_levelenchant}
  150. if {_armorvalue} is between 100 and 124:
  151. set {_levelenchant} to {_armorvalue} - 100
  152. set {_levelenchant} to rounded down {_levelenchant} / 5
  153. equip event-entity with all iron armour# of protection {_levelenchant}
  154. if event-entity isn't a skeleton:
  155. equip event-entity with iron sword# of sharpness {_levelenchant}
  156. else:
  157. if event-entity isn't in world "world_nether":
  158. equip event-entity with bow of power 4
  159. else:
  160. equip event-entity with iron sword# of sharpness {_levelenchant}
  161. if {_armorvalue} is between 75 and 99:
  162. set {_levelenchant} to {_armorvalue} - 75
  163. set {_levelenchant} to rounded down {_levelenchant} / 5
  164. equip event-entity with all chainmail armour# of protection {_levelenchant}
  165. if event-entity isn't a skeleton:
  166. equip event-entity with stone sword# of sharpness {_levelenchant}
  167. else:
  168. if event-entity isn't in world "world_nether":
  169. equip event-entity with bow of power 3
  170. else:
  171. equip event-entity with stone sword# of sharpness {_levelenchant}
  172. if {_armorvalue} is between 50 and 74:
  173. set {_levelenchant} to {_armorvalue} - 50
  174. set {_levelenchant} to rounded down {_levelenchant} / 5
  175. equip event-entity with all gold armour# of protection {_levelenchant}
  176. if event-entity isn't a skeleton:
  177. equip event-entity with golden sword# of sharpness {_levelenchant}
  178. else:
  179. if event-entity isn't in world "world_nether":
  180. equip event-entity with bow of power 2
  181. else:
  182. equip event-entity with golden sword# of sharpness {_levelenchant}
  183. if {_armorvalue} is between 25 and 49:
  184. set {_levelenchant} to {_armorvalue} - 25
  185. set {_levelenchant} to rounded down {_levelenchant} / 5
  186. equip event-entity with all leather armour# of protection {_levelenchant}
  187. if event-entity isn't a skeleton:
  188. equip event-entity with wooden sword# of sharpness {_levelenchant}
  189. else:
  190. if event-entity isn't in world "world_nether":
  191. equip event-entity with bow of power 1
  192. else:
  193. equip event-entity with wooden sword# of sharpness {_levelenchant}
  194. if {_armorvalue} < 25:
  195. clear event-entity's inventory
  196. if event-entity is a skeleton:
  197. if event-entity isn't in world "world_nether":
  198. equip event-entity with bow
  199. if event-entity is a zombie:
  200. set event-entity's name to "&2Zombie &8(Niveau &f%{_monsterLevel}%&8)"
  201. set {_force} to {_entityvalue} - 20
  202. set {_vitesse} to {_entityvalue} - 10
  203. set {_regen} to {_entityvalue} - 70
  204. if event-entity is a skeleton:
  205. if event-entity is in world "world_nether":
  206. set event-entity's name to "&0Squelette des enfers &8(Niveau &f%{_monsterLevel}%&8)"
  207. set {_force} to {_entityvalue} - 50
  208. set {_vitesse} to {_entityvalue} - 70
  209. set {_regen} to {_entityvalue} - 90
  210. else:
  211. set event-entity's name to "&7Squelette &8(Niveau &f%{_monsterLevel}%&8)"
  212. set {_force} to {_entityvalue} - 40
  213. set {_vitesse} to {_entityvalue} - 5
  214. set {_regen} to {_entityvalue} - 60
  215. if event-entity is a zombie pigman:
  216. set event-entity's name to "&dCochon zombie &8(Niveau &f%{_monsterLevel}%&8)"
  217. set {_force} to {_entityvalue} - 60
  218. set {_vitesse} to {_entityvalue} - 40
  219. set {_regen} to {_entityvalue} - 70
  220. if event-entity is a creeper:
  221. set event-entity's name to "&aCreeper &8(Niveau &f%{_monsterLevel}%&8)"
  222. chance of {_entityvalue} - 80%:
  223. strike lightning at event-entity's location
  224. apply fire resistance to event-entity for 10 seconds
  225. apply health 255 to event-entity
  226. set {_force} to 0
  227. set {_vitesse} to {_entityvalue} - 50
  228. set {_regen} to {_entityvalue} - 30
  229. if event-entity is a spider:
  230. set event-entity's name to "&8Araignée &8(Niveau &f%{_monsterLevel}%&8)"
  231. set {_force} to {_entityvalue} - 35
  232. set {_vitesse} to {_entityvalue} - 15
  233. set {_regen} to {_entityvalue} - 50
  234. if event-entity is a cave spider:
  235. set event-entity's name to "&9Araignée venimeuse &8(Niveau &f%{_monsterLevel}%&8)"
  236. set {_force} to {_entityvalue} - 40
  237. set {_vitesse} to {_entityvalue} - 30
  238. set {_regen} to {_entityvalue} - 60
  239. if event-entity is a enderman:
  240. set event-entity's name to "&5Enderman &8(Niveau &f%{_monsterLevel}%&8)"
  241. set {_force} to {_entityvalue} - 80
  242. set {_vitesse} to {_entityvalue} - 30
  243. set {_regen} to {_entityvalue} - 55
  244. if event-entity is a witch:
  245. set event-entity's name to "&eSorcière &8(Niveau &f%{_monsterLevel}%&8)"
  246. set {_force} to 0
  247. set {_vitesse} to {_entityvalue} - 15
  248. set {_regen} to {_entityvalue} - 30
  249. if event-entity is a silverfish:
  250. set event-entity's name to "&3Larve &8(Niveau &f%{_monsterLevel}%&8)"
  251. set {_force} to {_entityvalue} - 50
  252. set {_vitesse} to {_entityvalue} - 5
  253. set {_regen} to {_entityvalue} - 40
  254. chance of {_force}%:
  255. apply strength 1 to event-entity for 10 days
  256. chance of {_vitesse}%:
  257. apply speed 1 to event-entity for 10 days
  258. chance of {_regen}%:
  259. apply resistance 1 to event-entity for 10 days
  260. stop
  261. else:
  262. cancel event
  263.  
  264. #----------------------
  265. # KILL MOBS
  266. #----------------------
  267.  
  268. at 6 am in "world":
  269. loop all entities:
  270. if name of loop-entity contains " &8(Niveau &f":
  271. kill loop-entity
  272. stop
  273. on death:
  274. if victim isn't a player:
  275. if name of victim contains " &8(Niveau &f":
  276. if attacker is a player:
  277. add 1 to {mobs.kill.%attacker%}
  278. if victim is a zombie:
  279. set {_boostertype} to 10
  280. if victim is a skeleton:
  281. if attacker is in world "world_nether":
  282. set {_boostertype} to 20
  283. else:
  284. set {_boostertype} to 12
  285. if victim is a zombie pigman:
  286. set {_boostertype} to 13
  287. if victim is a creeper:
  288. set {_boostertype} to 15
  289. if victim is a spider:
  290. set {_boostertype} to 11
  291. if victim is a cave spider:
  292. set {_boostertype} to 16
  293. if victim is a witch:
  294. set {_boostertype} to 17
  295. if victim is a silverfish:
  296. set {_boostertype} to 6
  297. set {_boosterlevel} to ({level.%attacker%} * 5 / {@playermaxlevel})
  298. if attacker has permission "sl.vipp":
  299. set {_boostergrade} to 3
  300. else:
  301. if attacker has permission "sl.vip":
  302. set {_boostergrade} to 2
  303. else:
  304. set {_boostergrade} to 1
  305. set {_reward} to rounded ({_boostertype} * {_boosterlevel} * {_boostergrade})
  306. if attacker has permission "sl.vipp":
  307. send "{@prefix} Vous avez gagné &6%{_reward}% &eExp &d(Bonus Vip+ x3) &7!" to attacker
  308. else:
  309. if attacker has permission "sl.vip":
  310. send "{@prefix} Vous avez gagné &6%{_reward}% &eExp &d(Bonus Vip x2) &7!" to attacker
  311. else:
  312. send "{@prefix} Vous avez gagné &6%{_reward}% &eExp &7!" to attacker
  313. add {_reward} to {exp.%attacker%}
  314. set {exp.%attacker%} to CheckExp(attacker , {level.%attacker%} , {exp.%attacker%} , {exp.goal.%attacker%})
  315. else:
  316. clear drops
  317.  
  318. #
  319. # PVP : Kill d'un joueur + AntiAttack
  320. #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement