nefthon

Untitled

Jan 15th, 2014
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  1. [COMMENT ganatickets]
  2.  
  3. Esta funcion es la que da paso a los tix ganados.
  4.  
  5. Recibe la cantidad de tix del cuerpo "<ARGN>" (pero está sacado al "local.tix") y la devuelve en el "RETURN " si el return es igual a 0, no se gana tickets (penalización?) en cuyo caso habría que poner un mensaje o algo en esta función de igual modo se puede poner una bonificación como en la "Power Hour".
  6.  
  7. [function f_niveles_SetExpToLvl]
  8. if (<tag.lvl><1)
  9. tag.lvl=1
  10. endif
  11. local.base=((8 * <nivel>) + <f_niveles_diffcl>)
  12. local.nobase=(35 +(<def.server_players_stats_puntos_nivel> * <nivel>))
  13. tag.exptolvl = <eval <local.base> * <local.nobase>>// × RF(CL)
  14. return <dtag.exptolvl>
  15.  
  16. [function f_niveles_SetExpByStats]
  17. local.sum=<eval (<statsum_exp>/2)+<propsum>> //+(<skilltotal>/10)
  18. local.sum +=<eval (<nivel>*<def.niveles_exp_bonus_nivel_base>) * <def.niveles_exp_bonus_nivel_porcent>>
  19. local.sum +=<muldiv <local.sum>,<def.niveles_exp_bonus_region_<dtag.region.type>>,100>
  20. if (<tag0.paragon>)
  21. local.sum +=<muldiv <local.sum>,<def.server_npcs_paragon_bonus_exp>,100>
  22. endif
  23. return <dlocal.sum>
  24.  
  25. [function f_niveles_diffcl] //incremento de dificultad segun el nivel actual
  26. // if (<nivel>>100)
  27. // return <eval 5*(<nivel>-5>)
  28. // elseif (<nivel>>70)
  29. // return <eval 5*(<nivel>-10>)
  30. // elseif (<nivel>>50)
  31. // return <eval 5*(<nivel>-20>)
  32. // elseif (<nivel>>30)
  33. // return <eval 5*(<nivel>-30>)
  34. // else
  35. // return 0
  36. // endif
  37. return <eval 5*(<nivel>-(<nivel>/2))>
  38.  
  39. [function f_niveles_GanaExp]
  40. local.tix=<f_niveles_GanaExp_Bonus <args>>
  41. tag0.tix +=<local.tix>
  42. while (<tag0.tix>>=<f_niveles_SetExpToLvl>)
  43. tag0.tix -=<f_niveles_SetExpToLvl>
  44. f_niveles_lvlup
  45. endwhile
  46. smgu=<def.tradu_<leng>_niveles_hasganado> <dlocal.tix> <def.tradu_<leng>_niveles_tickets> (Total:<dtag.tix>/<dtag.exptolvl>).
  47.  
  48. [function f_niveles_lvlup]
  49. if (<tag.lvl><<def.niveles_maximo>)
  50. tag.lvl ++
  51. f_niveles_SetExpToLvl
  52. f_niveles_StatCap
  53. f_statcap_gain
  54. smgu=Has subido al nivel <dtag.lvl>!!
  55. else
  56. smgu=Ya tienes el nivel máximo.
  57. endif
  58.  
  59. [FUNCTION f_niveles_GanaExp_Bonus]
  60. IF (<Isempty <ARGS>>)
  61. LOCAL.TIX={0 10}
  62. ELSE
  63. LOCAL.TIX=<ARGS>
  64. ENDIF
  65. if (<brain>)
  66. return 0
  67. endif
  68. IF (<Account.Tag0.BonusExp>)
  69. LOCAL.TIX +=<eval <local.tix>/2>
  70. Smgu=<DEF.tradu_<ACCOUNT.TAG.LANG>_niveles_deed_bonus>
  71. ENDIF
  72. IF (<Account.Tag0.DobleExp>)
  73. LOCAL.TIX *=2
  74. Smgu=Exp Bonus: <DEF.tradu_<ACCOUNT.TAG.LANG>_niveles_deed_bonusx2>
  75. ENDIF
  76. IF (<VAR.PowerHour>) //Si es la power hour
  77. VAR0.PowerHour_Exp +=<local.tix>
  78. LOCAL.TIX *=2 //Dobla los tix ganados?
  79. Smgu=<DEF.tradu_<ACCOUNT.TAG.LANG>_powerhour_nombre>: <DEF.tradu_<ACCOUNT.TAG.LANG>_powerhour_tix>
  80. ENDIF
  81. IF (<serv.rtime.format %j>==6) //Doble tix en reyes
  82. tag0.tix_navidad +=<local.tix>
  83. LOCAL.TIX *=2 //Dobla los tix ganados?
  84. Smgu=<DEF.tradu_<ACCOUNT.TAG.LANG>_niveles_reyes_nombre>: <DEF.tradu_<ACCOUNT.TAG.LANG>_niveles_reyes_tix>: <dtag.tix_navidad>.
  85. ENDIF
  86.  
  87. IF ((<TAG0.NOTIX>) || (<VAR0.NoTix>)) //Si tiene este tag no gana tickets
  88. LOCAL.TIX=0
  89. ENDIF
  90. // IF (<EVAL <R100>+<LUCK>>>=100) //Aqui entra en juego la "luck" de OSI en un rand de 100 te dobla los tix (raro que pase) por lo tanto a mas "luck" mas posibilidades de que doble premio
  91. // LOCAL.TIX *=2
  92. // Smgu=<DEF.tradu_<ACCOUNT.TAG.LANG>_powerhour_tix1>
  93. // ENDIF
  94. RETURN <EVAL <LOCAL.TIX>>
  95.  
  96. [function f_niveles_npc_death]
  97. // if (<isevent.E_CHAMPION_MINION>) || (<tag0.NoExp>)
  98. // return 0
  99. // endif
  100. ref1=<ARGO.UID>
  101. IF (<ref1>)
  102. ref1.tag.nodecay=1 //tags en los npcs
  103. ref1.tag.notradus=1 //no queremos que el sistema default de traducciones cambie el nombre, tenemos traduccion propia en t_corpse
  104. ref1.nivel=<nivel>
  105. ref1.Tag.Time=<Eval <SERV.Time>+2>
  106. endif
  107. if (<f_niveles_noexp> || (<src.f_niveles_noexp>)) //si se pone una penalizacion de no exp, por ej
  108. return 0
  109. endif
  110. if !(<combate>) //No es normal morir sin atackers, creamos log por si se puede/quiere investigar algo
  111. serv.log=<uid>, <name>, <baseid> muere en <region.name> (<p>) sin attackers
  112. return 0
  113. endif //si no esta en rango de niveles para recibir toda la exp
  114. local.calculo=<combate.getdamage.total> //comprogbamos cuanto daño se ha recibido en total
  115. for 0 <eval <combate.attackers>-1>
  116. ref1=<combate.attacker <local._for>>
  117. local.exp=<f_niveles_SetExpByStats>
  118. local.exp +=<f_niveles_get_npc_buff_bonus <local.exp>>
  119. local.exp +=<f_niveles_get_paragon_bonus <local.exp>>
  120. local.exp = <f_niveles_get_player_dmg_exp_porcent <ref1>,<local.calculo>,<local.exp>> //repartimos exp en funcion del %dam que hecho . //<muldiv <local.exp>,<muldiv <local.dam>,100,<local.calculo>>,100>
  121. local.a=<muldiv <local.exp>,<f_niveles_npc_GetLevelDiff <ref1>>,100>
  122. local.exp -=<local.a> //Obtiene la exp base teniendo en cuenta las diferencias de niveles
  123. ref1.f_niveles_GanaExp <local.exp> //funcion final que da la exp resultante
  124. endfor
  125.  
  126. [function f_niveles_noexp] //aqui se bloquea el recibir exp. ej region.tag.evento_monsterbash=1
  127. if (<tag0.noexp>)
  128. return 1
  129. endif
  130. return 0
  131.  
  132. [function f_niveles_get_player_dmg_exp_porcent]
  133. local.dam=<combate.tag.get.damage <argv[0]>> //calculamos el dam base <muldiv <local.dam>,100,<local.damage>>
  134. local.damporcent=<muldiv <local.dam>,100,<argv[1]>> //<eval (<local.dam>*100)/<argv[1]>> //calculamos que % de daño ha hecho en relacion al daño total
  135. local.expporcent=<muldiv <argv[2]>,100,<local.damporcent>> //<eval (<argv[2]>*100)/<local.damporcent>> //calculamos el %de exp resultante relativa al % de daño hecho.
  136. if (<local.expporcent><0)
  137. local.expporcent=0
  138. endif
  139. return <dlocal.expporcent>
  140.  
  141.  
  142. [function f_niveles_npc_GetLevelDiff] //reasigna la experiencia a dar reduciendola en un % igual al %de diferencia de niveles entre quien mata y quien muere
  143. ref1=<argv[0]>
  144. local.ret=<argv[1]>
  145. if (<ref1.nivel>><nivel>)
  146. local.ret=<eval (<ref1.nivel>-<nivel>)*<def.niveles_calculo_diff_por_level>> //<eval <dargv[1]>-<eval (<argv[1]>*((<ref1.nivel>-<nivel>)*2))/100>>
  147. if (<local.ret>><def.niveles_calculo_diff_cap>)
  148. local.ret=<def.niveles_calculo_diff_cap>
  149. endif
  150. endif
  151. return <local.ret>
  152.  
  153. [function f_niveles_get_zd] //crea un divisor para los rangos de niveles, a mas nivel menos exp recibes por matar npcs de nivel inferior
  154. if (<nivel>>90)
  155. return 25
  156. elseif (<nivel>>80)
  157. return 21
  158. elseif (<nivel>>70)
  159. return 18
  160. elseif (<nivel>>60)
  161. return 16
  162. elseif (<nivel>>50)
  163. return 14
  164. elseif (<nivel>>40)
  165. return 13
  166. elseif (<nivel>>30)
  167. return 12
  168. elseif (<nivel>>20)
  169. return 11
  170. elseif (<nivel>>16)
  171. return 9
  172. elseif (<nivel>>12)
  173. return 8
  174. elseif (<nivel>>10)
  175. return 7
  176. elseif (<nivel>>8)
  177. return 6
  178. elseif (<nivel>>1)
  179. return 5
  180. endif
  181.  
  182. [function f_niveles_get_npc_region_bonus] //devuelve el bonus de region que se aplica al crear el npc
  183. return <tag0.region.type>
  184.  
  185. [function f_niveles_get_npc_buff_bonus] //aplica el porcentaje del npc_bonus
  186. return <qval <tag0.npc_bonus>?<eval (<argn>*<tag0.npc_buff>)/100>:0>
  187.  
  188. [function f_niveles_get_paragon_bonus] //aplica el porcentaje del paragon (20%)
  189. return <qval <tag0.paragon>?<eval (<argn>*20)/100>:0>
  190.  
  191. [function statsum_exp]
  192. return <eval (<str>+<muldiv <str>,<def.niveles_exp_bonus_str>,100>)+(<dex>+<muldiv <dex>,<def.niveles_exp_bonus_dex>,100>)+(<int>+<muldiv <int>,<def.niveles_exp_bonus_int>,100>)+(<maxhits>+<muldiv <maxhits>,<def.niveles_exp_bonus_maxhits>,100>)+(<maxstam>+<muldiv <maxstam>,<def.niveles_exp_bonus_maxstam>,100>)+(<maxmana>+<muldiv <maxmana>,<def.niveles_exp_bonus_maxmana>,100>)>
  193.  
  194. [EOF]
Advertisement
Add Comment
Please, Sign In to add comment