Kurulum;
List fonksyonunun çalıştığı bir sphere versyonunu kullanmanız gerekmektedir.
Tüm evleri ve eşya seviyesini def olarak sphereye tanıtmanız gerekmektedir. Scriptte tower,castle ve plaster house tanıtılmıştır.
Evlerin multi kodlarına ev komutlarını aktif etmek için speech'in eklenmesi gerekiyor.
Özellikler;
>Ortak ve dostların hesabındaki diğer karakterlersde ortak ve dostlara dahil.
>Ev kiralama ve satış aktif.
>Evlerin eşya limiti evden eve değişyor.
Eksikler;
>Henüz aktif bir sunucuda test edilmedi ev sistemi gibi komplike sistemlerin stabil olarak oturması için biraz zaman geçmesi gerekmektedir. Scriptte bir çok hata olması muhtemel sorunları çözenler lütfen burda paylaşsınlarki daha sonra başkalarıda aynı sıkıntıyı yaşamasınlar.
>Tabela değiştirme.
>Ev ismi(evlere isim koymayı gereksiz bulduğum için eklemedim.
>Ostard egg limiti için gerekli sorgu.
Credits
Resimler
// Scripted by Eureka
// v0.56b+
[comment ChangeLog]
-Features
>Ortak ve dostların hesabındaki diğer karakterlersde ortak ve dostlara dahil.
>Ev kiralama ve satış aktif.
>Evlerin eşya limiti evden eve değişyor.
[defname setting_house_system]
house_refreshtime = "15"
house_refreshfee = "5000"
house_max_egg = "3"
house_max_box = "3"
house_limit_partner = "5"
house_limit_friend = "15"
///// ortak,sahip,dost
house_membeR_0 = "dost"
house_member_1 = "ortak"
house_member_2 = "sahip"
//// ev seviyeleri ve eşya limtileri ///
// ev seviyeleri
hi_multi_house_stone_plaster_smaill = "0"
hi_multi_tower = "2"
hi_multi_castle = "2"
//eşya limitleri
[function get_storage_limit]
DOSWITCH <ARGs>
RETURN 3 75
RETURN 5 150
RETURN 7 300
ENDDO
[DIALOG d_house_main]
0,0
page 0
resizepic 100 120 5054 400 265
alphablack 110 130 380 245
resizepic 200 70 5054 195 40
alphablack 210 80 175 20
dorigin 110 130
dtext +120 -50 63 <serv.servname> House Panel
dtext +20 +20 38 Ev Bilgileri
dhtmlgump +20 +50 170 150 0 0 <def.bfont_lyellow>Evin sahibi : <def.bfont_white><uid.<house_owner>.name><def.br><def.bfont_lyellow>Sabit eşya : <def.bfont_White><eval <strarg <house_lockeddown>>>/<streat <get_storage_limit <ddef.h<baseid>>>><def.br><def.bfont_lyellow>Kuluçka : <def.bfont_white><eval <streat <strarg <house_lockeddown>>>>/<strarg <get_storage_limit <ddef.h<baseid>>>><def.br><def.bfont_lyellow>Strongbox : <def.bfont_White><eval <streat <streat <house_lockeddown>>>>/<strarg <get_storage_limit <ddef.h<baseid>>>><def.bfont_white><def.br><def.br><def.bfont_lyellow>Ortaklar : <def.bfont_white><dhouse_membercount 1><def.br><def.bfont_lyellow>Dost sayısı : <def.bfont_white><dhouse_membercount 0> <def.br><def.bfont_lyellow>Kurulum : <def.bfont_White><strarg <tag.house_builddate>>
dhtmlgump +185 +30 160 50 0 0 <def.bfont_White>Bu ev <qval (<tag0.house_hatali>)?<def.bfont_red>hatalı:<def.bfont_lgreen>düzgün> <def.bfont_White>inşa edilmiş.<def.br>Bu ev halka <qval !(<tag0.house_public>)?<def.bfont_lred>kapalı:<def.bfont_lgreen>açık>.
button +185 +85 2714 2715 1 0 1
dhtmlgump +210 +85 150 25 0 0 <def.bfont_white>Ortak ekle/kaldir.
button +185 +105 2714 2715 1 0 2
dhtmlgump +210 +105 150 25 0 0 <def.bfont_lred>Dost ekle/kaldir.
button +185 +125 2714 2715 1 0 3
dhtmlgump +210 +125 150 25 0 0 <def.bfont_white>Evi kaldır.(re-deed)
button +185 +145 2714 2715 1 0 4
dhtmlgump +210 +145 150 25 0 0 <def.bfont_lred>Evi transfer et.
button +185 +165 2714 2715 1 0 5
dhtmlgump +210 +165 150 25 0 0 <def.bfont_white>Evi halka <qval (<tag0.house_public>)?kapat:aç>.
button +185 +185 2714 2715 1 0 6
dhtmlgump +210 +185 150 25 0 0 <def.bfont_lred>Evi satışa/kiraya çıkart.
if (<src.isgm>)
if (<tag0.house_onaylanmamis>)
button +105 +215 2714 2715 1 0 201
dhtmlgump +130 +215 150 25 0 0 <def.bfont_white>Evi hatasız olarak onayla.
else
button +105 +215 2714 2715 1 0 201
dhtmlgump +130 +215 150 25 0 0 <def.bfont_white><DEF.BIG>HATALI EV !!
endif
page 2
page 3
resizepic 100 400 5054 400 40
alphablack 110 410 380 20
dtext 120 410 54 Evi kaldırmak istediğinizden eminmisiniz ?
button 370 414 2103 2104 1 0 31
dtext 385 410 63 Evet.
button 420 414 2103 2104 1 0 0
dtext 435 410 38 Hayır.
page 4
resizepic 510 120 5054 200 265
alphablack 520 130 180 245
dtext 550 140 63 <qval !(0<args>==0)?Ortak:Dost> Listesi
local.y = 140
if (0<args>==1)
local.query = "> 0"
else
local.query = "< 1"
endif
for <src.ctag0.page_limit> (<src.ctag0.page_limit>+9)
if 0<streat <list.house_<uid>.<dlocal._For>>>>
if <strarg <src.ishmember <uid>>> <local.query>
local.y +=20
if (<house_owner>==<src.uid>) || (<src.account.plevel> > 4)
button 535 (<local.y>+4) 2103 2104 1 0 (50+<local._for>)
endif
ref15 = <streat <list.house_<uid>.<dlocal._For>>>>
dcroppedtext 550 <local.y> 80 17 1153 <ref15.name>
endif
endif
endfor
if (<house_owner> == <src.uid>) || (<src.account.plevel> > 4)
button 570 345 2714 2715 1 0 <qval !(0<args>==0)?33:34>
dtext 590 345 1153 <qval !(0<args>==0)?Ortak:Dost> ekle
endif
button 680 345 015e1 015e5 1 0 41
button 530 345 015e3 015e7 1 0 42
page 5
if (<src.ctag0.house_member>)
resizepic 100 400 5054 400 70
alphablack 110 410 380 50
dtext 120 410 54 <uid.<src.ctag0.house_member>.name> evinizin üye listesinden çıkartmak istediğinize eminmisiniz ?
dtext 135 430 63 Evet.
button 120 434 2103 2104 1 0 32
dtext 335 430 38 Hayır.
button 320 434 2103 2104 1 0 0
endif
page 6
resizepic 510 120 5054 200 265
alphablack 520 130 180 245
dtext 550 140 63 Satılık/Kiralik Işlemi
dtext 550 180 39 Fiyat :
dtextentrylimited 593 180 120 20 1152 1 7 <var.blank>
radio 550 210 56 55 0 1
radio 550 230 56 55 0 2
dtext 570 210 1153 Kiralık
dtext 570 230 1153 Satılık
dhtmlgump 530 260 150 100 0 0 <def.bfont_white>Kira süresi : <def.bfont_yellow>1 haftadır.<def.bfont_white><def.br>Satış yapabilmek için evinizde sabit eşya bulunmamalı.
button 550 340 4005 4006 1 0 35
dtext 585 340 1153 Tamamla.
[DIALOG d_house_main button]
ON=1
sdialog d_house_main,4 1
ON=2
sdialog d_house_main,4 0
ON=3
sdialog D_house_main,3
ON=4
if <house_owner> != <src.uid>
src.sysmessage @38,,1 bu işlemi sadece ev sahibi kullanabilir.
return 1
endif
src.targetf transfer_house <uid>
src.sysmessage @1153,,1 Evi devretmek istediğiniz kişiyi seçin ?
ON=5
if <house_owner> != <src.uid>
src.sysmessage @38,,1 bu işlemi sadece ev sahibi kullanabilir.
return 1
endif
if (<tag0.house_public>)
if (0<house_vendors>)
src.sysmessage @38,,1 Evinizde vendor varken evinizi halka kapatamazsınız.
return 1
endif
tag.house_public =
src.sysmessage @1153,,1 Evi halka kapattınız.
else
tag.house_public =1
src.sysmessage @1153,,1 Eviniz halka açılmıştır.
endif
ON=6
if <house_owner> != <src.uid>
src.sysmessage @38,,1 Bu özelliği sadece ev sahibi kullanabilir.
return 1
endif
sdialog d_house_main,6
ON=31 // redeed
if <house_owner> == <src.uid>
serv.newitem i_deed,1,<src.uid>
new.more1 = <baseid>
new.name Deed To <name>
src.tag.house =
ref1 = <uid>
forinstances i_key_copper
if (<link.uid>==<ref1.uid>)
remove
endif
endfor
list.house_<uid>.clear
remove
src.sysmessage @1153,,1 Evi kaldırdınız.
else
src.sysmessage @38,,1 Ev'i sadece evin sahibi kaldırabilir.
endif
ON=32
remove_hmember <src.ctag0.house_resignuid>
ON=33,34
// 33 ortak, 34 dost
targetf add_member <uid>,<qval <argn>==33)?1:0>
src.sysmessage @39,,1 <qval (<argn>==33)?Ortak:Dost> eklemek istediğiniz kişiyi seçin ?
ON=35
if (<eval <strarg <house_lockeddown>>> > 1)
src.sysmessage @38,,1 Evi satışa/kiralığa çıkartabilmeniz için evinizde sabit eşya bulunmamalıdır.
elif (0<house_vendors> > 0)
src.sysmessage @38,,1 Evinzide kurulu vendor varken evinizi sayılığa/kiralığa çıkartamazsınız.
elif !(<argchk[1]>) && !(<argchk[2]>)
src.sysmessage @38,,1 Evi kiralık yada satılık olarak işaretlemelisiniz.
sdialog d_house_main,6
elif !(<isnumeric <argtxt[1]>>)
src.sysmessage @38,,1 fiyat kısmını hatalı girdiniz.
sdialog d_house_main,6
elif (<argtxt[1]> < 10000)
src.sysmessage @38,,1 Kira bedeli haftalık 10.000 altından daha düşük olamaz.
sdialog d_house_main,6
else
local.additionaltime = 10*60*60*24*15
tag.4sale = <qval (<argchk[1]>)?1:2>
tag.house_saleprice = <argtxt[1]>
tag.house_saleclose_date = <serv.time> + <local.additionaltime>
src.sysmessage @1153,,1 Evinizi <qval (<argchk[1]>)?kiralık:satılık> olarak işaretlediniz.(<bolukayir <dtag.house_saleprice>>gp)
endif
ON=20 // refreshhouse
if (<src.gold> < <def.house_Refreshfee>)
src.sysmessage @38,,1 Evinizi yenileyebilmek için <bolukayir <ddef.house_refreshfee>> altın gereklidir.
else
src.gold -=<def.house_Refreshfee>
timer = <def.house_refreshtime>*60*60*24
src.sysmessage @63,,1 Ev başarıyla yenilendi.
endif
ON=50,100
local.argn = (<argn>-50)
ref1 = <streat <list.house_<uid>.<dlocal.argn>>>
src.ctag.house_member = <ref1.uid>
src.ctag.house_resignuid = <dlocal.argn>
sdialog d_house_main,5
ON=201
tag.house_onaylanmamis = <qval (<tag0.house_onaylanmamis>)?0:1>
src.sysmessage @1153,,1 Evi <qval (<tag0.house_onaylanmamis>)?hatasız:hataslı> olarak işaretlediniz.
[function house_membercount]
for 0 <f_arraY_lenght <tag0.members>>
if (<eval <strarg <f_array <tag0.members>,<dlocal._for>>>> == 1)
local.members +=1
elseif (<eval <strarg <f_array <tag0.members>,<dlocal._for>>>> < 1)
local.friends +=1
endif
endfor
return <qval (<argn>==1)?<local.members>:<local.friends>>
[function remove_hmember]
LIST.house_<uid>.<dargs>.REMOVE
[function house_vendors]
ref1 = <uid>
forchars 100
if (<region.uid> == <ref1.uid>) && (<brain> == brain_vendor)
local.vendors ++
endif
endfor
[function house_lockeddown]
ref1 = <uid>
foritems 100
if !(<type> == t_multi) && (<region.uid>) == <ref1.uid>) && (<attr>&attr_move_never)
local.items ++
if (<baseid>==i_kulucka)
local.kulucka ++
elif (<baseid>==i_house_Strongbox)
local.strongbox ++
elif (<type>==t_door) ||(<type>==t_door_locked)
local.doors ++
endif
endif
endfor
return <eval <local.items>-<local.doors>> <local.kulucka> <local.strongbox>
[function house_owner]
local.a = <streat <list.house_<uid>.0>>>
local.b = <EVAL strlen(<local.a>)>
return <strsub <local.b> <eval <local.b>-2> <streat <list.house_<uid>.0>>>
[function getuid_fromacc]
ref1 = <serv.account.<ARGS>.char.0>
for 0 (<ref1.account.chars>-1)
ref2 = <ref1.account.char.<dlocal._for>>
if (<ref2.tag.house>)
return <ref2.uid>
endif
endfor
[function ishmember]
ref1 = <args>
for list 0 2
if <list.house_<ref1.uid>.findelem "<dlocal.list> <uid>"> >= 0
return <list.house_<ref1.uid>.<list.house_<ref1.uid>.findelem "<dlocal.list> <uid>">>
endif
endfor
return 0
[ITEMDEF 0bd1]
//brass sign
DEFNAME=i_sign_brass
TYPE=T_SIGN_GUMP
TDATA2=064
FLIP=1
RESOURCES=2 I_BOARD, 1 i_ingot_iron
CATEGORY=Decoration - Signs
SUBSECTION=Blank
DESCRIPTION=Brass Blank
DUPELIST=0bd2
ON=@create
timerf 1,link.timer = <def.house_refreshtime>*60*60*24
timerf 1,link.tag.house_builddate = <serv.rtime>
timerf 1,link.tag.house_onaylanmamis = 1
timerf 1,region.events +r_player_house
ON=@click
if (<link.tag0.4sale> == 1)
message @1153,,1 [Kiralık]
elif (<link.tag0.4sale> == 2)
message @1153,,1 [Satılık]
endif
message @07d4,,1 [<f_zamangoster <link.timer>>]
message @1153,,1 <link.name>
return 1
ON=@dclick
if !(0<list.house_<link.uid>.count>)
serv.list.house_<link.uid>.add 2 <src.uid>
src.tag.house = 1
serv.allclients house_message <link.uid>
src.sysmessage @53,,1 Ev artık size aittir. Yetkililer tarafından onaylandıktan sonra kullanabilirsiniz.
endif
if (<src.ishmember <link.uid>>)
link.sdialog d_house_main
else
if (<link.tag0.4sale>)
link.sdialog d_house_buy
endif
endif
return 1
ON=@timer
remove
return 1
[itemdef i_house_Strongbox]
id i_box_brass
name strongbox
tdata2 04b
ON=@create
timer -1
attr attr_move_never
ON=@click
message @07d4,,1 [<link.name>]
ON=@dclick
if (<src.uid> != <link.uid>) || (<src.account.plevel> < 5)
return 1
endif
ON=@destroy
if (<rescount> > 0)
serv.newitem i_backpack
forcont <uid>
if (<type> != t_corpse)
cont = <new.uid>
local.items .=,<name>-<uid>
endif
endfor
new.cont = <link.findlayer.layer_bankbox>
serv.log ## Strongbox silindi. sahibi : <link.uid> icindeki esyalar : <strsub 1 0 <local.items>>
endif
[itemdef i_kulucka]
[function add_member]
ref1 = <argv[0]>
ref2 = <argo>
if !(<argo.isplayer>)
src.sysmessage @38,,1 Sadece oyuncuları evinize üye yapabilirsiniz.
elif (<argo.region.uid> != <ref1.uid>)
src.sysmessage @38,,1 <argo.name> evin içinde değil.
elif (<argo> == <src>)
src.sysmessage @38,,1 Kendinize teklif gönderemezsiniz.
elif (<argo.ishmember <ref1.uid>>)
src.sysmessage @38,,1 <argo.name> bu eve zaten ortak yada dost.
elif (<list.house_<argo.region.uid>.count> == <def.house_limit_partner>)
src.sysmessage @38,,1 Evin ortak/dost limiti dolu.
else
serv.b <name>
argo.ctag.house_offer = <ref1.uid> <argv[1]>
trysrc <argo.uid> src.dialogclose d_house_offer_membership
argo.timerf clear
trysrc <argo.uid> src.sdialog d_house_offer_membership,0 <src.uid>
src.sysmessage @1153,,1 <argo.name> adlı oyuncuya teklifiniz iletildi.
argo.sysmessage @1153,,1 <src.name> adlı oyuncu sizi evine <qval (<argn>)?ortak:dost>) olarak eklemek istiyor.
endif
[dialog d_house_offer_membership]
0,0
page 0
resizepic 100 100 5054 400 70
alphablack 110 110 380 50
timerf 10,dialogclose d_house_offer_membership
dtext 120 110 54 <uid.<args>.name> sizi evine <qval (<streat <ctag0.house_offer>>==1)?ortak:dost> olarak eklemek istiyor ?
dtext 135 130 63 Evet, onaylıyorum.
button 120 134 2103 2104 1 0 1
dtext 305 130 38 Hayır, onaylamıyorum.
button 290 134 2103 2104 1 0 0
endif
[dialog d_house_offeR_membership button]
ON=0
src.sysmessage @1153,,1 Teklifi geri çevirdiniz.
ON=1
ref1 = <strarg <ctag0.house_offer>>
if (<src.ishmember <ref1.uid>>)
src.sysh_trk Bu eve zaten üyesiniz.
return 1
endif
list.house_<ref1.uid>.add=<streat <ctag0.house_offer>> <src.uid>
sysmessage @64,,1 Üyeliğiniz tamamlandı.
clearctags house
/// speech
[speech spk_house]
ON=i wish to lock this down
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 1
ON=i wish to release this
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 2
ON=item down
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 4
ON=item up
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 3
ON=i wish to remove this
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 5
ON=i ban thee
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 6
ON=remove thyself
if !(<src.ishmember <uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
targetf house_edit_item 6
ON=i wish to place a strongbox
if (<strarg <src.ishmember <uid>>> < 1)
src.sysmessage @38,,1 Strongbox koyabilmek için bu eve ortak olmalısınız.
elif (<streat <streat <house_lockeddown>>> == <strarg <get_storage_limit <def.h<baseid>>>>)
src.sysmessage @38,,1 Evdeki strongbox sayısı <strarg <get_storage_limit <def.h<baseid>>>> dan fazla olamaz.
elif (<hasstrongbox <src.uid>>)
src.sysmessage @38,,1 Bu evde zaten bir strongboxunuz var.
else
serv.newitem i_house_Strongbox
new.attr attr_move_never
new.link = <src.uid>
new.p = <src.p>
link.say @1153,,1 <src.name> strongbox ekledi.
endif
[function hasstrongbox]
ref1 = <args>
foritems 100
if (<baseid>==i_house_Strongbox) && (<region.uid> == <src.region.uid>)
if (<link.uid>==<ref1.uid>)
return 1
endif
endif
return 0
[function house_edit_item]
if !(<src.ishmember <region.uid>>)
src.sysmessage @38,,1 Bu eve ortak yada dost değilsiniz.
return 1
endif
if (<args>==1)
ref7 = <region.uid>
serv.b
if <eval <strarg <ref7.house_lockeddown>>> > <streat <get_storage_limit <ddef.h<ref7.baseid>>>>
src.sysmessage @38,,1 Evdeki sabit eşya sayısı çok fazla.
return 1
endif
if <argo.isneartype t_sign_gump 2>
src.sysmessage @38,,1 Evin ban bolgesinin 3kare yakinina item sabitleyemezsiniz.
return 1
endif
if ((<argo.type> == t_stone_guild) || (<argo.type> == t_spell) || (<argo.baseid> == i_corpse) || (<argo.type> == t_blood) || (<argo.baseid> == i_sticks) || (<argo.baseid> == i_deed_dummyn) || (<argo.type> == T_WEAPON_MACE_STAFF))
src.sysmessage @38,,1 Bunu evinize sabitleyemezsiniz.
elseif (<argo.cont>)
src.sysmessage @38,,1 Sabitlemek istediğiniz eşya yerde durmalı.
elseif (<argo.attr>&attr_move_never)
src.sysmessage @38,,1 Bu eşya zaten sabitlenmis.
elseif (<argo.link.isitem>) || (<argo.link.ischar>)
src.sysmessage @38,,1 Bunu sabitleyemezsiniz.
else
argo.link <uid>
argo.attr <argo.attr>&~attr_decay
argo.attr <argo.attr>|attr_move_never
argo.timer -1
argo.message @07d4,,1 [sabit]
if ((<argo.type>) == t_book)
argo.more 1
endif
argo.update
endif
elif (<args>==2)
iF (<argo.baseid> == i_guildstone)
src.sysmessage @38,,1 Lonca taşını kaldıramazsınız bu şekilde.
return 1
ENDIF
if (<argo.baseid> == i_bones)
src.sysmessage @38,,1 Cesetler üzerinde bu işlemi yapamazsınız.
return 1
endif
if (<argo.baseid> == i_loom_upright)
local.act <argo.uid>
try uid.<uid.<args>.tag0.<local.act>part>.remove
try uid.<uid.<args>.tag0.<uid.<args>.tag0.<local.act>part>part>.remove
try uid.<args>.tag0.<local.act>part
try uid.<args>.tag0.<uid.<args>.tag0.<local.act>part>part
try serv.newitem i_deed_loom_n
try new.bounce
return 1
endif
if (<argo.baseid> == i_pentagram)
if !(<argo.dispid> == 0fea)
src.sysmessage @38,,1 Pentagramı kaldırmak için ortasını seçiniz.
return 1
else
local.act <argo.uid>
argo.remove
for 1 8
try uid.<uid.<args>.tag0.<local.act>part<dlocal._for>>.remove
try uid.<args>.tag0.<local.act>part<dlocal._for>
endfor
try serv.newitem i_deed_pentagram
try new.bounce
return 1
endif
endif
IF (<ARGO.ISITEM>)
IF ((<ARGO.TYPE>==t_door_locked) || (<ARGO.TYPE>==t_door) || (<ARGO.TYPE>==t_sign_gump) || (<ARGO.TYPE>==t_stone_guild)) && !(<argo.baseid> == i_bar_door_ne)
src.sysmessage @38,,1 Hatalı seçim.
RETURN 1
ENDIF
if (strmatch('<argo.dispid>','i_nest_with_eggs'))
src.sysmessage @38,,1 Yumurtayı çıkartmadan kuluçkayı kaldıramazsınız.Yumurtanız olgunlaşmışsa çift tıklayarak çıkartabilirsiniz.
return 1
endif
if (strmatch('<argo.baseid>','i_house_Strongbox'))
src.sysmessage @38,,1 Remove komutuyla kaldırmalısınız.
return 1
endif
IF !(<ARGO.CONT>)
IF (<ARGO.REGION.UID>==<src.region.uid>)
IF (<ARGO.TYPE>==t_container)
LOCAL.RESCOUNT=<ARGO.RESCOUNT>
ENDIF
if (<ARGO.ATTR> & attr_move_never)
TRY UID.<ARGO.UID>.LINK=0fffffff
TRY UID.<ARGO.UID>.ATTR=<ARGO.ATTR>-attr_move_never
TRY UID.<ARGO.UID>.ATTR=<ARGO.ATTR>+attr_decay
TRY UID.<ARGO.UID>.SAY=[Sabit degil]
TRY UID.<ARGO.UID>.EVENTS -t_locked_down
TRY UID.<ARGO.UID>.TIMER=<eval <SERV.DecayTimer>*60>
TRY UID.<ARGO.UID>.UPDATE
else
src.sysmessage @38,,1 Bu eşya sabitlenmemiş.
endif
else
src.sysmessage @38,,1 Bu eşya evde değil.
endif
endif
endif
elif (<args>==3)
if !(<argo.isitem>)
src.sysmessage @38,,1 Sadece eşyaların pozisyonunu değiştirebilirsiniz.
return 1
endif
IF (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi) || (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi_custom)
IF !(<argo.REGION.UID>==<REGION.uid>)
src.sysmessage @38,,1 Bu eşya evde değil.
return 1
endif
endif
if !(<argo.attr>&attr_move_never)
src.sysmessage @38,,1 Önce eşyayı sabitlemelisiniz.
return 1
endif
if ((<argo.baseid> == i_house_Strongbox) || (<argo.type> == t_spell) || (<argo.baseid> == i_corpse) || (<argo.type> == t_blood) || (<argo.type> == t_door) || (<argo.type> == t_door_locked) || (<argo.type> == t_sign_gump) || (<argo.type> == t_stone_guild) || (<argo.baseid> == i_forge) || (<argo.baseid> == i_anvil) || (<argo.baseid> == i_training_dummy) || (<argo.baseid> == i_pickpocket_dip) || (<argo.baseid> == i_spinning_wheel) || (<argo.baseid> == i_loom_upright) || (<argo.baseid> == i_pentagram) || (<argo.type> == t_deed))
src.sysmessage @38,,1 Bu eşyanın pozisyonuyla oynayamazsınız.
return 1
endif
ref1 = <region.uid>
if ((<ref1.baseid> == i_multi_house_3room) || (<ref1.baseid> == i_multi_house_stone_plaster_small) || (<ref1.baseid> == i_multi_house_stone_small) || (<ref1.baseid> == i_multi_house_stone_brick_small) || (<ref1.baseid> == i_multi_house_stone_wood_small) || (<ref1.baseid> == i_multi_house_wood_plaster_small) || (<ref1.baseid> == i_multi_house_wood_thatched_small) || (<ref1.baseid> == i_multi_shop_blacksmithy_large))
if (<argo.p.z> >= <eval (<p.z> + 25)>)
src.sysmessage @38,,1 Bu eşyayı daha fazla yükseltemezsiniz.
else
argo.nudgeup
endif
elseif ((<ref1.baseid> == i_multi_keep) || (<ref1.baseid> == i_multi_castle) || (<ref1.baseid> == i_multi_house_patio_sand) || (<ref1.baseid> == i_multi_villa_2story) || (<ref1.baseid> == i_multi_cabin_log_2story) || (<ref1.baseid> == i_multi_house_wood_plaster_2story) || (<ref1.baseid> == i_multi_house_stone_plaster_2story))
if (<argo.p.z> >= <eval (<p.z> + 45)>)
src.sysmessage @38,,1 Bu eşyayı daha fazla yükseltemezsiniz.
else
argo.nudgeup
endif
elseif ((<ref1.baseid> == i_multi_shop_stone_small) || (<ref1.baseid> == i_multi_shop_marble_small) || (<ref1.baseid> == i_multi_house_patio_marble) || (<ref1.baseid> == i_multi_tower_wizard))
if (<argo.p.z> >= <eval (<p.z> + 65)>)
src.sysmessage @38,,1 Bu eşyayı daha fazla yükseltemezsiniz.
else
argo.nudgeup
endif
elseif (<ref1.baseid> == i_multi_tower)
if (<argo.p.z> >= <eval (<ref1.p.z> + 85)>)
src.sysmessage @38,,1 Bu eşyayı daha fazla yükseltemezsiniz.
else
argo.nudgeup
endif
else
src.sysmessage @38,,1 Evinizin tipi bu komutu desteklemiyor.Anormal bir durumda bu uyarıyı alıyorsanız page atınız.
endif
elif (<args>==4)
if !<argo.isitem>
src.sysmessage @38,,1 Sadece eşyaların pozisyonunu değiştirebilirsiniz.
return 1
endif
IF (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi)// || (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi_custom)
IF !(<argo.REGION.UID>==<REGION.uid>)
src.sysmessage @38,,1 Bu eşya evde değil.
return 1
endif
endif
if !(<argo.attr>&attr_move_never)
src.sysmessage @38,,1 Önce eşyayı sabitlemelisiniz.
return 1
endif
if ((<argo.baseid> == i_house_Strongbox) || (<argo.type> == t_spell) || (<argo.baseid> == i_corpse) || (<argo.type> == t_blood) || (<argo.type> == t_door) || (<argo.type> == t_door_locked) || (<argo.type> == t_sign_gump) || (<argo.type> == t_stone_guild) || (<argo.baseid> == i_forge) || (<argo.baseid> == i_anvil) || (<argo.baseid> == i_training_dummy) || (<argo.baseid> == i_pickpocket_dip) || (<argo.baseid> == i_spinning_wheel) || (<argo.baseid> == i_loom_upright) || (<argo.baseid> == i_pentagram) || (<argo.type> == t_deed))
src.sysmessage @38,,1 Bu eşyanın pozisyonuyla oynayamazsınız.
return 1
endif
if (<argo.p.z> < <ref1.p.z>)
src.sysmessage @38,,1 Bu itemi daha fazla indiremezsiniz.
return 1
endif
argo.nudgedown
elif (<args>==5)
IF !(<argo.REGION.UID>==<REGION.uid>)
src.sysmessage @38,,1 Bu eşya evde değil.
return 1
endif
if (<argo.baseid> != i_house_Strongbox)
src.sysmessage @38,,1 Sadece strongbox'u kaldırabilirsiniz.
return 1
endif
if (<strarg <src.ishmember <argo.region.uid>>> < 2)
if (<argo.link> != <src.uid>)
src.sysmessage @38,,1 Bu strongbox size ait değil.
return 1
endif
endif
argo.remove
src.sysmessage @1153,,1 Strongbox kaldırıldı.
elif (<args>==6)
if (<src.action> == skill_magery)
src.sysmessage @38,,1 Büyü atarken konuşamazsınız.
return 1
endif
IF (<src.flags>&statf_dead)
src.sysmessage @38,,1 Bu komutu ölüyken kullanamazsınız.
return 1
ENDIF
IF (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi) || (<SRC.UID.<SRC.REGION.UID>.TYPE>==t_multi_custom)
if (<src.isevent.e_ibantheeyok>)
src.sysmessage @38,,1 Biraz beklemelisiniz.
return 1
endif
else
src.sysmessage @38,,1 Sadece ev içinde kullanabilirsiniz
return 1
ENDIF
IF (<ARGO.ISPLAYER>)
IF (<ARGO.REGION.UID>!=<src.REGION.UID>)
src.sysmessage @38,,1 <ARGO.NAME> evde değil.
RETURN 1
ELIF (<ARGO.UID>==<SRC.UID>)
src.sysmessage @38,,1 Kendini atamazsın.
RETURN 1
ELIF (<argo.account.plevel> > 1)
src.sysmessage @38,,1 Yetkilileri evden atamazsın.
RETURN 1
ELIF <strarg <argo.ishmember <region.uid>>>
src.sysmessage @38,,1 <argo.name> eve dost yada ortak.
RETURN 1
endif
ENDIF
TRY UID.<ARGO.UID>.GO=<Uid.<region.uid>.link.p>
TRY UID.<ARGO.UID>.FIX
src.events +e_ibantheeyok
src.timerf 1,events -e_ibantheeyok
RETURN 1
elseIF (<ARGO.npc>)
IF (<ARGO.REGION.UID>!=<UID.<ARGS>.REGION.UID>)
src.sysmessage @38,,1 <ARGO.NAME> evde değil.
RETURN 1
endif
IF (<argo.barin> == brain_vendor)
src.sysmessage @38,,1 Vendoru evden atamazsın.
RETURN 1
endif
TRY UID.<ARGO.UID>.GO=<UID.<ARGS>.P>
TRY UID.<ARGO.UID>.FIX
RETURN 1
ELSE
src.sysmessage @38,,1 Sadece oyuncuları seçebilirsiniz.
ENDIF
[function transfer_house]
ref1 = <args>
ref2 = <argo>
if !(<argo.isplayer>)
src.sysmessage @38,,1 evi sadece oyunculara devredebilirsiniz.
return 1
endif
if (<strarg <ref2.ishmember <ref1.uid>>>)
src.sysmessage @38,,1 <argo.name> eve dost yada ortak olduğu sürece evi <argo.name>'e devredemezsiniz.
return 1
endif
if (<argo.tag0.house>)
src.sysmessage @38,,1 <argo.name> zaten bir eve sahip. Her karakter max. 1 eve sahip olabilir.
return 1
endif
if (0<ref1.house_vendors> > 0)
src.sysmessage @38,,1 Evinzide kurulu vendor varken evi devredemezsiniz.
return 1
endif
list.house_<ref1.uid>.clear
list.house_<ref1.uid>.add =2 <argo.uid>
argo.sysmessage @63,,1 <src.name> evini size devretmiştir. Tüm ortak ve dostlar temizlenmiştir.
src.sysmessage @1153,,1 Evi <argo.name>'e devrettiniz.
src.tag.house
//// events
[regiontype r_player_house]
ON=@enter
if (<src.isplayer>)
src.events +e_player_house
endif
if (<region.tag0.house_hatali>)
src.sysmessage @38,,1 Bu ev yetkililer tarafından hatalı olarak işaretlenmiş.
return 1
elif (<uid.<region.uid>.tag0.house_onaylanmamis>==1)
src.sysmessage @54,,1 Bu ev yetkililer tarafından henüz onaylanmamış.
return 1
endif
ON=@exit
src.events -e_player_house
[events e_player_house]
ON=@login
if !(<strarg <src.ishmember <region.uid>>>)
src.p <uid.<region.uid>.link.p>
src.fix
endif
[events e_ibantheeyok]
[typedef t_locked_down]
ON=@click
message @07d4,,1 [sabit]
////////////////////////// ev kiralama/satma işlemleri ///////////////////////
[dialog d_house_buy]
0,0
page 0
if (<tag0.4sale>==1)
local.status = 0
elif (<tag0.4sale>==2)
local.status = 1
endif
resizepic 100 100 5054 400 190
alphablack 110 110 380 170
dcroppedtext 120 110 370 20 54 <name> adlı evin <qval (<local.status>)?satış:kira> bilgilerini inceliyorsunuz.
dhtmlgump 160 140 300 100 0 1 <def.bfont_lred><def.center><qval (<local.status>)?Satış:Kira> Koşulları<def.centere><def.bfont_white>Bu evin <qval (<local.status>)?satış fiyatı:haftalık kirası> <def.bfont_lred><bolukayir <dtag.house_saleprice>>gp.<def.bfont_white><def.br>Burayı <qval (<local.status>)?satın almak:kiralamak> için bankanızda yeterli miktarda nakit olmalı.Kira süresi <def.bfont_lred>1 hafta<def.bfont_White>dır, her hafta yeniden uzatmanız gerekir.Yer sahibi kira bedelini kira kontratı bittiği anda güncelleme hakkına sahiptir>
dtext 135 250 63 Evet,<qval (<local.status>)?satın al:kirala>.
button 120 254 2103 2104 1 0 1
dtext 305 250 38 Hayır, <qval (<local.status>)?satın almıyorum:kiralamıyorum>.
button 290 254 2103 2104 1 0 0
endif
[dialog d_House_Buy button]
ON=1
ref1 = <house_owner>
if (<src.gold> < <tag.house_saleprice>)
src.sysmessage @38,,1 Bu evin satış fiyatı <bolukayir <dtag0.house_saleprice>>gp. Sizin <bolukayir <eval (<tag.house_saleprice>-<src.gold>)>>gp'ye daha ihtiyacınız var.
elif (<src.tag0.house>)
src.sysmessage @38,,1 Bu evi alabilmek için önce mevcut evinizi kaldırmalısınız.
else
if (<tag0.4sale>==1)
serv.newitem i_control_rentedhouse,1,<src.uid>,1
new.link = <uid>
new.more1 = <ref1.uid>
endif
src.gold -=<dtag.house_saleprice>>
ref1.gold +=<dtag.house_saleprice>>
ref1.sysmessage @1153,,1 Sahip olduğunuz <name>, <src.name> adlı oyuncu tarafından <bolukayir <dtag.house_saleprice>>gp karşılığından satın alınmıştır.
src.sysmessage @1153,,1 <bolukayir <dtag.house_saleprice>>gp ödendi. Ev artık size aittir.
list.house_<uid>.clear
list.house_<uid>.add =2 <src.uid>
tag.house_saleprice =
tag.4sale =
tag.house_saleclose_date =
more1 = <src.uid>
ref2 = <uid>
forinstances i_key_copper
if <link.uid> == <ref2.uid>
remove
endif
endfor
serv.newitem i_key_copper,1,<src.findlayer.21>
new.link = <ref2.uid>
endif
[itemdef i_control_Rentedhouse]
id = i_memory
name = house reng controll
type = t_eq_script
ON=@create
attr attr_newbie|attr_invis
ON=@equip
serv.b @1152 hebele
timer = 60*60*60*7
ON=@timer
list.house_<link.uid>.clear
list.house_<link.uid>.add =2 <uid.<more1>.uid>
link.tag.house_saleprice =
link.tag.4sale =
link.tag.house_saleclose_date =
link.more1 = <cont.uid>
if <strarg <link.house_lockeddown>> > 1
link.send_house_items = <cont.uid>
endif
cont.sysmessage @1153,,1 <link.name> isimli kiralik evinizin kira süresi dolmuştur. Ev eski sahibine iade edilmiştir.
[function send_house_items]
ref1 = <args>
ref2 = <uid>
serv.newitem i_Backpack,1,<ref1.findlayer.layer_Bankbox>
local.new = <new.uid>
new.name = kiralik evdeki esyalariniz
new.attr = 00
foritems 100
if (<region.uid>==<ref2.uid>)
if (<baseid>==i_house_strongbox)
remove
endif
if (<link> != <ref2.uid>
if (<baseid> != i_kulucka)
attr &~attr_move_never
attr |attr_decay
timer = <SERV.DecayTimer>*60
cont = <new.uid>
else
serv.newitem i_ostard_egg,1,<local.new>
remove
endif
endif
endif
if (<uid.<local.new>.rescount> < 1)
uid.<local.new.rescount>.remove
endif
[ITEMDEF 0100e]
DEFNAME=i_key_copper
WEIGHT=0.1
VALUE=15
TYPE=T_KEY
CATEGORY=Provisions - Miscellaneous
SUBSECTION=Keys
DESCRIPTION=Copper Key
ON=@Create
attr attr_newbie
ON=@click
if (<more1>)
message @07d4,,1 [<uid.<more1>.name>]
endif
[function house_message]
if (<account.plevel> > 1)
trysrc <uid> dialogclose d_house_Approve
trysrc <uid> dialog d_house_Approve,0 <args>
endif
[dialog d_house_approve]
0,0
page 0
resizepic 0 0 9200 750 35
alphablack 10 10 730 15
ref1 = <args>
ref2 = <ref1.house_owner>
src.ctag0.house_p = <ref1.link.p>
dhtmlgump 12 8 495 23 0 0 <def.bfont_lyellow><uid.<ref1.house_owner>.name> <def.bfont_white>isimli oyuncu <def.bfont_lgreen><ref2.region.name><def.bfont_White>'de ev kurmuştur.<def.bfont_lyellow> Onay bekleyen : <def.bfont_white> <dwaiting4approve>
button 500 10 2103 2104 1 0 1
dtext 515 7 1153 Tümüne bak.
button 600 10 2103 2104 1 0 2
dtext 615 7 1153 Ilgilen.
button 680 10 2103 2104 1 0 0
dtext 695 7 1153 Kapat.
[dialog d_house_approve button]
ON=1
src.evkontrol
ON=2
src.go <src.ctag0.house_p>
[function waiting4approve]
src.ctag0.house =
forinstances i_sign_Brass
if <link.type>==t_multi
if (<link.tag0.house_onaylanmamis>==1)
src.ctag0.house ++
src.ctag0.house_<dsrc.ctag.house> == <uid>
endif
endif
endfor
return <src.ctag0.house>
[DIALOG d_list_house_app]
0,0
page 0
resizepic 55 95 9200 450 300
alphablack 65 105 430 280
waiting4approve
dtext 143 111 54 Onay bekleyen ev listesi.(<dsrc.ctag0.house>)
local.x = 70
local.y = 150
for <src.ctag0.house_appage> (<src.ctag0.house_appage>+20)
if <src.ctag0.house_<dlocal._for>>
if (<local.y> > 350)
local.x +=250
local.y = 150
endif
ref1 = <src.ctag0.house_<dlocal._for>>
dhtmlgump (<local.x>+35) <local.y> 200 20 0 0 <def.bfont_white><ref1.link.name> - <def.bfont_lred>sahibi : <def.bfont_white><uid.<ref1.link.house_owner>.name>
button <local.x> <local.y> 4005 4006 1 0 (1+<dlocal._for>)
local.y +=20
endif
endfor
button 324 355 4005 4006 1 0 101
button 215 355 4014 4015 1 0 102
dtext 249 357 1153 Sayfa <eval (<src.ctag0.house_appage>/20)+1>/<eval (<src.ctag0.house>/20)+1>
[dialog d_list_house_App button]
ON=1,100
sayu go
src.go <uid.<src.ctag0.house_<eval <argn>-1>>.p>
ON=102
src.ctag.house_appage -=20
if (<src.ctag.house_appage> < 1)
src.ctag.house_appage
endif
sdialog d_list_house_App
ON=101
src.ctag.house_appage +=20
ref1 = <src.ctag.item_<dlocal._For>>
if <eval <src.ctag.house_appage>/20> > <eval <src.ctag0.house>/20>
src.ctag.house_appage =
endif
sdialog d_list_house_App
[function evkontrol]
waiting4approve
if (<src.ctag0.house> < 1)
src.sysmessage @38,,1 Onay bekleyen yada hatalı ev yok.
else
src.sdialog d_list_house_app
endif
src.clearctags house
[EOF]
Bu konu [Alcholic] tarafından düzenlendi(2010-09-23 17:34, 14 yıl önce)