Главная страницаМой профильРегистрацияВыходВход
Приветствую Вас Гость | RSS
Четверг
2025-08-07
9:24 AM
Forum
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Combats System
FelexSДата: Суббота, 2006-02-18, 5:40 PM | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 56
Репутация: 2
Статус: Offline
Kombat sistema... primer I ne juzajte locali ot nih ram zagruzaetsa konkretno...

Code
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



Читай Правила, за стаканом Молока.


Сообщение отредактировал FelexS - Суббота, 2006-02-18, 8:50 PM
 
  • Страница 1 из 1
  • 1
Поиск:


  Copyright Ultima  © 2007