ON=@HIT if <findlayer.1.isweapon> tag.WeaponDam = <eval rand(<findlayer.1.dam>)> elif <findlayer.2.isweapon> tag.WeaponDam = <eval rand(<findlayer.2.dam>)> else tag.WeaponDam = <eval({1 2})> // bjom kulakom endif // tag.WeaponDam eto dam samogo weapona oruzija // tag.armor=<src.ac> // armor zhertvi // nu a dalse vse zavisimosti mutite sami src.damage <eval <tag.damage>>,1,<uid> // bjom protivnika if rand(10)==1 src.combatdamagequip // lomaem armor endif if rand(20)==1 combatdamageweapon // lomaem oruzie endif // rost skillov nax if (<action>==skill_wrestling) rostet wres elif... if (<src.flags>&statf_hasshield) rostet parry endif rostet tactics return 1 // hardcode nax on=@hittry // vsegda popodaem ACTDIFF=0 // nelza bitj vendorov if (<act.brain>==brain_vendor) hear You cannot do this now attackoff return 1 endif // v gz mozno bitj tolko guild war IF (<REGION.FLAGS>®ion_flag_guarded) && (<ACT.REGION.FLAGS>®ion_flag_guarded) IF (<NOTOGETFLAG <ACT.UID>,0>==5) ELSE ATTACKOFF SYSMESSAGE You cannot attack them here. RETURN 1 ENDIF ENDIF // kogo bitj nelza, vrode kak v hardcode if (<uid>==<act.uid> ) || (<region.flags>&02000) || (<act.region.flags>&02000) || (<flags>&statf_invul) || (<flags>&statf_stone) || (<flags>&statf_freeze) || (<flags>&statf_dead ) || (<act.flags>&statf_stone ) || (<act.flags>&statf_invul) hear You cannot do this now attackoff return 1 endif ON=@GETHIT // cherez 2 minuti posle udara ja zabivaju svoih agressorov ( im ne dajutsa killi itd) FORCHARMEMORYTYPE MEMORY_SAWCRIME IF (<LINK>==<SRC.UID>) TIMER=120 ENDIF END FORC HARMEMORYTYPE MEMORY_HARMEDBY IF (<LINK>==<SRC.UID>) TIMER=120 ENDIF END // esli v paralyze if (<flags>&statf_freeze) flags &= ~statf_freeze findid.i_rune_paralyze.remove endi f // generator krovi IF (RAND(2)==1) SERV.NEWITEM=0122a NEW.DispID={0122a 1 0122b 1 0122c 1 0122d 1 0122e 1 0122f 1} NEW.P=<P> NEW.ATTR=attr_decay NEW.TIMER={1 2} ENDIF // esli bolse 128 damage crashitsa client 2.3 if <argn1> > 128 argn1=128 endif if <argn1> < 1 argn1=1 endif // delaem dam fizicheskim argn2=0 say ᤲ <eval <argn1>> // govorim uron (kstati cvet budet random v zavisimosti ot sili udara i damage magii toze otobrazaetsa). // Funckcii [function combatdamageweapon] if (<findlayer.1.isweapon>) findlayer.1.damage=1000, 2,<uid> elif (<findlayer.2.isweapon>) findlayer.2.damage=1000, 2,<uid> [function combatdamagequip] dorand 13 findlayer.2.damage=1000,2,<uid> findlayer(lay er_tunic).damage=1000,2,<uid> findlayer(layer_rob e).damage=1000,2,<uid> findlayer(layer_skirt).dam age=1000,2,<uid> findlayer(layer_cape).damage=100 0,2,<uid> findlayer(layer_tunic).damage=1000,2,<u id> findlayer(layer_chest).damage=1000,2,<uid> f indlayer(layer_arms).damage=1000,2,<uid> findlaye r(layer_helm).damage=1000,2,<uid> findlayer(layer _pants).damage=1000,2,<uid> findlayer(layer_legs) .damage=1000,2,<uid> findlayer(layer_collar).dama ge=1000,2,<uid> findlayer(layer_gloves).damage=10 00,2,<uid> enddo [FUNCTION attackoff] ACTION=-1 MEMORYFINDTYPE.memory_war_targ.REMOVE UPDATE [ function isweapon] if (<Type>==t_weapon_sword) || (<Type>==t_weapon_axe) || (<Type>==t_weapon_bow) || (<Type>==t_weapon_xbow) || (<Type>==t_weapon_fence) || (<Type>==t_weapon_mace_sharp) || (<Type>==t_weapon_mace_pick) || (<Type>==t_weapon_mace_crook) || (<Type>==t_weapon_mace_smith) || (<Type>==t_weapon_mace_staff) return 1 else return 0 endif |