Вот не плохой скрипт на вендора.
Код
[ITEMDEF i_ven]
DEFNAME=i_vendor_box
NAME=Vendor
ID=6178
TYPE=T_NORMAL
WEIGHT=0
CATEGORY=вендор
SUBSECTION=вендор
DESCRIPTION=место вендора
ON=@Create
ATTR=attr_move_never|attr_newbie|attr_static
COLOR=00
MORE2=100
ON=@CLICK
IF (<LINK>==04fffffff)
NAME=Vendor (Empty)
ELSE
NAME=<LINK.MEMORYFINDTYPE.MEMORY_IPET.LINK.NAME>'s vendor.
ENDIF
ON=@DropOn_Ground
MOREX=<P.X>
MOREY=<P.Y> 0
ON=@DCLICK
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
IF (<LINK>==04fffffff) || (<EVAL <LINK.UID>>==0)
LINK=04fffffff
DIALOG d_vendor_menu_buy
ELSE
IF (<LINK.MEMORYFINDTYPE.MEMORY_IPET.LINK>==<SRC.UID> ) || (<SRC.IsGM> )
DIALOG d_vendor_menu_owner
ELSE
SRC.SYSMESSAGE=Whese is not you Vendor
ENDIF
ENDIF
RETURN 1
ON=@TargON_Char
IF (<SRC.TARG.BRAIN> > 0)
SRC.SYSMESSAGE ~Вы не можете передать управление своим вендором NPC!
RETURN 1
ENDIF
LINK.SAY <SRC.NAME> bye bye.
SRC.SYSMESSAGE New owner: <SRC.TARG.NAME>!
SRC.TARG.SYSMESSAGE Are you new owner <LINK.NAME> Vendor.
LINK.MEMORYFINDTYPE.MEMORY_IPET.REMOVE
SRC.NEWITEM=i_memory
SRC.ACT.COLOR=memory_ipet
SRC.ACT.LINK=<SRC.TARG.UID>
SRC.ACT.LAYER=layer_special
SRC.ACT.CONT=<LINK>
LINK.SAY Hello <SRC.TARG.NAME>,my master.
NAME=<SRC.TARG.NAME>'s vendor.
RETURN 1
// -============================ Vendor Menu Buy ==============================-
[DIALOG d_vendor_menu_buy]
250,200
nomove
nodispose
gumppic 20 -70 3504 - центр
gumppic 30 -70 3504 - центр
gumppic 25 160 3507 - низ
gumppic 255 -70 3505 - правый бок
gumppic 15 -70 3503 - левый бок
gumppic 255 160 3508 - правай нижний уголок
gumppic 15 160 3506 - левый нижний уголок
text 30 25 0 0 // Do you want?
text 70 50 0 1 // Price <MORE2>
button 80 85 2074 2075 1 0 1 // Buy
button 160 85 2073 2072 1 0 0 // Cancel
[DIALOG d_vendor_menu_buy text]
Вы хотите Получить Вендора?
Buy price: 500000 gp.
[DIALOG d_vendor_menu_buy button]
ON=1 // BUY
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.SYSMESSAGE=You can't reach that.
RETURN 1
ENDIF
IF <SRC.RESTEST 500000 i_gold>
SRC.CONSUME=500000 i_gold
//IF !(<SRC.IsGM> )
// SRC.PAYUP <EVAL (<MORE2>*1000)>
//IF !(<VAR.ENOUGH> )
SRC.NEWNPC={c_vendor_male 1 c_vendor_female 1}
SRC.LINK.NAME=<LINK.MEMORYFINDTYPE.MEMORY_IPET.LINK.NAME>
LINK=<SRC.ACT.UID>
SRC.ACT.FINDLAYER(29).MORE1=10000
SRC.ACT.P=<MOREP>
SRC.ACT.FIX
src.act.flags=<src.act.flags>|04
NAME=<SRC.NAME>'s vendor.
SRC.NEWITEM=i_memory
SRC.ACT.COLOR=memory_ipet
SRC.ACT.LINK=<SRC.UID>
SRC.ACT.LAYER=layer_special
SRC.ACT.CONT=<LINK>
RETURN 1
ELSE
SRC.SYSMESSAGE 500000
ENDIF
ENDIF
RETURN 1
ON=0 // CANCEL
// -============================ Vendor Menu Owner ============================-
[DIALOG d_vendor_menu_owner]
200,200
resizepic 0 0 3500 400 500 // Background
text 120 20 53 0 // Menu Text
gumppic 40 45 2091 // Line
gumppic 150 45 2091 // Line
button 50 70 210 211 1 0 1 // Open Vendor sell box Button
text 80 70 0 2 // Open Vendor box Text
button 50 100 210 211 1 0 2 // Close/Open Button
text 80 100 0 3 // Close/Open Text
button 50 130 210 211 1 0 3 // Change Vendor sex Button
text 80 130 0 4 // Change Vendor sex Text
button 50 160 210 211 1 0 4 // Transfer Vendor Button
text 80 160 0 5 // Transfer Vendor Text
button 50 190 210 211 1 0 5 // Destroy Vendor Button
text 80 190 0 6 // Destroy Vendor Text
button 50 190 210 211 1 0 5 // Destroy Vendor Button
text 80 220 0 12 // Destroy Vendor Text
button 50 220 210 211 1 0 6 // Destroy Vendor Button
gumppic 30 440 92 // Status Gumps
//gumppic 80 440 93 // Status Gumps
//gumppic 190 440 93 // Status Gumps
//gumppic 240 440 93 // Status Gumps
//gumppic 340 440 94 // Status Gumps
//gumppic 440 440 94 // Status Gumps
text 80 445 0 7 // Status Cash
text 80 250 0 8
text 80 290 0 9
text 80 320 0 10
text 80 350 0 11
[DIALOG d_vendor_menu_owner text]
Персоналный Вендор.Меню.
Vendor system, CraZy Heaven. 2004
Открыть банк вендора ( Inventory )
<QVAL <LINK.TAG.SELL> ? Закрыть:Открыть> Вендора (sell for another players)
Сменить пол. (male/female)
Передать Вендора
Удалить Вендора
Cash: <EVAL <LINK.FINDLAYER.29.MORE1>>, Pабочие дни : <EVAL (<LINK.FINDLAYER.29.MORE1> / <LINK.HIREDAYWAGE> )>
команды :
drop all - заставить вендора раздется.
cash - забирает деньги у продавца.
price -ѵ устанавливает цену на товар.
Сменить имя
[DIALOG d_vendor_menu_owner button]
ON=1 // Open vendor sell box
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
LINK.FINDLAYER.26.OPEN
ON=2 // Open/Close vendor
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
IF (<EVAL 0<LINK.TAG.SELL>>==0)
LINK.SAY I'm opening for another players now.
LINK.TAG.SELL=1
ELSE
LINK.SAY I'm closing for another players now.
LINK.TAG.SELL=0
ENDIF
ON=3 // Change vendor Sex
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
IF (<LINK.BODY>==c_man)
LINK.BODY=c_vendor_female
LINK.OBODY=c_vendor_female
LINK.NAME=#NAMES_HUMANFEMALE
LINK.FINDLAYER.16.REMOVE
ELSE
LINK.BODY=c_vendor_male
LINK.OBODY=c_vendor_male
LINK.NAME=#NAMES_HUMANMALE
ENDIF
LINK.FIX
ON=4 // transfer
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
TARGET Select Target
RETURN 1
ON=5 // destroy
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
LINK.REMOVE
LINK=04fffffff
ON=6 // Change vendor name
IF (<SRC.TARG.TOPOBJ.DISTANCE> > 2)
SRC.MESSAGE=You can't reach that.
RETURN 1
ENDIF
LINK.NAME=<LINK.MEMORYFINDTYPE.MEMORY_IPET.LINK.NAME>
RETURN 1
[CHARDEF c_vendor_male]
NAME=#NAMES_HUMANMALE the Vendor
ID=c_man
CAN=mt_equip
HIREDAYWAGE=0
DESIRES=i_gold,e_notoriety
AVERSIONS=t_trap,t_eerie_stuff
TSPEECH=spk_vendor
TEVENTS=e_vendor
CAN=0
ON=@Create
NPC=brain_vendor
COLOR=colors_skin
FLAGS=000000005
NEED=i_gold
FOOD=32767
TAG.HIREDWAGE 0
STR=1000
ITEM=equip_VENDOR
On=@GetHit
return 1
ON=@Hit
RETURN 1
CATEGORY=Civilized
SUBSECTION=Tradesmen
DESCRIPTION=Vendor
[CHARDEF c_vendor_female]
NAME=#NAMES_HUMANFEMALE the Vendor
ID=c_woman
CAN=0
HIREDAYWAGE=200
TSPEECH=spk_vendor
TEVENTS=e_vendor
ON=@Create
NPC=brain_vendor
COLOR=colors_skin
FLAGS=028000005
NEED=i_gold
FOOD=32767
STR=1000
ITEM=equip_VENDOR_F
On=@GetHit
return 1
CATEGORY=Civilized
SUBSECTION=Tradesmen
DESCRIPTION=Vendor Female
[ITEMDEF i_mem_Owner]
ID=I_memory
type=t_eq_sript
ON=@Create
TIMER=200
ON=@TIMER
remove
[Speech sp_owner]
//допустим сериал владельца у вендора в more2
ON=*inventory*
if (<FINDID(i_mem_Owner)) && (<more2>!=<src.serial> )
return 1
ELSE
if !(<FINDID(i_mem_Owner))
newitem i_mem_Owner
act.equip
endif
ENDIF
[ITEMDEF i_vendor_use]
ID=i_pet_man
DEFNAME=i_vendor_use
NAME=[DO NOT REMOVE]
TYPE=t_normal
ON=@Create
ATTR=08090
[SPEECH spk_vendor]
On=*time*
if <typedef.hiredaywage>
hire
return 1
endif
On=*buy*
IF (<FINDID.i_vendor_use.LINK>==<SRC.UID> )
SAY You own this shop, just take what you want.
BUY
RETURN 1
ELSE
BUY
RETURN 1
ENDIF
On=dupe
[EVENTS e_vendor]
On=@NPCSeeNewPlayer
if <ismypet>
return 0
endif
if <distance> > 3
return 1
endif
face
return 0