Если те лут нужен то вот поприкольнее и причём будет одевтаься в это (IMG:
style_emoticons/default/laugh.gif)
Код
///////////add e_looting to npc ! /////////////////
[defname looting_constants]
loot.considerweight 1
loot.dropyunk 1
[EVENTS e_looting]
on=@hit
if !<src.brain> // loot players only
//if a char is hit, mark him for looting
src.events +e_looted
src.tag.looter=<uid>
endif
[EVENTS e_looted]
on=@death
if ( <distance <tag.looter>> < 3 )
var.looting.act=<act.uid>
act=<tag.looter>
//if <serv.itemdef.i_gold.weight>==0
// f_loot_type t_gold
//endif
if ( <act.weight>*<def.loot.considerweight> < (<act.weightmax>/2) )
//f_loot_type t_gold //in case gold does weigh something, get it here
f_loot_type t_gem
f_loot_type t_jewelry
f_loot_type t_rune
if (<act.can>&mt_equip) //search for equipment, if it's usefull
f_addloot_layer layer_hand1
f_addloot_layer layer_hand2
f_addloot_layer layer_shoes
f_addloot_layer layer_pants
f_addloot_layer layer_shirt
f_addloot_layer layer_helm
f_addloot_layer layer_gloves
f_addloot_layer layer_collar
f_addloot_layer layer_half_apron
f_addloot_layer layer_chest
f_addloot_layer layer_tunic
f_addloot_layer layer_arms
f_addloot_layer layer_cape
f_addloot_layer layer_robe
f_addloot_layer layer_skirt
f_addloot_layer layer_legs
// Снимет старый армор - оденет новый
act.f_redress
endif
else
// weight maximum reached
endif
act=<var.looting.act>
endif
events -e_looted
tag.looter
[function f_loot_type]
if <act.ischar>
if <findtype.<args>>
obj=<findtype.<args>>
obj.attr = <obj.attr>&~attr_newbie
act.bounce <obj.uid>
f_loot_type <args>
return 1
endif
endif
return 0
[function f_addloot_layer]
if <findlayer.<args>> //is there an item to loot?
obj=<findlayer.<args>.uid>
if !(<obj.attr>&attr_newbie) //Чтобы нуби вещи не лутил
if <act.findlayer.<args>>
if ((<eval <act.findlayer.<args>.armor>>*<act.findlayer.<args>.more1l>*100)/<act.findlayer.<args>.more1h>)<((<eval <obj.armor>>*<obj.more1l>*100)/<obj.more1h>)
act.bounce <obj.uid>
endif
else
act.bounce <obj.uid>
endif
endif
endif
[function f_drop_yunk]
if <findlayer.layer_pack.findtype.t_armor>
drop <findlayer.layer_pack.findtype.t_armor.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_armor_leather>
drop <findlayer.layer_pack.findtype.t_armor_leather.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_sword>
drop <findlayer.layer_pack.findtype.t_weapon_sword.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_axe>
drop <findlayer.layer_pack.findtype.t_weapon_axe.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_fence>
drop <findlayer.layer_pack.findtype.t_weapon_fence.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_staff>
drop <findlayer.layer_pack.findtype.t_weapon_mace_staff.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_smith>
drop <findlayer.layer_pack.findtype.t_weapon_mace_smith.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_sharp>
drop <findlayer.layer_pack.findtype.t_weapon_mace_sharp.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_mace_pick>
drop <findlayer.layer_pack.findtype.t_weapon_mace_pick.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_bow>
drop <findlayer.layer_pack.findtype.t_weapon_bow.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_weapon_xbow>
drop <findlayer.layer_pack.findtype.t_weapon_xbow.uid>
f_drop_yunk
elseif <findlayer.layer_pack.findtype.t_shield>
drop <findlayer.layer_pack.findtype.t_shield.uid>
f_drop_yunk
endif
[function f_unequipall]
unequip <findlayer.layer_hand1.uid>
unequip <findlayer.layer_hand2.uid>
unequip <findlayer.layer_shoes.uid>
unequip <findlayer.layer_pants.uid>
unequip <findlayer.layer_shirt.uid>
unequip <findlayer.layer_helm.uid>
unequip <findlayer.layer_gloves.uid>
unequip <findlayer.layer_ring.uid>
unequip <findlayer.layer_collar.uid>
unequip <findlayer.layer_half_apron.uid>
unequip <findlayer.layer_chest.uid>
unequip <findlayer.layer_wrist.uid>
unequip <findlayer.layer_tunic.uid>
unequip <findlayer.layer_ears.uid>
unequip <findlayer.layer_arms.uid>
unequip <findlayer.layer_cape.uid>
unequip <findlayer.layer_robe.uid>
unequip <findlayer.layer_skirt.uid>
unequip <findlayer.layer_legs.uid>
[function f_redress]
f_unequipall
equiparmor
equipweapon
if <var.dropyunk>
f_drop_yunk //get rid of unused items
endif
[EOF]
Добавленно: [mergetime]1118573559[/mergetime]
(RUO)GM MonsterА можно ещё ТОМУ монстру с ТЕМ движком сделать ТУРБО скорость (IMG:
style_emoticons/default/laugh.gif)
Код
//////////////////////add e_monster_turbo to npc //////////////////////////
[defname turbo_constants]
turbo.speed=1 //how many steps will NPCs make in one; don't set this too high or NPCs "jump"
[function turbo]
if (!<ischar>)
message use this on NPCs only
return 0
endif
if (<isplayer>)
message use this on NPCs only
return 0
endif
if (<restest i_monster_turbo>)||(<tag0.turbo>)||(<isevent.e_monster_turbo>)
message turbo allready active
return 0
endif
events +e_monster_turbo
message turbo installed!
return 1
[Events e_monster_turbo]
on=@NPCActFollow
call f_monster_turbo
on=@NPCActFight
call f_monster_turbo
[function f_monster_turbo]
if !(<tag0.turbo>) //is it active?
serv.newitem i_monster_turbo
tag.turbo=<serv.lastnewitem.uid>
obj=<tag.turbo>
obj.timerd 2
obj.link=<uid>
obj.p=<p>
endif
on=@death
if (<tag0.turbo>)
obj=<tag.turbo>
obj.remove
endif
[itemdef i_monster_turbo]
id=i_memory
type=t_script
name=Monsterturbo
on=@create
attr=attr_invis
on=@timer
if !((<link.action>==Skill_Wrestling)||(<link.action>==Skill_Macefighting)||(<link.action>==Skill_Swordsmanship)||(<link.action>==Skill_Fencing)||(<link.action>==064))
link.tag.turbo
remove
return 1
endif
if (<link.distance <link.act.uid>> > 1)
for x 1 <def.turbo.speed>
link.f_run
link.f_face <link.act.uid>
endfor
link.timer //reset chartimer for instant combat action
endif
timerd 2
p=<link.p>
update
return 1
[function f_run]
doswitch <dir>
run n
run ne
run e
run se
run s
run sw
run w
run nw
enddo
[function f_face]
if (<uid.<args>.ischar> && <ischar>)
trysrc <args> face
endif
[EOF]
Если Вас забанили , значит на Вас хотят скинуть вину...