Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. [EVENTS e_gerais_dev]
  2. ON=@ATTACK
  3. IF (<ISINSHIP>)
  4. IF (<SRC.ISNPC>)
  5. IF ((<ISINSHIP>) && !(<SRC.ISINSHIP>)) || (!(<ISINSHIP>) && (<SRC.ISINSHIP>))
  6. RETURN 1
  7. ENDIF
  8. ENDIF
  9. ENDIF
  10.  
  11. on=@itemdropon_ground
  12. IF <SRC.ACCOUNT.PLEVEL> > 1
  13. IF !(<UID> == <ACT.TOPOBJ.UID>)
  14. WRITEFILE logs/<ACCOUNT>.LOG <SERV.RTIME>: <ACCOUNT> dropou em <P> <ACT.AMOUNT> <ACT.NAME> (<ACT.UID>)
  15. ENDIF
  16. ENDIF
  17.  
  18. IF !(<ISGM>)
  19. if (<ACT.CAN>&CAN_I_BLOCK)
  20. REF1=<UID>
  21. REF2=<ACT.UID>
  22. FORCLIENTS 15
  23. IF !(<UID>==<REF1.UID>) && (<REGION.UID>==<REF1.REGION.UID>) && !(<ISGM>) && !(<flags> & statf_hidden) && !(<flags> & statf_invisible)
  24. REF2.CONT <REF1.FINDLAYER.21.UID>
  25. REF2.UPDATEX
  26. REF1.SYSMESSAGE @,,1 Itens que bloqueiam a passagem so podem ser colocados dentro de casas ou a 15 tiles de distancia de outros jogadores.
  27. RETURN 1
  28. ENDIF
  29. ENDFOR
  30. endif
  31. return 0
  32. ENDIF
  33.  
  34. ON=@HITTRY
  35. IF (<REGION.TAG0.PVM_ONLY>) && (<SRC.ISPLAYER>)
  36. RETURN 1
  37. ENDIF
  38.  
  39. IF (<SRC.NPC>==3) || (<SRC.NPC>==4) || (<SRC.NPC>==5) || (<SRC.NPC>==6) || (<SRC.NPC>==7)
  40. RETURN 1
  41. ENDIF
  42.  
  43. IF (<SRC.REGION.FLAGS>&region_flag_safe) || (<SRC.REGION.FLAGS>&region_flag_no_pvp) || (STRMATCH(*commerce room*,<src.region.name>))
  44. RETURN 1
  45. ENDIF
  46.  
  47. IF (<REGION.FLAGS>&region_flag_safe) || (<REGION.FLAGS>&region_flag_no_pvp) || (STRMATCH(*commerce room*,<region.name>))
  48. RETURN 1
  49. ENDIF
  50.  
  51. // evitar que players buguem
  52. // ao atacar pelas quinas
  53. IF !(<SRC.CANSEELOS <I.UID>>)
  54. RETURN 1
  55. ENDIF
  56.  
  57. ON=@HIT
  58. //LOCAL.ITEMDAMAGECHANCE=0 //calcular a chance da arma levar dano 0-100%
  59.  
  60. IF (<WEAPON>)
  61. local.armslore = <armslore> //0-100.0
  62. local.hits <weapon.hits> //1-maxhits
  63. local.maxhits <weapon.maxhits> //1-maxhits
  64.  
  65. IF (<WEAPON.VALUE> > 0)
  66. local.quality <weapon.quality> //1-200
  67. ELSE
  68. local.quality 200
  69. ENDIF
  70.  
  71. local.skillweapon <i.<SERV.SKILL.<EVAL <ACTION> & 0ff>.KEY>> //0-100.0
  72.  
  73. if <local.quality> == 0
  74. local.quality 200
  75. endif
  76.  
  77. if (<local.hits> > <local.maxhits>)
  78. local.maxhits = <local.hits>
  79. endif
  80.  
  81. float.armslorepeso <floatval ((<local.armslore>/100)*10) + 10>
  82. float.hitspeso <floatval ((<local.hits>/<local.maxhits>)*5) + 5>
  83.  
  84. if (<isnum local.quality>)
  85. float.qualitypeso <floatval ((<local.quality>/200)*15) + 15>
  86. else
  87. float.qualitypeso <floatval ((<dlocal.quality>/200)*15) + 15>
  88. endif
  89.  
  90. float.skillweaponpeso <floatval ((<local.skillweapon>/100)*15) + 15>
  91.  
  92. local.ITEMDAMAGECHANCE = <feval <floatval (100 - (<float.qualitypeso> + <float.armslorepeso> + <float.skillweaponpeso> + <float.hitspeso>)) / 2>>
  93. ENDIF
  94.  
  95. IF <SRC.FLAGS>&statf_hasshield
  96. IF (<R1,150> < <SRC.PARRYING>/100)
  97. SRC.EFFECT 3,i_fx_glow,20,25,1
  98. SRC.SYSMESSAGE You parry the blow
  99. SRC.SKILLGAIN 5 1
  100. RETURN 1
  101. ENDIF
  102. ENDIF
  103.  
  104. IF (<WEAPON>)
  105. IF (<WEAPON.TAG0.POISONLEVEL>)
  106. IF !(<SRC.ISPLAYER>)
  107. IF (<WEAPON.TAG0.POISONLEVEL> == 1)
  108. local.POISONCHANCE = 4
  109. ELIF (<WEAPON.TAG0.POISONLEVEL> == 2)
  110. local.POISONCHANCE = 6
  111. ELIF (<WEAPON.TAG0.POISONLEVEL> == 3)
  112. local.POISONCHANCE = 9
  113. ELIF (<WEAPON.TAG0.POISONLEVEL> == 4)
  114. local.POISONCHANCE = 16
  115. ENDIF
  116.  
  117. IF (<f_get_real_skill <UID>,30> >= 1000)
  118. local.POISONCHANCE <EVAL ((<local.POISONCHANCE> * 80) / 100)>
  119. ENDIF
  120.  
  121. IF !(<R<LOCAL.POISONCHANCE>>)
  122. LOCAL.DOPOISON 1
  123. ENDIF
  124. ELSE
  125. IF (<WEAPON.TAG0.POISONLEVEL> == 1)
  126. local.POISONCHANCE = 3
  127. ELIF (<WEAPON.TAG0.POISONLEVEL> == 2)
  128. local.POISONCHANCE = 5
  129. ELIF (<WEAPON.TAG0.POISONLEVEL> == 3)
  130. local.POISONCHANCE = 7
  131. ELIF (<WEAPON.TAG0.POISONLEVEL> == 4)
  132. local.POISONCHANCE = 9
  133. ENDIF
  134.  
  135. LOCAL.FOUND 0
  136. FORCONTID i_poison_buffer
  137. IF (<LINK> == <SRC.UID>)
  138. LOCAL.FOUND <UID>
  139. ENDIF
  140. ENDFOR
  141.  
  142. IF (<LOCAL.FOUND>)
  143. REF1 <LOCAL.FOUND>
  144. ELSE
  145. SERV.NEWITEM i_poison_buffer
  146. NEW.TIMER 60
  147. NEW.LINK <SRC.UID>
  148. EQUIP <NEW.UID>
  149.  
  150. REF1 <NEW.UID>
  151. ENDIF
  152.  
  153. REF1.TIMER 60
  154. REF1.TAG0.HITS += 1
  155.  
  156. SERV.LOG <NAME> batendo em <SRC.NAME> <dREF1.TAG0.HITS>.
  157.  
  158. IF (<REF1.TAG0.HITS> >= <LOCAL.POISONCHANCE>)
  159. REF1.REMOVE
  160. LOCAL.DOPOISON 1
  161. ENDIF
  162. ENDIF
  163.  
  164. IF (<LOCAL.DOPOISON>)
  165. SRC.FINDID.i_poison_effect.remove
  166. SERV.NEWITEM i_poison_effect
  167. NEW.more2 <WEAPON.TAG.POISONLEVEL>
  168. NEW.MORE 8
  169. NEW.TAG.POISONTIMER <WEAPON.TAG.POISONTIMER>
  170. NEW.TAG.ATTACKER <UID>
  171. NEW.CONT <SRC.UID>
  172. NEW.TRIGGER @EQUIP
  173. NEW.TIMER 2
  174. ENDIF
  175. ENDIF
  176.  
  177. //ARGN1=<R<WEAPON.DAM>>
  178. ELSE
  179. LOCAL.DANOMAO <EVAL <STR>/50>
  180. LOCAL.DANOMAO2 <EVAL <LOCAL.DANOMAO>+(<WRESTLING>/300)>
  181. ARGN1=<R<DLOCAL.DANOMAO>,<DLOCAL.DANOMAO2>>
  182. ENDIF
  183.  
  184. IF <WEAPON>
  185. LOCAL.DIFF = <ARGN1>
  186. ARGN1 += <eval <tactics>/200>
  187. ARGN1 += <eval <anatomy>/200>
  188. ARGN1 += <eval <str>/33>
  189. ENDIF
  190.  
  191. IF <WEAPON.TYPE>=t_weapon_axe
  192. ARGN1 += <eval (<dLOCAL.DIFF>*(<LUMBERJACKING>/50))/100>
  193. ENDIF
  194.  
  195. IF <SRC.ISPLAYER>
  196. ARGN1 -= <eval (<ARGN1> * <SRC.AR>)/200>
  197. ENDIF
  198.  
  199. IF !(<SRC.ISPLAYER>) && (<uid.<local.arrow>.defname> == i_iron_arrow)
  200. // put here the % increase
  201. ENDIF
  202.  
  203. IF (<WEAPON.MOREY>)
  204. ARGN1 += <EVAL <WEAPON.MOREY>/66>
  205. ENDIF
  206.  
  207. // evitar que o sphere reduza o dano para armadura (ja foi reduzido)
  208. ARGN2 |= dam_god
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement