AL BENİMKİ BU ÇALIŞIYOR
//home system
//01 ocak 2008
[ITEMDEF 0bd1]
//brass sign
DEFNAME=i_sign_brass
TYPE=t_script
TDATA2=064
FLIP=1
RESOURCES=2 I_BOARD, 1 i_ingot_iron
CATEGORY=Decoration - Signs
SUBSECTION=Blank
DESCRIPTION=Brass Blank
DUPELIST=0bd2
on=@Click
message <name>
return 1
On=@DClick
f_housemenu
[ITEMDEF 0bd2]
//brass sign
DEFNAME=i_sign_brass_2
DUPEITEM=0bd1
TDATA2=03D
[function f_eqhmkeylayer]
if (<findlayer.101>=0)
src.newitem i_memory_keyring
equip <src.act>
endif
[ITEMDEF i_memory_keyring]//used as key
id i_pouch
layer=101
name=Key layer
[function f_housemenu]
src.f_eqhmkeylayer
link.region.events +r_house_public
link.region.tag.signp <p>
link.region.tag.homesign <uid>
TIMER=60*60*24*60
if (!<more2>)//not yet used, launching the basic setting
if (<link.isitem>=0)//its not a multi
src.newitem i_worldgem_bit
link=<src.act>
link.attr=0b0
link.p=<p>
link.type=t_multi
link.more1=<src.uid>
endif
link.more2=<uid>//refresh
link.region.tag.menu=<link>
src.try uid.<uid>.tag.lockit<uid>=1//sets the basic usability of the menu for friends and above
src.newitem i_pouch//friends
src.act.attr=attr_invis|attr_move_never
src.act.P=<P.x> <P.y> <eval <p.z>+22>
src.act.more1=1
more1=<src.act.UID>
src.act.link=<uid>
src.act.name=dost
src.newitem i_pouch//coowners
src.act.attr=attr_invis|attr_move_never
src.act.P=<P.x> <P.y> <eval <p.z>+20>
src.act.more1=2
more2=<src.act.UID>
src.act.link=<uid>
src.act.name=ortak
src.newitem i_key_gold//memory owner
src.act.cont=<src.findlayer.101.uid>
src.act.more1=<link>
src.act.more2=3
src.act.link=<link>
src.act.name=owner:<name>
tag.ownermemUID=<src.act>
src.sysmessage @55 Ev kurulumu tamamlandi. Ev sahibi <uid.<link.more1>.name>
return 1
endif
var.itemlevel=<eval 0<tag.lockit<uid>>>
f_findrank <src.uid>
f_namelevel <var.phrank>
var.phranks=<var.namestr>
if (<var.itemlevel> <= <var.phrank>)
sDIALOG house_menu
else
sDIALOG dialog_sign
endif
return 1
[function f_namelevel]
if (<argn>=0)
var.namestr=misafir
elseif (<argn>=1)
var.namestr=dost
elseif (<argn>=2)
var.namestr=ortak
elseif (<argn>=3)
var.namestr=sahip
elseif (<argn>=4)
var.namestr=bee
endif
[DIALOG house_menu]
6,5
resizepic 0 0 3500 185 340
gumppic 20 20 100
dhtmlgump 40 40 100 60 0 0 <name>
dhtmlgump 40 70 150 20 0 0 Ev Sahibi:
dhtmlgump 40 85 150 20 0 0 <uid.<link.more1>.name>
dhtmlgump 40 140 150 20 0 0 <qval <tag.bankactivated> ? banka ac : Bankayi Aktif Et[500k] (500.000gp)>
dhtmlgump 40 160 150 20 0 0 Ev Ismini Degistir.
dhtmlgump 40 180 150 20 0 0 **************************
dhtmlgump 40 200 160 30 0 0 Dost Ekle
dhtmlgump 40 220 160 20 0 0 Dost Listesi
dhtmlgump 40 240 160 20 0 0 Ortak Ekle
dhtmlgump 40 260 160 20 0 0 Ortak Listesi
dhtmlgump 40 280 160 20 0 0 Evi Kaldir
dhtmlgump 40 300 160 20 0 0 Evi Devret
button 20 140 56 55 1 0 1
button 20 160 56 55 1 0 2
button 20 200 56 55 1 0 4
button 20 220 56 55 1 0 5
button 20 240 56 55 1 0 6
button 20 260 56 55 1 0 7
button 20 280 56 55 1 0 8
button 20 300 56 55 1 0 9
[DIALOG house_menu TEXT]
[DIALOG house_menu BUTTON]
on=0
dialogclose d_house_rename
dialogclose d_hmlist
on=1
if (0<tag.bankactivated>)
src.bankself
else
src.pay 500000//Use you own
if (<var.enough>)
tag.bankactivated=1
src.sysmessage @55 Banka aktif edildi.
endif
endif
on=2//rename
f_checkrights 2
if <var.rights>
sdialog d_house_rename
dialogclose d_hmlist
endif
on=4//target friend
f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name=dost olarak ekle
src.act.link=<uid>
src.act.more1=1
src.act.equip
endif
on=5//friend list
f_checkrights 0
if <var.rights>
f_hmlist <more1>
endif
on=6//add coowner
f_checkrights 2
if <var.rights>
src.newitem i_target_house
src.act.name=ortak olarak ekle
src.act.link=<uid>
src.act.more1=2
src.act.equip
endif
on=7//coowner list
f_checkrights 0
if <var.rights>
f_hmlist <more2>
endif
on=8//redeed
f_checkrights 2
if <var.rights>
src.newitem=i_deed
src.act.more=<link.baseid>
src.act.name=<link.name>
src.act.bounce
src.newitem=i_redeed
src.act.link=<link.uid>
src.act.tag.friend=<more1>
src.act.tag.coowner=<more2>
src.act.equip
endif
on=9 //transfer ownership
f_checkrights 2
if <var.rights>
src.newitem i_target_house
src.act.name owner
src.act.link <uid>
src.act.more1 3
src.act.equip
endif
[function f_checkrights]
var.rights=
f_findrank <src.uid>
if (<var.phrank> > <argn>)
var.rights=1
else
src.sysmessage @55 Bunu yapmaya yetkiniz yok.
endif
[function f_findrank]
var.phrank=0
if (<src.uid.<argn>.isgm>)
var.phrank=4
elseif (<link.more1>=<argn>)
src.try uid.<tag.ownermemUID>.more1=<link>
src.try uid.<tag.ownermemUID>.morep=<p>
src.try uid.<tag.ownermemUID>.name=owner:<name>
var.phrank=3
else
var.theperson=<argn>
morey=<src.uid.<more1>.rescount>
morex=0
f_findrankloop <more1>
morey=<src.uid.<more2>.rescount>
morex=0
f_findrankloop <more2>
endif
[function f_findrankloop]
if (<morex> < <morey>)
src.try uid.<args>.findcont.<morex>.name=<src.uid.<args>.findcont.<morex>.link.topobj.name>
if (<src.uid.<argn>.findcont.<morex>.link.topobj.uid>=<var.theperson>)
var.phrank=<src.uid.<argn>.more1>
endif
morex=<morex>+1
f_findrankloop <args>
endif
endif
[regiontype r_house_public]
On=@Enter
if (<src.ischar>)
src.events +e_house
src.tag.homesign <tag.homesign>
endif
On=@Exit
src.events -e_house
[events e_house]
On=@Login
try uid.<region.tag.homesign>.f_findrank <src.uid>
if !(<var.phrank>)
src.p <region.tag.signp>
src.update
endif
On=@ItemClick
if (<act.region.uid> == <region.uid>)
if !(<act.cont>)
if (<act.attr>&attr_move_never)
if !((<act.baseid> == i_strong_box) || (<act.type> == t_door) || (<act.type> == t_door_locked) || (<act.type> == t_sign_gump) || (<act.type> == t_stone_guild))
act.message [sabit]
endif
endif
endif
endif
[itemdef i_target_house]
id=i_memory
type=t_eq_script
on=@timer
remove
return 0
on=@equip
if (<more1> < 3)
target @55 Kimi <name>mek istiyorsunuz?
elseif (<more1> = 3)
target @55 Evi kime devretmek istiyorsunuz?
elseif (<more1> = 4)
target @55 Kimi kovmak istiyorsunuz?
elseif (<more1> = 5)
target @55 Sileceginiz kutuyu secin.
elseif (<more1> = 6)
target @55 Yukari kaldiracaginiz sabit esyayi secin.
elseif (<more1> = 7)
target @55 Asagi indireceginiz sabit esyayi secin.
elseif (<more1> = 8)
target @55 Sabitleyeceginiz esyayi secin.
elseif (<more1> = 9)
target @55 Sabitligini kaldiracaginiz esyayi secin.
endif
timer 60
return 1
on=@targon_item
if (<src.targ.region.uid>=<link.region.uid>)
if ((<src.targ.type> == t_stone_guild) || (<src.targ.type> == t_spell) || (<src.targ.baseid> == i_corpse) || (<src.targ.type> == t_blood) || (<src.targ.type> == t_door) || (<src.targ.type> == t_door_locked) || (<src.targ.baseid> == i_pouch) || (<src.targ.baseid> == i_sign_brass))
src.sysmessage @55 Buna dokunamazsınız.
else
if (<more1> = 5) && (<src.targ.attr>&attr_move_never) && (<src.targ.baseid> = i_strong_box)
if (<src.targ.more2> == <src.uid>) || (<src.targ.link.more1> == <src.uid>)
try src.targ.link.tag.strongbox<src.targ.more2>
src.targ.remove
else
src.sysmessage @55 Bu kutu sizin degil.
endif
elseif (<more1> = 6) && (<src.targ.attr>&attr_move_never)
if (0<src.targ.tag.updown> > 9)
src.sysmessage @55 Daha fazla kaldiramazsiniz.
else
src.targ.nudgeup 1
src.targ.tag.updown 0<src.targ.tag.updown>
src.targ.tag.updown <eval <src.targ.tag.updown> +1>
endif
elseif (<more1> = 7) && (<src.targ.attr>&attr_move_never)
if (0<src.targ.tag.updown> < 1)
src.sysmessage @55 Daha fazla indiremezsiniz.
else
src.targ.nudgedown 1
src.targ.tag.updown 0<src.targ.tag.updown>
src.targ.tag.updown <eval <src.targ.tag.updown> -1>
endif
elseif (<more1> = 8) && !(<src.targ.attr>&attr_move_never)
if (<src.targ.cont>)
src.sysmessage @55 Sabitleyeceginiz esya yerde durmali.
elseif !(<src.targ.link> == 04fffffff)
src.sysmessage @55 Buna dokunamazsınız.
else
src.targ.link <link.uid>
src.targ.attr <src.targ.attr>&~attr_decay
src.targ.attr <src.targ.attr>|attr_move_never
src.targ.timer -1
src.targ.message [sabit]
if (<src.targ.type>) == t_book)
src.targ.more 1
endif
src.targ.update
endif
elseif (<more1> = 9) && (<src.targ.attr>&attr_move_never)
if (<src.targ.baseid> == i_strong_box)
src.sysmessage @55 Buna dokunamazsınız.
else
src.targ.link 04fffffff
if (<src.targ.attr> == 04018)
src.targ.attr attr_decay
else
src.targ.attr <src.targ.attr>&~attr_move_never
src.targ.attr <src.targ.attr>|attr_decay
endif
src.targ.timer <eval (<serv.decaytimer> * 60)>
src.targ.message [sabit degil]
if (<src.targ.type> == t_book)
src.targ.more 0
endif
src.targ.update
endif
endif
endif
else
src.sysmessage @55 Esya evde degil.
return 1
endif
remove
return 1
on=@targon_char
if (<src.targ.npc> > 0) && (<more1> < 4)
src.sysmessage @55 Sadece oyuncular icindir.
return 1
else
link.f_findrank <src.targ.uid>
if (<var.phrank>)//&&(<var.phrank> < 4)
src.sysmessage @55 <src.targ.name> evin uyesi.
return 1
elseif (<more1> = 1)||(<more1> = 2)
if (<src.targ.region.uid>=<link.link.region.UID>)
src.newitem i_key_gold
var.memoryuid=<src.targ.act>
src.act.cont=<src.targ.findlayer.101.uid>
src.act.more1=<link.link> //as code for doors
src.act.more2=<more1> //rank
src.newitem i_relating_crystal
src.act.more1=<src.UID>
src.act.cont=<link.more<eval <more1>>>
src.act.link=<src.targ.uid>
src.sysmessage @55 <src.targ.name> evinize <name>ndi.
src.targ.sysmessage @55 Eve <name>ndiniz.
else
src.sysmessage @55 <src.targ.name> evinizde degil.
return 1
endif
elseif (<more1>=3)//transfer of ownership, if the owner has been removed from the game,a new memory item must be created and set as tag.ownermemuid on the brass sign
src.try uid.<link.tag.ownermemUID>.cont=<src.targ.findlayer.101.UID>
link.link.more1=<src.targ.uid>
src.sysmessage @55 Devretme islemi tamamlandi.
src.targ.sysmessage @55 Evin yeni sahibi sizsiniz.
elseif (<more1> = 4)
if (<src.targ.region.uid>=<link.region.UID>)
src.targ.go <link.P>
src.targ.sysmessage @55 <src.name> sizi banladi.
else
src.sysmessage @55 <src.targ.name> evinizde degil.
return 1
endif
endif
endif
remove
return 1
[speech spk_house_cmds]
on=place a strongbox
try uid.<more2>.f_checkrights 1
if <var.rights>
if !(0<tag.strongbox<src.uid>>)
src.newitem i_strong_box
src.act.p <src.p>
src.act.link <uid>
src.act.more2 <src.uid>
try tag.strongbox<src.uid> <src.act.uid>
else
src.sysmessage @55 Zaten kutunuz var.
endif
return 1
endif
on=remove this
try uid.<more2>.f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name remove this
src.act.link <uid>
src.act.more1 5
src.act.equip
endif
on=item up
try uid.<more2>.f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name item up
src.act.link <uid>
src.act.more1 6
src.act.equip
endif
on=item down
try uid.<more2>.f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name item down
src.act.link <uid>
src.act.more1 7
src.act.equip
endif
on=lock this down
try uid.<more2>.f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name lock this down
src.act.link <uid>
src.act.more1 8
src.act.equip
endif
on=release this
try uid.<more2>.f_checkrights 1
if <var.rights>
src.newitem i_target_house
src.act.name release this
src.act.link <uid>
src.act.more1 9
src.act.equip
endif
on=i ban thee
try uid.<more2>.f_checkrights 0
if <var.rights>
src.newitem i_target_house
src.act.name i ban thee
src.act.link <uid.<more2>.uid>
src.act.more1 4
src.act.equip
endif
on=*help*
try uid.<more2>.f_checkrights 0
if <var.rights>
try uid.<more2>.sDIALOG house_help
endif
on=*menu*
try uid.<more2>.f_checkrights 0
if <var.rights>
try uid.<more2>.sDIALOG house_menu
endif
[itemdef i_strong_box]
defname i_strong_box
type t_container
id i_box_brass
name strongbox
tdata2 04b
On=@Create
timer -1
attr attr_move_never
On=@Click
if (<src.region.uid> == <link.uid>)
message <src.uid.<more2>.name>
endif
if (<rescount> > 0)
message a <name> [<rescount>,<eval ((<weight> / 10) - <typedef.weight>)>]
else
message a strongbox [esya yok]
endif
return 1
On=@DClick
if ((<link.more> == <src.uid>) || (<more> == <src.uid>)) || (<src.account.plevel> > 6) // evin veya kasanin sahibi acabilir
return 0
else
return 1
endif
On=@PickUp_Ground
return 1
endif
[ITEMDEF i_relating_crystal]
id=i_crystal_red
type=t_script
[DIALOG dialog_sign]
0,0
gumppic 100 100 100
dhtmlgump 120 120 100 60 0 0 <name>
[DIALOG dialog_sign TEXT]
[DIALOG d_hmlist]
-185,0
resizepic 190 5 3500 200 210
dhtmlgump 220 170 80 20 0 0 sil
dhtmlgump 240 50 160 20 0 0 <QVAL <morex> <morey> ? <src.uid.<tag.what>.findcont.<morey>.link.name> : >
dhtmlgump 240 70 160 20 0 0 <QVAL <morex> <eval <morey>+1> ? <src.uid.<tag.what>.findcont.<eval <morey>+1>.link.name> : >
dhtmlgump 240 90 160 20 0 0 <QVAL <morex> <eval <morey>+2> ? <src.uid.<tag.what>.findcont.<eval <morey>+2>.link.name> : >
dhtmlgump 240 110 160 20 0 0 <QVAL <morex> <eval <morey>+3> ? <src.uid.<tag.what>.findcont.<eval <morey>+3>.link.name> : >
dhtmlgump 240 130 160 20 0 0 <QVAL <morex> <eval <morey>+4> ? <src.uid.<tag.what>.findcont.<eval <morey>+4>.link.name> : >
dhtmlgump 240 150 160 20 0 0 <QVAL <morex> <eval <morey>+5> ? <src.uid.<tag.what>.findcont.<eval <morey>+5>.link.name> : >
dhtmlgump 265 20 70 20 0 0 <src.uid.<tag.what>.name>: <morex>
button 220 50 56 55 1 0 1
button 220 70 56 55 1 0 2
button 220 90 56 55 1 0 3
button 220 110 56 55 1 0 4
button 220 130 56 55 1 0 5
button 220 150 56 55 1 0 6
button 220 20 2223 2223 1 0 7
button 350 <QVAL <morex> (<morey>+5) ? 20 : 2000> 2224 2224 1 0 8
[DIALOG d_hmlist TEXT]
[DIALOG d_hmlist BUTTON]
on=0
tag.what=
on=1
f_hmremove <morey>
on=2
f_hmremove <eval <morey>+1>
on=3
f_hmremove <eval <morey>+2>
on=4
f_hmremove <eval <morey>+3>
on=5
f_hmremove <eval <morey>+4>
on=6
f_hmremove <eval <morey>+5>
on=7
if (<morey> < 5)
sdialog house_menu
tag.what=
else
morey=<eval <morey>-6>
dialog d_hmlist
endif
on=8
morey=<eval <morey>+6>
dialog d_hmlist
[function f_hmremove]
if <morex> > <argn>
f_checkrights <src.uid.<tag.what>.more>
if <var.rights>
//src.try uid.<tag.what>.findcont.<argn>.link.sysmessage <src.uid.<tag.what>.link.name> seni kovdu
src.try uid.<tag.what>.findcont.<argn>.remove
f_hmlist <tag.what>
endif
else
sdialog house_menu
endif
[function f_hmlist]
tag.what=<argn>
morex=<src.uid.<argn>.rescount>
morey=0
dialogclose d_hmlist
dialog d_hmlist
[ITEMDEF i_redeed]
DEFNAME=i_redeed
ID=i_crystal_green
NAME=Re-Deed Crystal
TYPE=t_eq_script
ON=@Equip
try uid.<tag.friend>.remove
try uid.<tag.coowner>.remove
src.findlayer.29.findid.i_key_copper.remove
src.findid.i_key_copper.remove
LINK.REMOVE
remove
RETURN 1
[DIALOG d_house_rename]
-185,0
resizepic 190 5 3500 250 100
resizepic 220 25 3000 200 22
dhtmlgump 240 60 160 20 0 0 degistir
dhtmlgump 320 60 160 20 0 0 iptal
button 220 60 56 55 1 0 1
button 300 60 56 55 1 0 2
dtextentry 225 30 185 25 0 0 <NAME>
[DIALOG d_house_rename TEXT]
[DIALOG d_house_rename BUTTON]
ON=1
NAME <ARGTXT[0]>
sdialog house_menu
RETURN 1
ON=2
sdialog house_menu
[function pay]
if !(<args>) //empty command line?
var.enough=1
return 1 //then do nothing
endif
if (<src.isgm>)
if (<src.account.plevel> < 7)
src.sysmessage @55 Yetkililer bu islemi gercekletiremez.
var.enough=0
return 1
else
src.sysmessage @55 Gmden parami
var.enough=1
return 1
endif
endif
var.enough=0 //if not enough gold, var.enough will be '0'
var.totalgold=<findlayer.21.rescount i_gold> + <bankbalance>
if (<eval <args>> > <var.totalgold>) //the amount to pay is more then you own??
src.sysmessage @55 Bankanizda <eval <args>> gp yok.//refuse transaction
else //you have enough to pay
var.enough=1 //allow you to check transaction later
if (<argn> > <src.findlayer.21.rescount i_gold>)
goldtopack <eval <argn>-<src.findlayer.21.rescount i_gold>> //put the needed money in the backpack
endif
payamount <args> //pay the needed amount
endif
[function goldtopack] //move enough gold so that we can pay
//argn- amount of gold left to move
var.found=(<argn> - <src.findlayer.29.findid.i_gold.amount>) //amount found
if (<var.found> > 0) //pile is not big enough, so move it all
src.findlayer.29.findid.i_gold.cont=<src.findlayer.21.uid> // transfer to backpack
goldtopack <var.found> //get the next pile of gold
else //not entire pile needed
var.left=(0 - <var.found>) // get the amount of money left in this pile
if (<var.left>)
src.findlayer.29.findid.i_gold.amount <var.left> //set this amount
else
src.findlayer.29.findid.i_gold.remove
endif
src.newitem i_gold //create a new pile of gold
src.act.amount <args> //the needed amount
src.act.cont=<src.findlayer.21.uid> //place in backpack
endif //done
[function payamount]
var.counter=<eval <args>> //amount left to pay
if (<var.counter> > 65000) // more then 65000 left to pay??
src.consume 65000 i_gold //consume 65000 first
var.counter=(<var.counter> - 65000)
payamount <var.counter> //then get the rest
else
src.consume <args> i_gold //consume the rest of the needed amount
endif // we are finished
[DIALOG house_help]
5,5
resizepic 0 0 3500 360 370
dhtmlgump 120 40 300 60 0 0 <def.fontred>> Ev Yardim Menusu
dhtmlgump 40 70 300 20 0 0 <def.fontwhite>>i ban thee
dhtmlgump 40 85 300 20 0 0 Eve uye veya dost olmayan kişileri dişari atar.
dhtmlgump 40 105 300 20 0 0 <def.fontwhite>>i wish toplace a strongbox
dhtmlgump 40 120 300 20 0 0 Evinize kilitli bir kasa koymanıza yarar.
dhtmlgump 40 140 300 20 0 0 <def.fontwhite>>i wish to remove this
dhtmlgump 40 155 300 20 0 0 Evinizde ki kilitli kasayı silmenize yarar.
dhtmlgump 40 175 300 20 0 0 <def.fontwhite>>i wich to lock this down
dhtmlgump 40 190 300 20 0 0 Bir esyayı ev icerisinde sabitlemeye yarar.
dhtmlgump 40 210 300 20 0 0 <def.fontwhite>>item up
dhtmlgump 40 225 300 20 0 0 Bir esyayı 1 derece havaya kaldirmaniza yarar.
dhtmlgump 40 245 300 20 0 0 <def.fontgold>>Bir eşya yalnızca 10 derece yukarı kaldırılır.
dhtmlgump 40 260 300 20 0 0 <def.fontwhite>>item down
dhtmlgump 40 275 300 20 0 0 Bir eşyayı 1 derece aşağıya indirmenize yarar.
dhtmlgump 40 295 300 20 0 0 <def.fontwhite>>menu
dhtmlgump 40 310 300 20 0 0 Ev tabelasindaki menuyu gosterir.
[DIALOG house_help TEXT]
[DIALOG house_help BUTTON]
on=0
dialogclose house_help
[eof]