[PLEVEL 1] level f_clrlvl f_show_new_exp //////////////////////////////////////////////////////////////// //function clear level system //Use it to disable level system. [function f_clrlvl] TAG0.EXP= TAG0.LEVELUP= TAG0.MYLEVEL= TAG0.MYSKILLSFREE= TAG0.MYPARAMSFREE= SYSMESSAGE @0021,0,1 Уровни очищены. //////////////////////////////////////////////////////////////// [function level] f_levelup dialogclose d_xp_system dialog d_xp_system //////////////////////////////////////////////////////////////// [Dialog d_xp_system] 100,100 resizepic 10 10 9250 255 160 resizepic 22 24 9550 230 20 dtext 70 25 1947 Уровневая система dtext 40 50 1947 Уровень : checkertrans 120 50 50 20 dtext 140 50 1947 <eval <TAG0.MYLEVEL>> dtext 40 70 1947 Текущий опыт: checkertrans 40 90 200 20 dtext 100 90 1947 <eval <TAG0.EXP>> / <Eval <TAG0.LEVELUP>> dtext 60 110 1947 Очки навыков: <Eval <TAG0.MYSKILLSFREE>> dtext 60 130 1947 Очки параметров: <Eval <TAG0.MYPARAMSFREE>>
//////////////////////////////////////////////////////////////// // XP SYSTEM //////////////////////////////////////////////////////////////// // //getting EXP //Small, Small Media, Media, Media Large, Large, Large Extra, Extra //total of 8 types of XP by monsters type // e_exp_gain_extra_small // e_exp_gain_small // e_exp_gain_small_media // e_exp_gain_media // e_exp_gain_media_large // e_exp_gain_large // e_exp_gain_large_extra // e_exp_gain_extra //////////////////////////////////////////////////////////////// // //Extra small [EVENTS e_exp_gain_extra_small] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(4,9))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(4,9))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //small [EVENTS e_exp_gain_small] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(5,15))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(5,15))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //small media [EVENTS e_exp_gain_small_media] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(20,30))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(20,30))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //Media [EVENTS e_exp_gain_media] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(35,45))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(35,45))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //media large [EVENTS e_exp_gain_media_large] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(50,65))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(50,65))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //large [EVENTS e_exp_gain_large] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(70,85))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(70,85))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //large extra [EVENTS e_exp_gain_large_extra] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(90,105))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(90,105))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF //extra [EVENTS e_exp_gain_extra] ON=@DEATHCORPSE Ref1 = <argo.more2> // More 2 store the killer uid IF <Ref1.ISPLAYER> LOCAL.EXP_GAIN=<EVAL (RAND(110,120))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ELSE if <ref1.memoryfindtype.memory_ipet> ref1 = <ref1.memoryfindtype.memory_ipet.link.uid> LOCAL.EXP_GAIN=<EVAL (RAND(110,120))> //your choice. Ref1.TAG0.EXP += <dLOCAL.EXP_GAIN> Ref1.f_levelup //check if you have lvl up. Ref1.SYSMESSAGE @0044,0,1 Вы получаете <dLOCAL.EXP_GAIN> опыта. RETURN 0 ENDIF ENDIF
////////////////////////////*** Function LEVEL UP ***//////////////////////////// [FUNCTION f_levelup] IF <TAG0.EXP> >= <TAG0.LEVELUP> SYSMESSAGE @0021,0,1 Получен новый уровень! TAG0.EXP=0 TAG0.LEVELUP += 200 TAG0.MYLEVEL += 1 IF <TAG0.MYLEVEL> >= 2 TAG0.MYSKILLSFREE += 15 // добавляем очки для навыков TAG0.MYPARAMSFREE += 5 //добавляем очки для dex, str, int ENDIF //effect serv.NEWITEM=i_fx_sparkle new.P=<P> new.TYPE=t_normal new.TIMER=3 new.ATTR=attr_static|attr_move_never|attr_decay SOUND=284//1462
f_show_new_exp ELSE f_show_new_exp ENDIF
//////////////////////////////////////////////////////////////// [events e_give_exp] ON=@Death If !<brain> return 0 ELSE IF <eval <i.STR> + <i.DEX>> <= 150 i.events= +e_exp_gain_extra_small // i.say @0021,0,1 <eval <i.STR> + <i.DEX>> ELIF <eval <i.STR> + <i.DEX>> <= 260 i.events= +e_exp_gain_small // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 370 i.events= +e_exp_gain_small_media // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 480 i.events= +e_exp_gain_media // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 590 i.events= +e_exp_gain_media_large // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 610 i.events= +e_exp_gain_large // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 750 i.events= +e_exp_gain_large_extra // i.say @030 <eval <i.STR> + <i.DEX>> XP ELIF <eval <i.STR> + <i.DEX>> <= 850 i.events= +e_exp_gain_extra // i.say @030 <eval <i.STR> + <i.DEX>> XP ELSE i.events= +e_exp_gain_extra // i.say @030 <eval <i.STR> + <i.DEX>> XP Endif Endif
[function f_show_new_exp] dialogclose show_exp_poloska dialog show_exp_poloska
///*** Уровневое информационное окно ***/// [DIALOG show_exp_poloska] -4, -4 PAGE 0 NOMOVE //NOCLOSE gumppic 9 35 117 gumppic 13 39 118 dtext 50 31 2543 <eval ((100 * <TAG0.EXP>) / <TAG0.LEVELUP>))>%
[EOF]
Не помогает пробовал вот функция f_show_new_exp должна закрывать и открывать, как бы обновлять, но не работает и не пойму почему, а решение больше всего простое. Наверно надо отдохнуть и потом с новыми силами если никто не подскажет) А ну да это простейшая левел система на данный момент взята с официального форума, ну немного подогнал под себя (начал подганять)) )
|