UO-Dev Arama

 

Champion Görev 3.8%(4)
Materyal Çantası 16.2%(17)
Lotter Sys. 23.8%(25)
Zindan Sistemi 35.2%(37)
Ev Vendor Sys.21%(22)




Paylaş

İçerde : 1 misafir, 0 üye : --- Sayfalar: 123456>Son »
Yazar

Amesron


Yörünge Dışı Yetkili
Skill Title: Adept
Online durumu
Toplam Mesaj: 617
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 20
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #20300   02-05-2010 23:43 GMT    
        
2. Scripting Yarışması Katılımları

Champion Görev Sistemi

Scriptin işlevi: Görev sistemi ve çıkan özel upgrade itemi
Resimler:
http://pic1.resimupload.com/r8/resim_195375326.bmp

http://pic1.resimupload.com/r6/resim_598906363.bmp


Kod:
//////////////////////////GOREV////////////////////////////

[ITEMDEF i_champion_idol]
ID=01f18
TYPE=T_NORMAL
DEFNAME=i_champion_idol
NAME=Champion Idol

ON=@Create
ATTR=ATTR_MOVE_NEVER
color 0bae
tag soulstone1 0

ON=@Dclick
if (<tag0.soulstone> = 0)
src.sysmessage @080a [4] Soul Stone Ihtiyaciniz Var.
return 1
endif
if (<tag0.soulstone> = 1)
src.sysmessage @080a [3] Soul Stone Ihtiyaciniz Var.
return 1
endif
if (<tag0.soulstone> = 2)
src.sysmessage @080a [2] Soul Stone Ihtiyaciniz Var.
return 1
endif
if (<tag0.soulstone> = 3)
src.sysmessage @080a [1] Soul Stone Ihtiyaciniz Var.
return 1
endif
if (<tag0.soulstone> = 4)
src.sysmessage @080a Aktif !
src.newitem i_azmoal_gate
src.act.color 080a
src.act.name [ Azmoal ]
src.act.p 5731,1255,-23
src.act.timer 60
src.newnpc c_azmoal
src.act.p 4588,2397,10
tag.soulstone 0
src.events +e_azmoal
return 1
endif


ON=@click
if (<tag0.soulstone> = 0)
message @077a [ Deactive 4/0]
endif
if (<tag0.soulstone>  = 1)
message @077a [ Deactive 4/1]
endif
if (<tag0.soulstone> = 2)
message @077a [ Deactive 4/2]
endif
if (<tag0.soulstone> = 3)
message @077a [ Deactive 4/3]
endif
if (<tag0.soulstone> = 4)
message @077a [ Aktif 4/4]
endif



[ITEMDEF i_azmoal_gate]
ID=i_moongate_red
NAME=Azmoal

ON=@Create
COLOR=080a
timer 60

ON=@timer
remove

ON=@Step
if (<src.isevent.e_azmoal>)
SRC.GO 4567,2395,10
return 1
else
src.sysmessage @077a Gate Sadece Soul Stone Yerlestiren Kisi Girebilir.
endif

ON=@click
message @1152 [<timer>]

[ITEMDEF i_azmoal_gates]
ID=i_moongate_red
NAME=Azmoal

ON=@Create
COLOR=080a
timer 60

ON=@timer
remove

ON=@Step
SRC.GO <morep>
src.events -e_azmoal

ON=@click
message @1152 [<timer>]


[EVENTS e_azmoal]
ON=@spellcast
IF ((<ARGN>==45))
src.sysmessage @077a [ Burda Bu Spell Kullanamazsiniz ]
SRC.ACTION -1
RETURN 1
ENDIF


IF ((<FINDLAYER.layer_special.BASEID>==i_x_RBDELAY) || (<FINDLAYER.55.BASEID>==i_gate_timer))
RunebookFizzle
src.sysmessage @077a [ Burda Bu Spell Kullanamazsiniz ]
return 1
ENDIF

[ITEMDEF i_soul_stone]
ID 7955
TYPE t_normal
name Soul Stone
ON=@create
color 080a

on=@Dclick
IF !(<src.RESTEST i_soul_stone>)
src.sysmessage @38,,1 Hata: Soul Stone'un Cantanizda Olmasi Gerekiyor.
return 1
else
If (<topobj.uid> != <src.uid>)
src.sysmessage @38,,1 Bu eşyayı sadece cantanizdayken kullanabilirsiniz.
return 1
endif
target Champion Skull Seciniz ?
return 1
endif

ON=@TARGON_CHAR
RETURN 1
ON=@TARGON_GROUND
RETURN 1

ON=@TARGON_ITEM
if ((<src.targ.baseid>=i_champion_idol) && (<src.targ.tag0.soulstone> = 0)
SRC.targ.tag.soulstone 1
SRC.SYSMESSAGE @1153 Complete.
src.consume 1 i_soul_stone
src.update
RETURN 1
endif

if ((<src.targ.baseid>=i_champion_idol) && (<src.targ.tag0.soulstone> = 1)
SRC.targ.tag.soulstone 2
SRC.SYSMESSAGE @1153 Complete.
src.consume 1 i_soul_stone
src.update
RETURN 1
endif

if ((<src.targ.baseid>=i_champion_idol) && (<src.targ.tag0.soulstone> = 2)
SRC.targ.tag.soulstone 3
SRC.SYSMESSAGE @1153 Complete.
src.consume 1 i_soul_stone
src.update
RETURN 1
endif

if ((<src.targ.baseid>=i_champion_idol) && (<src.targ.tag0.soulstone> = 3)
SRC.targ.tag.soulstone 4
SRC.SYSMESSAGE @1153 Complete.
src.consume 1 i_soul_stone
src.update
RETURN 1
endif

[CHARDEF c_azmoal]
id 064
NAME=Azmoal
ICON=i_pet_dragon
ARMOR=20
DAM=5
CAN=MT_WALK|MT_RUN

CATEGORY=BEEPK NPCS
DESCRIPTION=azmoal

ON=@CREATE
Tag.name.hue 096
Events=+e_npc
STR=2500
DEX=200
INT=1
FAME=2500
KARMA=-10000
EVENTS=+e_poison_immune
SWORDSMANSHIP 1
TACTICS 1
MAGERY 0
HIDING 0
STEALTH 0

ON=@click
message @1153,,1 [Str = <str> Dex = <dex>]

ON=@npcrestock
ITEM=azmoal_loot

ON=@deathcorpse
act.go themis town
ref1=<attacker.max>
ref2=<argo>
for <eval <ref2.rescount>-1> 0
ref3=<ref2.findcont.<dlocal._for>>
ref3.cont <ref1.findlayer.21>
endfor




[TEMPLATE azmoal_loot]
container=i_bag
color=07a1
item= { i_bleeding_upgrade 1 i_stunblow_upgrade 1 i_moveback_upgrade 1},R2
item=i_gold,50000

//////////////////////////UPGRADE SILAH////////////////////////////

[ITEMDEF i_bleeding_upgrade]
Id 2074
name Bleeding Upgrade
type t_script
value 20000

on=@Create
attr 00

on=@Click
message @60 [<name>]
return 1

on=@Dclick
IF !(<src.RESTEST i_bleeding_upgrade>)
src.sysmessage @38,,1 Hata: Upgrade Cantanizda Olmasi Gerekiyor.
return 1
else
If (<topobj.uid> != <src.uid>)
src.sysmessage @38,,1 Bu eşyayı sadece cantanizdayken kullanabilirsiniz.
return 1
endif
target Silahi Seciniz ?
return 1
endif

ON=@TARGON_CHAR
RETURN 1
ON=@TARGON_GROUND
RETURN 1

ON=@TARGON_ITEM
if ((<src.targ.isweapon>) && (<src.targ.tag0.bleedingvar>=0) && (<src.targ.tag0.stunblowvar>=0) && (<src.targ.tag0.movebackvar>=0)
SRC.targ.tag.bleedingvar 1
SRC.SYSMESSAGE @1153 Complete.
REMOVE
RETURN 1
ELSE
SRC.SYSMESSAGE @1153 Hata !!
RETURN 1
ENDIF
ELSE
SRC.SYSMESSAGE @1153 Kullanim Hatasi
RETURN 1
ENDIF


///////////////BLEEDİNG///////////

[events e_gorev_bleed]
On=@Hit
if !(RAND(15)) && !(<src.findid.i_gorev_bleed1>) && !(<src.findid.i_gorev_bleed2>)
src.HITS= (<src.HITS>+(-50))
src.skill fail
var.act <src.act.uid>
src.newitem i_gorev_bleed1
src.act.equip
src.newitem i_gorev_bleed2
src.act.equip
src.act <var.act>
src.yara_message
return 1
endif

[function yara_message]
dorand 4
src.sayua 145,6,6,0 * Kolunuz Kesilir *
src.sayua 145,6,6,0 * Bacağınız Kesilir *
src.sayua 145,6,6,0 * Eliniz Kesilir *
src.sayua 145,6,6,0 * Vicudunuzda Yara Açar *
enddo


[events e_bleed]
On=@Death
findid.i_gorev_bleed1.remove
findid.i_gorev_bleed2.remove

[itemdef i_gorev_bleed1]
name=yaralanir
id=i_gold
type=t_eq_script
weight=0
layer=layer_special

On=@Equip
src.events +e_bleed
timer 5

on=@death
src.events e_bleed

On=@UnEquip
cont.events -e_bleed
if !(<cont.flags>&statf_dead)
endif

On=@Timer
if (<cont>)
IF (<cont.NPC>==0)
timer 7
cont.sayua 60,6,6,0 * Kan Kaybeder *
cont.skill fail
cont.anim 20
cont.HITS= (<cont.HITS>+(-50))
cont.skill fail
else
timer 5
cont.sayua 60,6,6,0 * [NPC] Kan Kaybeder *
cont.skill fail
cont.anim 20
cont.HITS= (<cont.HITS>+(-125))
cont.skill fail
endif
return 1

[itemdef i_gorev_bleed2]
name=yaraniz kapanir
id=i_gold
type=t_eq_script
weight=0
layer=layer_special

On=@Equip
src.events +e_bleed
timer 42

On=@UnEquip
cont.events -e_bleed
if !(<cont.flags>&statf_dead)
endif

On=@Timer
if (<cont>)
cont.sayua 075f,6,6,0 * Yarasi Kapanir *
cont.findid.i_gorev_bleed1.remove
attr attr_decay
remove
return 1
endif

////////////////////////////////////////////////////////

[ITEMDEF i_stunblow_upgrade]
Id 2075
name Stunblow Upgrade
type t_script
value 20000

on=@Create
attr 00

on=@Click
message @60 [<name>]
return 1

on=@Dclick
IF !(<src.RESTEST i_stunblow_upgrade>)
src.sysmessage @38,,1 Hata: Upgrade Cantanizda Olmasi Gerekiyor.
return 1
else
If (<topobj.uid> != <src.uid>)
src.sysmessage @38,,1 Bu eşyayı sadece cantanizdayken kullanabilirsiniz.
return 1
endif
target Silahi Seciniz ?
return 1
endif

ON=@TARGON_CHAR
RETURN 1
ON=@TARGON_GROUND
RETURN 1

ON=@TARGON_ITEM
if ((<src.targ.isweapon>) && (<src.targ.tag0.stunblowvar>=0) && (<src.targ.tag0.bleedingvar>=0) && (<src.targ.tag0.movebackvar>=0)
SRC.targ.tag.stunblowvar 1
SRC.SYSMESSAGE @1153 Complete.
REMOVE
RETURN 1
ELSE
SRC.SYSMESSAGE @1153 Hata !!
RETURN 1
ENDIF
ELSE
SRC.SYSMESSAGE @1153 Kullanim Hatasi
RETURN 1
ENDIF


/////////////////////stunblow//////////////////////////


[events e_sersemletme]
ON=@Hittry
if !(RAND(18)) && !(<src.findid.i_sersemledin>) 
src.damage {20 30}
src.skill fail
var.act <src.act.uid>
src.newitem i_sersemledin
src.act.equip
src.act <var.act>
src.act.timer 1
src.sayua 0800,0,0,0 * Bayılır *
src.anim 24
return 1
endif

[itemdef i_sersemledin]
name=sersem itemi
id=i_memory
type=t_eq_script
layer=layer_special

on=@create
attr=attr_decay | attr_newbie

on=@equip
timer 2
SRC.FLAGS=<SRC.FLAGS>|04

on=@timer
cont.flags=<cont.FLAGS>&~04
cont.sayua 145,6,6,0 * Kendine Gelir *
remove
return 1




///////////////////////////////////////////////

[ITEMDEF i_moveback_upgrade]
Id 2076
name Moveback Upgrade
type t_script
value 20000

on=@Create
attr 00

on=@Click
message @60 [<name>]
return 1

on=@Dclick
IF !(<src.RESTEST i_moveback_upgrade>)
src.sysmessage @38,,1 Hata: Upgrade Cantanizda Olmasi Gerekiyor.
return 1
else
If (<topobj.uid> != <src.uid>)
src.sysmessage @38,,1 Bu eşyayı sadece cantanizdayken kullanabilirsiniz.
return 1
endif
target Silahi Seciniz ?
return 1
endif

ON=@TARGON_CHAR
RETURN 1
ON=@TARGON_GROUND
RETURN 1

ON=@TARGON_ITEM
if ((<src.targ.isweapon>) && (<src.targ.tag0.movebackvar>=0) && (<src.targ.tag0.bleedingvar>=0) && (<src.targ.tag0.stunblowvar>=0)
SRC.targ.tag.movebackvar 1
SRC.SYSMESSAGE @1153 Complete.
REMOVE
RETURN 1
ELSE
SRC.SYSMESSAGE @1153 Hata !!
RETURN 1
ENDIF
ELSE
SRC.SYSMESSAGE @1153 Kullanim Hatasi
RETURN 1
ENDIF


////////////////////MoveBack


[function moveback]
doswitch <src.dir>
begin
if (<src.canmove s>)
src.move s
endif
end

begin
if (<src.canmove sw>)
src.move sw
endif
end

begin
if (<src.canmove w>)
src.move w
endif
end

begin
if (<src.canmove nw>)
src.move nw
endif
end

begin
if (<src.canmove n>)
src.move n
endif
end

begin
if (<src.canmove ne>)
src.move ne
endif
end

begin
if (<src.canmove e>)
src.move e
endif
end

begin
if (<src.canmove se>)
src.move se
endif
end

begin
if (<src.canmove s>)
src.move s
endif
end
enddo


////////////////////Silah Örnek//////////////////////////

[ITEMDEF I_Acid_Kryss]
ID=I_Kryss
NAME=Acid Kryss
DAM=39,49
weight=1
speed 68
REQSTR=350

ON=@Click
src.sysmessage @1153,,1 [Acid Kryss: Gereken Str:350 Damage:39-49]
if (<tag0.bleedingvar>=1)
message @60 [Bleeding Upgrade]
endif
if (<tag0.stunblowvar>=1)
message @60 [Stunblow Upgrade]
endif
if (<tag0.movebackvar>=1)
message @60 [Moveback Upgrade]
endif

ON=@Create

HITPOINTS=50000
COLOR=0806

ON=@DAMAGE
if (<tag0.movebackvar>=1)
src.moveback
endif

ON=@EQUIP
if (<tag0.bleedingvar>=1)
src.events +e_bleeding
return 1
endif
if (<tag0.stunblowvar>=1)
src.events +e_stunblow
return 1
endif
return 1


ON=@UNEQUIP
if (<tag0.bleedingvar>=1)
src.events -e_bleeding
return 1
endif
if (<tag0.stunblowvar>=1)
src.events -e_stunblow
return 1
endif

[EOF]


Materyal Çantası Sistemi

Scriptin işlevi: .add i_matbag yazıp çantayı yaratıyoruz ve kullanıyoruz.
Resimler:

http://i1005.hizliresim.com/2010/5/2/3744.png

http://i1005.hizliresim.com/2010/5/2/3749.png

http://i1005.hizliresim.com/2010/5/2/3753.png

http://i1005.hizliresim.com/2010/5/2/3757.png

http://i1005.hizliresim.com/2010/5/2/3762.png


Kod:
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
//
// BAŞLANGIÇ
//
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/

/////
/// Arrayların çalışması için gerekli komuttur silmeyin.
/////

[function dizi]
local.dizi <argv[<eval <argv> - 1>]> - 1
return <argv[<dlocal.dizi>]>

/////
/// Def. ayarlarını kendinize göre yapabilirsiniz, diğerleri bölümüne bişey eklediginizde ordaki
/// 2. virgüldeki sayıyıda arttırın nekadar eklerseniz okadar arttırın.
/// max. ekleme sınırını arttırmak içinde 1. virgüldeki sayıyı arttırabilirsiniz.
/////

[defname mat_options]
Reg 500,8,i_reag_black_pearl,i_reag_blood_moss,i_reag_garlic,i_reag_ginseng,i_reag_mandrake_root,i_reag_nightshade,i_reag_sulfur_ash,i_reag_spider_silk  // reg sayısı, regler, her regden max kaçtane
Ore 400,12,i_ore_iron,i_ore_dull_copper,i_ore_copper,i_ore_bronze,i_ore_gold,i_ore_shadow,i_ore_agapite,i_ore_verite,i_ore_valorite,i_ore_mytheril,i_ore_bloodrock,i_ore_blackrock  // ore sayısı, orelar, her oredan max kaçtane
Ingot 450,12,i_ingot_iron,i_ingot_dull_copper,i_ingot_copper,i_ingot_bronze,i_ingot_gold,i_ingot_shadow,i_ingot_agapite,i_ingot_verite,i_ingot_valorite,i_ingot_mytheril,i_ingot_bloodrock,i_ingot_blackrock  // ingot sayısı, ingotlar, her ingotdan max kaçtane
Other 750,6,i_bandage,i_potion_Healgreat,i_potion_curegreat,i_cloth,i_log,i_scroll_blank

/////
/// Ana itemimiz.
/////

[itemdef i_matbag]
id i_backpack
name Material Bag
weight 25
type t_eq_script
value 64205

ON=@Create
for 1 <dizi <def.reg>,2>
tag.reg<dlocal._for> 0
endfor
for 1 <dizi <def.ore>,2>
tag.ore<dlocal._for> 0
endfor
for 1 <dizi <def.ingot>,2>
tag.ingot<dlocal._for> 0
endfor
for 1 <dizi <def.other>,2>
tag.other<dlocal._for> 0
endfor
color 0835
attr 06

ON=@Click
message @07a1,1,1 <name>
return 1

on=@Dclick
src.matbag Reg,<uid>
return 1

/////
/// Dialog açma aparatı
/////

[function matbag]
ctag.matmenu <args>
dialogclose d_matbag_cikart
dialogclose d_matbag
dialog d_matbag

/////
/// Malzeme çıkartma ekranı
/////

[dialog d_matbag_cikart]
0,0
nomove
ref2 <dizi <ctag.matopts>,3>
local.materyal <dizi <ctag.matopts>,1>
local.sira <dizi <ctag.matopts>,2>
local.max <dizi <def.<local.materyal>>,1>
local.eklemat <dizi <ctag.matopts>,4>
resizepic 20 20 5120 310 100
resizepic 25 25 3000 300 90
resizepic 90 45 3000 38 30
dtextentry 93 50 30 20 0 0 <ref2.dtag.<local.materyal><dlocal.sira>>
dhtmlgump 35 50 100 20 0 0 <def.bfont_dred>Çantadan
dhtmlgump 135 50 200 20 0 0 <def.bfont_dred>adet <def.bfont_dgreen><serv.itemdef.<local.eklemat>.name> <def.bfont_dred>çıkart.
dhtmlgump 55 85 100 20 0 0 <def.bfont_dred>Tamam
button 35 85 56 56 1 0 1

[dialog d_matbag_cikart button]
on 1
ref2 <dizi <ctag.matopts>,3>
local.materyal <dizi <ctag.matopts>,1>
local.sira <dizi <ctag.matopts>,2>
local.max <dizi <def.<local.materyal>>,1>
local.eklemat <dizi <ctag.matopts>,4>

if !<isnum <argtxt[0]>>
sysmessage @0846,1,1 Sadece sayıları kullanabilirsiniz.
dialog d_matbag_cikart
return 1
endif

if <argtxt[0]> > <ref2.dtag.<local.materyal><dlocal.sira>>
sysmessage @0846,1,1 Çantada bukadar <serv.itemdef.<local.eklemat>.name> bulunmuyor.
dialog d_matbag_cikart
return 1
endif

timerf 1,sysmessage @0846,1,1 Material çantanızdan <dargtxt[0]> adet <serv.itemdef.<local.eklemat>.name> çıkartıldı.
serv.newitem <local.eklemat>
new.amount <argtxt[0]>
new.bounce
new.fix
ref2.tag.<local.materyal><dlocal.sira> -=<argtxt[0]>
src.matbag <local.materyal>,<ref2>

/////
/// Ana dialog'umuz zaten bundan başka dialog yok çıkartma dışında.
/////

[dialog d_matbag]
0,0
nomove

resizepic 20 20 5120 750 550
resizepic 25 25 3000 740 540
resizepic 35 55 3000 720 2
dhtmlgump 305 35 200 20 0 0 <def.bfont_size7><def.bfont_dred><serv.servname> Material Bag Sistemi

ref1 <dizi <ctag.matmenu>,2>
local.page <def.<dizi <ctag.matmenu>,1>>
local.carp 35
local.ekle 40

// bu istisnalar dialog dizaynının görüntü güzelliği için.
//istisna 1
if strmatch('<dizi <ctag.matmenu>,1>','Ore')
local.ore 1
endif

//istisna 2
if strmatch('<dizi <ctag.matmenu>,1>','Ingot')
local.ingot 1
endif

if strmatch('<dizi <ctag.matmenu>,1>','Other')
local.other 1
endif

resizepic 35 488 3000 720 2
dhtmlgump 125 518 200 20 0 0 <def.bfont_dred>Aktif Bölüm : <def.bfont_dgreen><qval (<local.other> = 1)? Diğer:<dizi <ctag.matmenu>,1>>

if strmatch('<dizi <ctag.matmenu>,1>','reg')
dhtmlgump 400 505 200 20 0 0 <def.bfont_dgray>Reg Bölümü Seçili
else
dhtmlgump 400 505 200 20 0 0 <def.bfont_dred>Reg Bölümüne Geç
button 380 505 55 55 1 0 31001
endif

if strmatch('<dizi <ctag.matmenu>,1>','Ore')
dhtmlgump 600 505 200 20 0 0 <def.bfont_dgray>Ore Bölümü Seçili
else
dhtmlgump 600 505 200 20 0 0 <def.bfont_dred>Ore Bölümüne Geç
button 580 505 55 55 1 0 31002
endif

if strmatch('<dizi <ctag.matmenu>,1>','other')
dhtmlgump 400 530 200 20 0 0 <def.bfont_dgray>Diğerleri Bölümü Seçili
else
dhtmlgump 400 530 200 20 0 0 <def.bfont_dred>Diğerleri Bölümüne Geç
button 380 530 55 55 1 0 31003
endif

if strmatch('<dizi <ctag.matmenu>,1>','ingot')
dhtmlgump 600 530 200 20 0 0 <def.bfont_dgray>Ingot Bölümü Seçili
else
dhtmlgump 600 530 200 20 0 0 <def.bfont_dred>Ingot Bölümüne Geç
button 580 530 55 55 1 0 31004
endif

for x 1 <dizi <local.page>,2>
tilepic <qval (<local.ingot> = 1)? 20:30> <eval (<dlocal.x>*<dlocal.carp>)+<dlocal.ekle>> <qval (<local.ore> = 1)? 019b8:<serv.itemdef.<dizi <local.page>,<eval <dlocal.x>+2>>.id>>
dhtmlgump 75 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+3>> 500 20 0 0 <def.bfont_dred>Materyal çantanızda <def.bfont_dgreen><ref1.dtag.<dizi <ctag.matmenu>,1><dlocal.x>> <def.bfont_dred>adet <def.bfont_dblue><serv.itemdef.<dizi <local.page>,<eval <dlocal.x>+2>>.name><def.bfont_dred> bulunmaktadır. (<def.bfont_dgreen><ref1.dtag.<dizi <ctag.matmenu>,1><dlocal.x>><def.bfont_dred>/<def.bfont_red><dizi <local.page>,1><def.bfont_dred>)
resizepic 35 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+28>> 3000 720 2
local.olan <ref1.dtag.<dizi <ctag.matmenu>,1><dlocal.x>>
local.max <dizi <local.page>,1>
local.yuzde <eval <eval <local.olan>*100> / <local.max>>
resizepic 610 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+9>> 3000 102 12
resizepic 610 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+11>> 5120 <dlocal.yuzde> 8
dhtmlgump 540 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+5>> 400 20 0 0 <def.bfont_dred> %<def.bfont_dgreen><dlocal.yuzde> <def.bfont_dred>dolu
if <local.olan> != <local.max>
button 720 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+7>> 55 55 1 0 <dlocal.x>
endif
if <local.olan> > 0
button 740 <eval (<dlocal.x>*<dlocal.carp>)+<eval <dlocal.ekle>+7>> 56 56 1 0 <eval <dlocal.x>+100>
endif
endfor

[dialog d_matbag button]
on 1 100
sysmessage @0846,1,1 Eklemek istediğiniz <serv.itemdef.<dizi <def.<dizi <ctag.matmenu>,1>>,<eval <dargn>+2>>.name> isimli materyali seçiniz.
targetf eklemat <dizi <ctag.matmenu>,1>,<dargn>,<dizi <ctag.matmenu>,2>,<dizi <def.<dizi <ctag.matmenu>,1>>,<eval <dargn>+2>>

on 101 5000
sysmessage @0846,1,1 <serv.itemdef.<dizi <def.<dizi <ctag.matmenu>,1>>,<eval <eval <dargn>-100>>+2>.name> isimli materyalden nekadar çıkartmak istediğinizi yazınız.
ctag.matopts <dizi <ctag.matmenu>,1>,<eval <dargn>-100>,<dizi <ctag.matmenu>,2>,<dizi <def.<dizi <ctag.matmenu>,1>>,<eval <eval <dargn>-100>>+2>
dialogclose d_matbag_cikart
dialog d_matbag_cikart

on 31001
matbag Reg,<dizi <ctag.matmenu>,2>
on 31002
matbag Ore,<dizi <ctag.matmenu>,2>
on 31003
matbag Other,<dizi <ctag.matmenu>,2>
on 31004
matbag Ingot,<dizi <ctag.matmenu>,2>

/////
/// burasıda malzeme ekleme olayı, bütün bölümler ve malzemeler tek bi komutta ekleniyor.
/////

[function eklemat]
ref2 <dizi <args>,3>
local.materyal <dizi <args>,1>
local.sira <dizi <args>,2>
local.max <dizi <def.<local.materyal>>,1>
local.eklemat <dizi <args>,4>

if <argo.baseid> != <local.eklemat>
src.sysmessage @0846,1,1 Bu seçtiğiniz bir <serv.itemdef.<local.eklemat>.name> değil.
targetf eklemat <dizi <args>,1>,<dizi <args>,2>,<dizi <args>,3>,<dizi <args>,4>
return 1
endif

if <argo.cont> != <src.findlayer.21.uid>
src.sysmessage @0846,1,1 Sadece çantanızdaki <serv.itemdef.<local.eklemat>.name> isimli materyalleri ekleyebilirsiniz.
targetf eklemat <dizi <args>,1>,<dizi <args>,2>,<dizi <args>,3>,<dizi <args>,4>
return 1
endif

local.eklencek <argo.amount>

if <eval <argo.amount> + <ref2.tag.<local.materyal><dlocal.sira>>> >= <dlocal.max>
local.eklencek <eval <dlocal.max>-<ref2.tag.<local.materyal><dlocal.sira>>>
timerf 1,src.sysmessage @0846,1,1 Seçtiğiniz <serv.itemdef.<local.eklemat>.name> materyalinin <eval <argo.amount>-<local.eklencek>> adet kadarı sığmadı.
endif

src.consume <local.eklemat> <local.eklencek>
timerf 1,src.sysmessage @0846,1,1 <dlocal.eklencek> adet <serv.itemdef.<local.eklemat>.name> materyali çantaya eklendi.
ref2.tag.<local.materyal><dlocal.sira> +=<dlocal.eklencek>
src.matbag <local.materyal>,<ref2>

[EOF]


Lottery Sys.

Scriptin işlevi: Her hafta yapılan milli piyango çekilişlerinin sphereye uyarlanmış hali.
Resimler:

http://i1005.hizliresim.com/2010/5/2/6490.jpg

http://i1005.hizliresim.com/2010/5/2/6492.jpg

http://i1005.hizliresim.com/2010/5/2/6496.jpg


Kod:
[DEFNAME SETTINGS_LOTTERY]
TICKET_PRICE "20000"
TICKETS_4SALE "400" // toplam sat??a ç?kar?lan bilet miktar?
TICKET_ODUL_1 büyük ödül
TICKET_ODUL_2 normal ödül
TICKET_ODUL_3 teselli ödülü

amorti 10 // amorti yüzdesi

check_id = i_makbuz

[CHARDEF C_H_PIYANGO]
ID C_MAN
NAME #NAMES_HUMANMALE
CAN MT_wALK

ON=@CREATE
f_install_lottery
NPC=BRAIN_VENDOR
STR {25 67}
DEX {12 18}

COLOR COLORS_SKIN
ITEM=i_hair_long
COLOR 07a1
ITEM=I_ROBE
COLOR 0455
ATTR 04
ITEM=I_BOOTS_cALF
COLOR 0455
ATTR 04
ITEM=I_STAFF_BLACK
ITEM=I_APRON_HALF
COLOR 0455
ATTR 04

ON=@gethit
return 1

ON=@spelleffect
return 1

ON=@death
hits = <str>
return 1

ON=@CLICK
message @1153,,1 [Piyango Görevlisi]
MESSAGE @1153,,1 <NAME>
RETURN 1

on=@dclick
SDIALOG D_buy_ticket
RETURN 1

ON=@NPCSEENEWPLAYER
dorand 3
sayu Hey <src.name>!
say_trk <src.name> şansını denemek istemezmisin?
say_trk kolay yoldan para kazanmak istiyorsan beni arıyorsun ?
ENDDO

[DIALOG d_buy_ticket]
0,0
page 0
resizepic 31 53 2550 281 211
if !(<db.connected>)
db.connect
endif
db.query "SELECT COUNT(TicketUid) FROM game_cekilis "
db.close
dhtmlgump 90 70 200 25 0 0 <DEF.BFONT_red><serv.servname> Piyango Çekilişi
if (<var0.devreden>)
local.a (<db.row.0>*<def.ticket_price>)
local.b (<var.devreden>*<def.ticket_price>)
local.c <eval (<local.a>+<local.b>)>
else
local.c (<db.row.0>*<def.ticket_price>)
endif
dhtmlgump 75 100 200 200 0 0 <def.small><DEF.BFONT_RED><EVAL <SERV.AGE>/7>. hafta<DEF.BFONT_BLACK> çekilişinde toplam <DEF.BFONT_RED><ddef.tickets_4sale><DEF.BFONT_BLACK> bilet satışa çıkarılmıştır. Şuana kadar <DEF.BFONT_RED><ddb.row.0><DEF.BFONT_BLACK> bilet satılmış olup, şuan için büyük ödül <def.bfont_red><f_bolukayir <eval <dlocal.c>/2>><def.bfont_black>gp'ye ulaşmıştır. Bir bilet <def.bfont_Red><f_bolukayir <ddef.ticket_price>> <def.bfont_black>altındır.
dhtmlgump 80 200 200 23 0 0 <DEF.BFONT_BLACK>bir bilet satın almak istiyorum.
button 55 200 5550 5551 1 0 1

resizepic 31 280 2550 281 100
dhtmlgump 50 300 240 70 0 0 <def.small>Şuana kadar buradan alınan <def.bfont_red><REGION.DTAG0.TICKET> kupondan <def.black>toplam <def.bfont_red><region.dtag0.BigPrize> adet büyük ödül, <region.dtag0.normalprize> adet normal ödül, <region.dtag0.amortiprize><def.bfont_black> adet amorti ödülü çıkmıştır.


[DIALOG D_BUY_TICKET BUTTON]
ON=1

if <src.account.tag0.aldiklarim> == 3
src.sysh_trk Her hafta en fazla 3 adet kupon alabilirsiniz.
return 1
endif

if !(<db.connected>)
db.connect
endif
db.query "SELECT COUNT(TicketUid) as bilet FROM game_cekilis "
sysmessage @977a,,1 <db.row.0>
IF (<SRC.GOLD> < <DEF.TICKET_PRICE>)
SRC.sysh_trk yeterli paranız yok.
RETURN 1
ENDIF

IF (<DB.ROW.0.bilet> >= <DEF.TICKETS_4SALE>)
SRC.sysh_trk kuponlar tükenmiş.
RETURN 1
ENDIF

SERV.NEWITEM I_TICKET_LOTTERY,1,<SRC.UID>
DB.EXECUTE "INSERT INTO `game_cekilis` (`TicketUid` ,`ODUL`, `TicketRegion`) VALUES ('<NEW.UID>',0,'<SRC.P>');"

SRC.GOLD -=<DEF.TICKET_PRICE>
REGION.TAG0.TICKET ++
src.account.tag0.aldiklarim ++

db.close

[FUNCTION Cekilisbaslat]
if !(<db.connected>)
db.connect
endif

db.query "SELECT COUNT(TicketUid) as bilet FROM game_cekilis "

if (<db.row.0.bilet> < 10)
sysmessage @,,1 Yeterli katılım olmamış çekilişi daha sonra yapın.
return 1
endif

local.amorti = <db.row.0.bilet>
LOCAL.GREATPRIZE <qval (<var0.devreden>)?<eval <db.row.0.bilet>+<var0.devreden>>:<db.row.0.bilet>>
IF (<R1,3> = 1)
if (<var0.devreden>)
var.devreden +=<eval <db.row.0.bilet>/2>
else
var.devreden <eval <db.row.0.bilet>/2>
endif
serv.newitem i_gold
LOCAL.SERIAL <EVAL STRLEN(<NEW.UID>)>
serv.allclients sound 247
serv.allclients sysmessage @07a0,,1 Nimloth <eval <serv.age>/7>.hafta çekilişinde büyük ödül <STRSUB <EVAL (<LOCAL.SERIAL>-4)> <DLOCAL.SERIAL> <NEW.UID>> nolu bilete çıkmıştır. Bu bilet satın alınmadığı için çekiliş haftaya devretmiştir.
serv.allclients sysmessage @07a0,,1 Amorti ödüllü kazananlar ödüllerini bayilerimizden alabilirler
new.remove
else
DB.query "select * from game_cekilis WHERE ODUl= 0 order by rand() limit 1"
SERV.NEWITEM I_GOLD
NEW.P <DB.ROW.0.TicketRegion>
LOCAL.SERIAL <EVAL STRLEN(<db.row.0.TicketUid>)>
serv.allclients sound 247
serv.allclients sysmessage @07a0,,1 Bu haftaki buyuk ikramiyeyi kazanan kupon <new.region.name>  şehrinden alınan <STRSUB <EVAL (<LOCAL.SERIAL>-4)> <DLOCAL.SERIAL> <db.row.0.TicketUid>> numaralı kupon olmuştur. Kazanan oyuncuyu tebrik ediyoruz.
DB.EXECUTE "UPDATE game_cekilis SET ODUL=1 WHERE TicketUid='<DB.ROW.0.TicketUid>'"
UID.<DB.ROW.0.TicketUid>.COLOR 07AD
UID.<DB.ROW.0.TicketUid>.MOREY (<LOCAL.GREATPRIZE>/2)
NEW.REGION.TAG0.BigPrize ++
NEW.REMOVE
var.devreden
endif

/////////////////////////////////////////////////////////////////////////////////////
DB.query "select * from game_cekilis WHERE ODUl= 0 order by rand() limit 2"
UID.<DB.ROW.0.TicketUid>.COLOR 0810
UID.<DB.ROW.1.TicketUid>.COLOR 0810
DB.EXECUTE "UPDATE game_cekilis SET ODUL=2 WHERE TicketUid='<DB.ROW.0.TicketUid>'"
DB.EXECUTE "UPDATE game_cekilis SET ODUL=2 WHERE TicketUid='<DB.ROW.1.TicketUid>'"
UID.<DB.ROW.0.TicketUid>.MOREY (<LOCAL.GREATPRIZE>/5)
UID.<DB.ROW.1.TicketUid>.MOREY (<LOCAL.GREATPRIZE>/5)
SERV.NEWITEM I_GOLD
NEW.P <DB.ROW.0.TicketRegion>
NEW.REGION.TAG0.NormalPrize ++
NEW.P <DB.ROW.1.TicketRegion>
NEW.REGION.TAG0.NormalPrize ++
NEW.REMOVE
/////////////////////////////////////////////////////////////////////////////////////////
DB.query "select * from game_cekilis WHERE ODUl= 0 order by rand() limit <f_yuzde <def.amorti>,<dlocal.amorti>>"
FOR 0 <EVAL <DB.ROW.NUMROWS>-1>
UID.<DB.ROW.<DLOCAL._FOR>.TicketUid>.COLOR 080A
UID.<DB.ROW.<DLOCAL._FOR>.TicketUid>.morey = 1
DB.EXECUTE "UPDATE game_cekilis SET ODUL=3 WHERE TicketUid='<DB.ROW.<DLOCAL._fOR>.TicketUid>'"
SERV.NEWITEM I_GOLD
NEW.P <DB.ROW.<DLOCAL._FOR>.TicketRegion>
NEW.REGION.TAG0.AmortiPrize ++
NEW.REMOVE
ENDFOR
////////////////////////////////////////////////////////////////////////////////////////////////////
DB.QUERY "SELECT TicketUid FROM game_cekilis WHERE ODUL= 0 "
FOR 0 <eval <DB.ROW.NUMROWS>-1>
UID.<DB.ROW.<DLOCAL._FOR>.TicketUid>.REMOVE
ENDFOR
db.close
cleandatabase game_cekilis

for 0 <eval <serv.accounts>-1>
serv.account.<dlocal._for>.tag0.aldiklarim =
endfor
endif
[ITEMDEF I_TICKET_LOTTERY]
ID I_DEED
NAME piyango kuponu
WEIGHT 12
TYPE T_SCRIPT

ON=@CREATE
ATTR ATTR_NEWBIE
COLOR 02e2

ON=@CLICK
LOCAL.SERIAL <EVAL STRLEN(<UID>)>
IF (<MOREY>)
MESSAGE @,,1 [<f_bolukayir <EVAL <MOREY>*<DEF.TICKET_PRICE>>>]
endif
MESSAGE @63 [Bilet No :<STRSUB <EVAL (<LOCAL.SERIAL>-4)> <DLOCAL.SERIAL> <UID>>]
message piyango kuponu
return 1

ON=@DCLICK
IF !(<color>=02e2)
TARGET @,,1 biletinizi bozdurmak istediginiz görevliyi seçin ?
return 1
endif
src.sysh_trk Haftalık çekilişler Pazar günü saat 19:30'da yapılır.
return 1

ON=@TARGON_CHAR
IF (<SRC.TARG.BASEID>==C_H_PIYANGO)
IF (<MOREY>)
serv.newitem <def.check_id>,1,<src.uid>
new.more1 = <EVAL <MOREY>*<DEF.TICKET_PRICE>>
new.more2 = <src.targ.uid>
SRC.SYSMESSAGE @,,1 <EVAL <MOREY>*<DEF.TICKET_PRICE>> altın bankanıza aktarılmıştır.
REMOVE
ENDIF
ELSE
SRC.SYSMESSAGE @,,1 biletinizi herhangi bir piyango bayisinden bozdurabilirsiniz.
RETURN 1
ENDIF
return 1

ON=@destroy
if !(<db.connected>)
db.connect
endif
db.execute "delete from game_cekilis Where TicketUid = '<uid>';"
db.close

[function f_cekilis_recover]
db.query "select TicketUid from game_cekilis where Odul=0"
for 0 <eval <db.row.numrows>-1>
ref1=<db.row.<dlocal._for>.ticket_uid>
if !(<uid.<ref1.uid>>)
db.execute "delete from game_cekilis Where TicketUid = '<ref1.uid>';"
endif
endfor
[function cleandatabase]
if !(<db.connected>)
db.connect
endif

db.execute TRUNCATE TABLE `<args>`
db.close
sysh_trk <args> adlı veritabanı temizlenmiştir.


[function kazananbul]
forinstances i_ticket_lottery
if <color> == 0810
src.go <topobj.p>
endif
endfor
[eof]


Zindan Sistemi

Scriptin işlevi: Zindan sistemi oyuncuların topluca haraket etmesini , gurup anlayışını kavramalarını ve bu gurup anlayışı içerisinde birbirleri ile bir çok zorluğu aşıp zindanı tamamlamalarından oluşmaktadır.

Zindan yapılacak alanın kordinatları script içerisinde tanımlanıp bir area oluşturulur
Zindan içerisinde oluşturulacak yaratıklar , lootlar , şampıyon lootları belirlenir
Zindan içerisine yaratıklar spawn edilir. ( Her zindan yeni bir gurup girdiği zaman oto respawn olurlar )
Zindan içerisine bosslar yerleştirilir.
Zindana giriş taşı/gatesi yerleştirilir.
5 kişilik bir gurup/party oluşturulur.
Parti lideri taşa çift tıklar. Eğer zindan boş ise ve 5 kişilik gurup zindan taşı yakınında ise zindana girerler.
Zindana girdikten sonra girdikleri alan içerisinde yaratık bulunamaz.
Zindan içerisinde ölüm yoktur. Öldüğü varsayılan kişi belirli bir süre stone olur ve hiç bir işlevi bulunamaz.( PVP sunucusu için kullanışlı oluyor )
Zindanda lootlar otomatik olarak kişilere dağatılır. Her ölen NPC farklı bir kişiye sıra ile düşer.
Şampıyonlar ölürse loot ortak yapılır.
Eğer bir oyuncu oyundan düşerse parti ve zindan bozulur.
Eğer parti başkanı zindanı bitirme taşına basarsa zindan bozulur.
Zindan bozulduğu zaman çantanızdaki herşey ile safe kordinatına atılırsınız.

Resimler:

http://berserkuo.com/sistemler/zindan_sistemi/zindan-sistemi-uye-toplama.png

http://berserkuo.com/sistemler/zindan_sistemi/zindan-sistemi-ceset-lootlama.png

http://berserkuo.com/sistemler/zindan_sistemi/zindan-sistemi-dragolan_olduruldu.png


Kod:
// SON GUNCELLEME : Pazar, Mart 29, 2010
// TIP : Sıfırdan Hazırlama
VERSION=0.56b


//###################################################//
//####### Zindan sistemi değişken tanımları #########//
//###################################################//

[DEFNAME PARTY_SYSTEM]
DUNGEONPLACE = 5364,1767,-116
SAFEALAN = 5546,1648,0
RESTOCKERP = 5319,1587

//###################################################//
//####### Zindan sistemi alan tanımlaması ###########//
//###################################################//

[AREADEF A_INISTANCE_ROOM]
NAME=Zindan
RECT=5377,1780,5125,1523
P=5364,1767,-116
EVENTS=R_INISTANCE_EVENT
FLAGS=REGION_ANTIMAGIC_RECALL_IN|REGION_ANTIMAGIC_RECALL_OUT|REGION_ANTIMAGIC_GATE|REGION_ANTIMAGIC_TELEPORT|REGION_FLAG_NOBUILDING


//###################################################//
//######### Zindan sistemi genel işlemler ###########//
//###################################################//

[FUNCTION F_DUNGEON_RESTOCK]
REF1 = <VAR.RESTOCKERID>
IF (<REF1> == 0)
SERV.NEWITEM I_DUNGEON_RESTOCKER
NEW.P <DEF.RESTOCKERP>
REF1 = <NEW.UID>
ENDIF
REF1.ATTR ATTR_STATIC|ATTR_INVIS
REF1.REGION.RESTOCK

[FUNCTION F_PARTY_CONTROL]
IF (<SRC.ISINPARTY> == 1)
IF ((<SRC.PARTY.MEMBERS> == 5)
IF (<SRC.PARTY.MEMBER.0.UID> == <VAR.INISTANCELEADER>)
RETURN 1
ELSE
RETURN 0
ENDIF
ELSE
RETURN 0
ENDIF
ELSE
RETURN 0
ENDIF

[FUNCTION F_PARTY_CHECKER]
IF (<SRC.F_PARTY_CONTROL> == 0)
SRC.DUNGEONEXIT <VAR.INISTANCELEADER>
ELSE
SRC.TIMERF 5,F_PARTY_CHECKER
ENDIF

[ITEMDEF I_DUNGEON_RESTOCKER]
ID=01E9
NAME=Zindan Yenileyici
TYPE=T_NORMAL

ON=@CLICK
MESSAGE @39,0,1 [ Zindan Sistemi ]
MESSAGE @50,0,1 [ Zindan Yenileyicisi ]
SRC.SYSMESSAGE @39,0,1 Zindan Sistemi yenilenmesi için gerekli bir objedir lütfen bu obje ile oynamayınız aski halinde sorgusuz bloke edilirsiniz..
RETURN 1

ON=@CREATE
ATTR=ATTR_INVIS|ATTR_MOVE_NEVER|ATTR_STATIC|ATTR_DECAY
VAR.RESTOCKERID = <UID>
TIMER = 1

ON=@PICKUP_GROUND
RETURN 1

ON=@DCLICK
RETURN 1

ON=@DESTROY
RETURN 1

ON=@TIMER
IF !(<DVAR.INISTANCETIMER> == -1)
VAR.INISTANCETIMER -= 1
ENDIF
IF (<DVAR.INISTANCETIMER> == 3300)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 55 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 3000)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 50 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 2700)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 45 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 1800)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 30 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 900)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 15 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 450)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 7.5 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 225)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 3.5 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 60)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 1 dakika içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ELSEIF (<DVAR.INISTANCETIMER> == 10)
SERV.ALLCLIENTS SYSMESSAGE @39,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 <UID.<VAR.INISTANCELEADER>.NAME> ve partisi 10 saniye içerisinde zindanı bitiremezlerse zindandan atılacaktırlar..
ENDIF

IF (<DVAR.INISTANCETIMER> == 0)
DUNGEONEXIT <VAR.INISTANCELEADER>
VAR.INISTANCETIMER = -1
ENDIF
TIMER 1
RETURN 1


[REGIONTYPE R_INISTANCE_EVENT]
ON=@ENTER
IF (<SRC.ISPLAYER>) && !(<SRC.ISGM>)
IF (<SRC.ISEVENT.E_DUNGEONACTIVE> == 0)
SRC.TIMERF 5,SRC.GO <DEF.SAFEALAN>
ENDIF
ENDIF

ON=@EXIT
IF (<SRC.ISPLAYER>) && !(<SRC.ISGM>)
IF (<SRC.ISINPARTY> == 1)
SRC.DUNGEONEXIT <SRC.UID>
ENDIF
ENDIF

[ITEMDEF I_DUNGEON_STONE]
ID = 10901
NAME = Dungeon Stone
TYPE = T_DUNGEONSTONE
VALUE = 1

ON=@CREATE
COLOR = 07C4
ATTR = ATTR_STATIC

[TYPEDEF T_DUNGEONSTONE]
ON=@CLICK
MESSAGE @39,0,1 [ <SERV.NAME> ]
MESSAGE @07A1,0,1 Zindan Girişi
IF (<DVAR.ISPARTYACTIVE> == 1)
MESSAGE @39,0,1 Şu anda dolu
ELSEIF (<DVAR.ISPARTYACTIVE> == 0)
MESSAGE @50,0,1 Boş
ENDIF
RETURN 1

ON=@DCLICK
IF (<DISTANCE <SRC.UID>> > 5)
SRC.SYSMESSAGE @39,0,1 Bu sistemi kullanabilmek için taşa 5 kare yakın olmanız gerekmektedir..
ELSEIF (<SRC.ISINPARTY> == 0)
SRC.SYSMESSAGE @39,0,1 Bu sistemi sadece parti sahibi kullanabilir..
ELSEIF (<SRC.DCTAG.DUNGEONNOFLOOD> == 1)
SRC.SYSMESSAGE @39,0,1 Bu sistemi sadece 10 saniyede bir kullanabilirsiniz..
ELSEIF (<VAR.ISPARTYACTIVE> == 1)
SRC.SYSMESSAGE @39,0,1 Şu anda bir parti zindanı kullanmaktadır..
ELSEIF !(<SRC.PARTY.MEMBER.0.UID> == <SRC.UID>)
SRC.SYSMESSAGE @39,0,1 Bu sistemi sadece parti sahibi kullanabilir..
ELSEIF !(<SRC.PARTY.MEMBERS> == 5) && (<SRC.ACCOUNT.PLEVEL> == 1)
SRC.SYSMESSAGE @39,0,1 Bu sistemi kullanabilmek için partinizde 5 kişi olması gerekmektedir..
ELSEIF (<SRC.PARTYMEMBERCHECK <UID>,<SRC.UID>>)
SRC.SYSMESSAGE @39,0,1 Lütfen zindana girecek olan parti oyuncularınızı toplayıp tekrar deneyiniz..
ELSE
SRC.PARTY_TELEPORT <SRC.UID>
ENDIF
SRC.F_PARTYWAIT
RETURN 1

[FUNCTION DUNGEONEXIT]
REF1 = <ARGV[0]>
IF (<REF1> == 0)
RETURN 1
ENDIF
FOR PARTY_PLAYERS 0 4
REF2 = <VAR.INISTANCEMEMBER<DLOCAL.PARTY_PLAYERS>>
REF2.EVENTS -E_DUNGEONACTIVE
REF2.STONE 1
REF2.TIMERF 10,STONE 0
REF2.HITS = <REF2.STR>
REF2.TIMERF 10,GO <DEF.SAFEALAN>
REF2.FINDID.I_DUNGEON_QUITTER.REMOVE
REF2.SYSMESSAGE @39,0,1 <REF1.NAME> isimli oyuncu zindandan ayrıldığı için zindandan atıldınız..
REF2.SYSMESSAGE @39,0,1 10 saniye içerisinde safe alana ışınlanıcaksınız..
ENDFOR
VAR.ISPARTYACTIVE = 0
REF1.PARTY.DISBAND
SERV.ALLCLIENTS SYSMESSAGE @07A1,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 Zindan şu anda kullanılabilir durumdadır..
VAR.INISTANCETIMER = -1
VAR.INISTANCELEADER = 0
RETURN 1

[FUNCTION F_PARTYWAIT]
SRC.CTAG.DUNGEONNOFLOOD = 1
SRC.TIMERF 10,SRC.CTAG.DUNGEONNOFLOOD = 0

[FUNCTION PARTYMEMBERCHECK]
REF1 = <ARGV[0]>
REF2 = <ARGV[1]>
LOCAL.PARTYNOTALLOWED = 0
FOR PARTY_PLAYERS 0 <EVAL <REF2.PARTY.MEMBERS> - 1>
REF3 = <REF2.PARTY.MEMBER.<DLOCAL.PARTY_PLAYERS>.UID>
IF (<REF1.DISTANCE <REF3.UID>> > 5)
LOCAL.PARTYNOTALLOWED = 1
REF2.PARTY.MEMBER.0.SYSMESSAGE @39,0,1 <REF3.NAME> isimli oyuncu taştan 5 kare uzakta olduğu için işleminiz iptal edildi..
ENDIF
IF !(<REF3.FINDLAYER.25.UID> == 0)
LOCAL.PARTYNOTALLOWED = 1
REF2.PARTY.MEMBER.0.SYSMESSAGE @39,0,1 <REF3.NAME> isimli oyuncunun altında bineği olduğu için işleminiz iptal edildi..
ENDIF
ENDFOR
RETURN <DLOCAL.PARTYNOTALLOWED>

[FUNCTION PARTY_TELEPORT]
F_DUNGEON_RESTOCK
REF1 = <ARGV[0]>
FOR PARTY_PLAYERS 0 <EVAL <REF1.PARTY.MEMBERS> - 1>
REF2 = <REF1.PARTY.MEMBER.<DLOCAL.PARTY_PLAYERS>.UID>
REF2.EVENTS +E_DUNGEONACTIVE
REF2.GO <DEF.DUNGEONPLACE>
REF2.HITS = <REF2.STR>
REF2.MANA = <REF2.INT>
REF2.STAM = <REF2.DEX>
VAR.INISTANCEMEMBER<DLOCAL.PARTY_PLAYERS> = <REF2.UID>
ENDFOR
SERV.NEWITEM I_DUNGEON_QUITTER
NEW.CONT <REF1.UID>
REF1.TIMERF 5,F_PARTY_CHECKER
VAR.INISTANCELEADER = <REF1.PARTY.MEMBER.0.UID>
VAR.INISTANCETIMER = 3600
VAR.INISTANCELOOTSTART = 0
VAR.ISPARTYACTIVE = 1
SERV.ALLCLIENTS SYSMESSAGE @07A1,0,1 Zindan Sistemi :
SERV.ALLCLIENTS SYSMESSAGE @50,0,1 Zindana şu anda <REF1.NAME> ve partisi girmiş bulunmaktadır..

[EVENTS E_DUNGEONACTIVE]
ON=@CLICK
MESSAGE @39,0,1 [ Zindan Takımı ]
MESSAGE @50,0,1 <NAME>
RETURN 1

ON=@LOGOUT
SRC.DUNGEONEXIT <SRC.UID>

ON=@DEATH
BEYAZ 30 Saniye Donar
STONE 1
HITS = <STR>
TIMERF 30,STONE 0
RETURN 1

ON=@SPELLSELECT
IF (<ARGN1> == 45) || (<ARGN1> == 32) || (<ARGN1> == 52) || (<ARGN1> == 22)
SRC.SYSMESSAGE @39,0,1 Büyünüz zindanın kudretli güçleri tarafından bloke edilmiştir..
RETURN 1
ENDIF

ON=@HITTRY
IF !(<UID> == <SRC.UID>)
IF (<INSAMEPARTY <SRC.UID>>)
ACTION - 1
RETURN 1
ENDIF
ENDIF

ON=@ATTACK
TRIGGER=@HITTRY

ON=@SPELLEFFECT
IF !(<UID> == <SRC.UID>) && !(<ARGN> == 59) && !(<ARGN> == 4) && !(<ARGN> == 29)
IF (<INSAMEPARTY <UID>>)
SRC.ACTION - 1
RETURN 1
ENDIF
ENDIF

ON=@HIT
TRIGGER=@HITTRY

ON=@ITEMDCLICK
IF (<ACT.BASEID> == I_RUNEBOOK)
SRC.SYSMESSAGE @39,0,1 Zindanın kudretli güçleri eşyanın kullanılmasını engelliyor..
RETURN 1
ENDIF
IF (<ACT.LINK> != <SRC.UID>)
IF (<ACT.ID> == 02006) && !(<ACT.LINK> == 04FFFFFFF)
RETURN 1
ENDIF
ENDIF

ON=@MOUNT
SRC.SYSMESSAGE @39,0,1 Bu alanda bineğe binemezsiniz..
RETURN 1

ON=@ITEMTARGON_ITEM
IF (<ARGO.LINK> != <UID>)
IF (<ARGO.ID> == 02006) && !(<ARGO.LINK> == 04FFFFFFF)
RETURN 1
ENDIF
ENDIF

[FUNCTION INSAMEPARTY]
IF ((<UID.<ARGV[0]>.ISINPARTY>) && (<ISINPARTY>))
IF <UID.<ARGV[0]>.PARTY.MEMBER.0.UID>==<PARTY.MEMBER.0.UID>
RETURN 1
ELSE
RETURN 0
ENDIF
ELSE
RETURN 0
ENDIF

[ITEMDEF I_DUNGEON_QUITTER]
ID=01F19
NAME=Zindan Bitirici
TYPE=T_NORMAL
VALUE=1

ON=@CREATE
COLOR 07B5
ATTR ATTR_NEWBIE

ON=@CLICK
MESSAGE @50,0,1 [ Zindan ]
MESSAGE @07A1,0,1 [ Zindan bitirici ]
RETURN 1

ON=@DCLICK
IF (<SRC.ISEVENT.E_DUNGEONACTIVE> == 1)
SRC.BEYAZ Zindan bitirici kullanır
SRC.DUNGEONEXIT <SRC.UID>
ENDIF
REMOVE
RETURN 1

//###################################################//
//########### Inistance Boss Eşyaları ###############//
//###################################################//

[ITEMDEF I_INISTANCE_POINT]
ID=9909
NAME=Zindan Puanı
TYPE=T_NORMAL
VALUE=1

ON=@CREATE
COLOR 07C5

ON=@DCLICK
SRC.SYSMESSAGE @39,0,1 Bu eşya zindan sistemindeki yaratıklardan çıkmaktadır.. Bu eşya ile zindan sisteminin özel olarak size sunduğu eşyaları satın alabilirsiniz..
RETURN 1

ON=@CLICK
MESSAGE @50,0,1 [ <AMOUNT> Adet ]
MESSAGE @07A1,0,1 <NAME>
RETURN 1

[ITEMDEF I_INISTANCE_RESURRECT]
ID=I_MOONGATE_BLACK
NAME=Diriltme Gatesi
TYPE=T_NORMAL

ON=@CREATE
COLOR 07C4
ATTR ATTR_STATIC

ON=@CLICK
MESSAGE @39,0,1 [ Zindan ]
MESSAGE @07A1,0,1 Diriltme Taşı
RETURN 1

ON=@STEP
IF (<SRC.HITS> == 0)
SRC.RESURRECT
SRC.BEYAZ Zindan gücü diriltir
RETURN 1
ENDIF

ON=@DCLICK
TRIGGER=@STEP

//###################################################//
//########### Inistance Boss Eventleri ##############//
//###################################################//

[EVENTS E_INISTANCE_EVENT]
ON=@CLICK
MESSAGE @07a1,0,1 [ Zindan ]
MESSAGE @39,0,1 <NAME>
RETURN 1

ON=@DCLICK
IF (!(<SRC.ACCOUNT.PLEVEL> == 1) && !(<SRC.DTAG.HIGHTERSTAFF> == 1))
RETURN 1
ENDIF

ON=@SPELLEFFECT
IF (<MANA> >= 40)
IF (<ARGN> == 20) || (<ARGN> == 38) || (<ARGN> == 43)
BEYAZ Resist
ATTACK
MANA -= 40
RETURN 1
ENDIF
ENDIF

ON=@DEATHCORPSE
ARGO.TAG.INISTANCELOOT = 1
ARGO.TAG.INISTANCELOOTER = <VAR.INISTANCEMEMBER<DVAR.INISTANCELOOTSTART>>

IF (<DVAR.INISTANCELOOTSTART> == 4)
VAR.INISTANCELOOTSTART = 0
ELSE
VAR.INISTANCELOOTSTART += 1
ENDIF

ON=@GETHIT
IF (<SRC.ISEVENT.E_DUNGEONACTIVE> == 0)
SRC.HITS -= 200
RETURN 1
ENDIF
IF (<MANA> >= 500)
IF (<HITS> <= <EVAL <STR>/4>)
HITS += <EVAL <STR> / 8>
MANA -= 500
BEYAZ Heal
EFFECT 3,0376A,1,30,1
SOUND SND_SPELL_HEAL
ENDIF
ENDIF

IF (<MANA> >= 25)
IF (<FINDID.I_RUNE_POISON>) || (<FINDID.I_RUNE_POISON_FIELD>)
IF (RAND(3) == 1)
FACE
ANIM 17
EFFECT 3,0376A,1,30,1
SOUND SND_SPELL_CURE
FINDID.I_RUNE_POISON.REMOVE
FINDID.I_RUNE_POISON_FIELD.REMOVE
MANA -= 25
BEYAZ Resist
ENDIF
ELSEIF (<SRC.FINDID.I_RUNE_SUMMON_CREATURE>) && (<MANA> > 20)
FACE
ANIM 17
SOUND SND_SPELL_DISPEL
SRC.HITS 0
MANA -= 25
MANA (<MANA> - 20)
BEYAZ Dispel
ENDIF
ENDIF

[EVENTS E_BOSS_EVENT]
ON=@CLICK
MESSAGE @50,0,1 [ Şampıyon ]
MESSAGE @39,0,1 <NAME>
RETURN 1

ON=@DCLICK
IF (!(<SRC.ACCOUNT.PLEVEL> == 1) && !(<SRC.DTAG.HIGHTERSTAFF> == 1))
RETURN 1
ENDIF

ON=@SPELLEFFECT
IF (<MANA> >= 40)
IF (<ARGN> == 20) || (<ARGN> == 38) || (<ARGN> == 43)
BEYAZ Resist
ATTACK
MANA -= 40
RETURN 1
ENDIF
ENDIF
IF (<ARGN> == 31) || (<ARGN> == 53)|| (<ARGN> == 20)
BEYAZ Resist
RETURN 1
ELSEIF (<ARGN> == 47) || (<ARGN> == 39)
FORITEMS 10
IF (<ATTR>&ATTR_MAGIC)
IF (<TYPE> == T_SPELL)
REMOVE
ENDIF
ENDIF
ENDFOR
BEYAZ Resist
RETURN 1
ENDIF

ON=@GETHIT
IF (<SRC.ISEVENT.E_DUNGEONACTIVE> == 0)
SRC.HITS -= 200
RETURN 1
ENDIF
IF (<MANA> >= 400)
IF (<HITS> <= <EVAL <STR>/4>)
HITS += <EVAL <STR> / 8>
MANA -= 400
BEYAZ Heal
EFFECT 3,0376A,1,30,1
SOUND SND_SPELL_HEAL
ENDIF
ENDIF

IF (<MANA> >= 25)
IF (<FINDID.I_RUNE_POISON>) || (<FINDID.I_RUNE_POISON_FIELD>)
IF (RAND(3) == 1)
FACE
ANIM 17
EFFECT 3,0376A,1,30,1
SOUND SND_SPELL_CURE
FINDID.I_RUNE_POISON.REMOVE
FINDID.I_RUNE_POISON_FIELD.REMOVE
MANA -= 25
BEYAZ Resist
ENDIF
ELSEIF (<SRC.FINDID.I_RUNE_SUMMON_CREATURE>) && (<MANA> > 20)
FACE
ANIM 17
SOUND SND_SPELL_DISPEL
SRC.HITS 0
MANA -= 25
MANA (<MANA> - 20)
BEYAZ Dispel
ENDIF
ENDIF

//###################################################//
//########## Inistance LowLevel Npcleri #############//
//###################################################//

[CHARDEF C_INISTANCE_LORD]
ID=C_ORC
NAME=Zindan Lordu
DAM=20,50
ARMOR={10 100}
TEVENTS=E_INISTANCE_EVENT

ON=@CREATE
COLOR=0455
NPC=BRAIN_MONSTER
STR={10 200}
DEX={100 500}
INT={100 300}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={1000 5999}
KARMA={-9998 -9999}

ON=@DEATH
F_INISTANCE_LOOT

[CHARDEF C_INISTANCE_WARRIOR]
ID=C_ORC_W_CLUB
NAME=Zindan Sovalyesi
DAM=20,50
ARMOR={50 150}
TEVENTS=E_INISTANCE_EVENT

ON=@CREATE
COLOR=50
NPC=BRAIN_MONSTER
STR={10 200}
DEX={100 500}
INT={100 300}
SWORDSMANSHIP={1000 2500}
TACTICS={1000 5000}
WRESTLING={1000 2500}
ANATOMY={1000 5000}
ARMSLORE={1000 5000}
PARRYING={1000 5000}

FAME={1000 5999}
KARMA={-9998 -9999}

ITEMNEWBIE=I_KATANA_VANQ
ITEMNEWBIE=I_BLACKROCK_HEATER_SHIELD

ON=@DEATH
F_INISTANCE_LOOT

[CHARDEF C_INISTANCE_MAGE]
ID=C_ORC
NAME=Zindan Buyucusu
DAM=20,50
ARMOR={10 50}
TEVENTS=E_INISTANCE_EVENT

ON=@CREATE
COLOR=025
NPC=BRAIN_MONSTER
STR={10 200}
DEX={100 300}
INT={100 500}
MAGERY={1000 2500}
MEDITATION={1000 5000}
EVALUATINGINTEL={1000 5000}
POISONING={1000 5000}

FAME={1000 5999}
KARMA={-9998 -9999}

ITEMNEWBIE=i_spellbook
ADDSPELL=s_fireball
ADDSPELL=s_energy_bolt
ADDSPELL=s_poison
ADDSPELL=s_flamestrike
ADDSPELL=s_explosion
ADDSPELL=s_curse
ADDSPELL=s_clumsy
ADDSPELL=s_paralyze
ADDSPELL=s_lightning

ON=@DEATH
F_INISTANCE_LOOT


//###################################################//
//############ Inistance Boss Npcleri ###############//
//###################################################//

[CHARDEF C_BOSS_COLOR]
DEFNAME=C_BOSS_COLOR
NAME=Gülyabani
CAN=MT_RUN|MT_WALK
ID=73
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

[CHARDEF C_BOSS_ORUMCEK2]
DEFNAME=C_BOSS_ORUMCEK2
NAME=Örümcek
CAN=MT_RUN|MT_WALK
ID=C_SPIDER_GIANT_2
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

[CHARDEF C_BOSS_ORUMCEK]
DEFNAME=C_BOSS_ORUMCEK
NAME=Karadul
CAN=MT_RUN|MT_WALK
ID=c_spider_lord
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

[CHARDEF C_BOSS_GORIL]
DEFNAME=C_BOSS_GORIL
NAME=Godzilla
CAN=MT_RUN|MT_WALK
ID=C_GORIL
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

[CHARDEF C_BOSS_CRYSTAL]
DEFNAME=C_BOSS_CRYSTAL
NAME=Kristalistik
CAN=MT_RUN|MT_WALK
ID=C_CRYSTAL_GOLEM
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
WRESTLING={1000 2500}
TACTICS={1000 5000}

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

[CHARDEF C_BOSS_DRAGON]
DEFNAME=C_BOSS_DRAGON
NAME=Dragolan
CAN=MT_RUN|MT_WALK
ID=C_DRAGON_SERPENTINE
DAM=200,400
ARMOR=150
TEVENTS=E_BOSS_EVENT

ON=@CREATE
COLOR=07A1
NPC=BRAIN_MONSTER
STR={8000 10000}
DEX={30000 32000}
INT={3000 3200}
MAGERY={1000 2500}
MEDITATION={1000 5000}
EVALUATINGINTEL={1000 5000}
POISONING={1000 5000}

FAME={1000 5999}
KARMA={-9998 -9999}

ITEMNEWBIE=i_spellbook
ADDSPELL=s_fireball
ADDSPELL=s_energy_bolt
ADDSPELL=s_poison
ADDSPELL=s_flamestrike
ADDSPELL=s_explosion
ADDSPELL=s_curse
ADDSPELL=s_clumsy
ADDSPELL=s_paralyze
ADDSPELL=s_lightning

FAME={7000 9999}
KARMA={-9998 -9999}
ON=@DEATH
F_BOSS_LOOT

//###################################################//
//########## Inistance Loot Fonksyonları ############//
[TEMPLATE T_LOOT_INISTANCE_GOLD]
CONTAINER=i_bag
ITEM=I_GOLD,{1000 15000}

[TEMPLATE T_LOOT_INISTANCE_POINT]
CONTAINER=i_bag
ITEM=I_INISTANCE_POINT,{1 5}

//###################################################//

[FUNCTION F_INISTANCE_LOOT]
SERV.NEWITEM T_LOOT_INISTANCE_GOLD
NEW.BOUNCE
SERV.NEWITEM T_LOOT_INISTANCE_GOLD
NEW.BOUNCE
SERV.NEWITEM T_LOOT_INISTANCE_POINT
NEW.BOUNCE
SERV.NEWITEM T_LOOT_INISTANCE_POINT
NEW.BOUNCE
SERV.NEWITEM BACKPACK_MEAGER
NEW.BOUNCE
SERV.NEWITEM LOOT_ORCISH_LORD
NEW.BOUNCE

[FUNCTION F_BOSS_LOOT]
SERV.NEWITEM { I_ELVEN_MACHETE 2 I_DAISHO 2 I_STAFF_BLADED 2 I_PIKE 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_RICH_MAGIC_LOOT 1 I_ELVEN_COMPOSITE_LONGBOW 2 I_MAGICAL_SHORTBOW 2 I_LANCE 2 I_BONE_HARVESTER 2 I_RADIANT_SCIMITAR 2 I_ORNATE_AXE 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_CRESCENT_BLADE 2 I_NUNCHAKU 2 I_MACE_DIAMOND 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 I_RUNE_BLADE 2 I_MACE_WILDSTAFF 2 I_SCEPTER 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1  I_TESSEN 2 I_SAI 2 I_TEKAGI 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1  I_SWORD_WARCLEAVER 2 I_STAFF_BLADED_DOUBLE 2 I_SCYTHE 2 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
FOR X 1 7
SERV.NEWITEM I_GOLD
NEW.AMOUNT {4000 65000}
NEW.BOUNCE
ENDFOR
SERV.NEWITEM I_BERSERK_CRYSTAL
NEW.BOUNCE
SERV.NEWITEM { I_PURE_MAGE_ROBE 1 I_PURE_WARRIOR_ROBE 1 I_WARLOCK_ROBE 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_PURE_MAGE_ROBE 1 I_PURE_WARRIOR_ROBE 1 I_WARLOCK_ROBE 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_MANA_BOOTS 1 I_STAM_BOOTS 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_MANA_BOOTS 1 I_STAM_BOOTS 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_EGG_OSTARD 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { I_EGG_OSTARD 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_WEAPON_VANQ 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_WEAPON_POWER 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_WEAPON_VANQ 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_WEAPON_POWER 1 RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM { RANDOM_FILTHY_RICH_MAGIC_LOOT 1 RANDOM_RICH_MAGIC_LOOT 1 }
NEW.BOUNCE
SERV.NEWITEM I_INISTANCE_POINT
NEW.AMOUNT {400 1000}
NEW.BOUNCE
//###################################################//
//############# NPC Drop Fonksyonları ###############//
//###################################################//

[FUNCTION F_INISTANCE_MAGE]
SERV.NEWITEM 01EA7
NEW.BOUNCE
NEW.DROP
NEW.TYPE 34
NEW.ATTR 00B0
NEW.AMOUNT 1
NEW.MORE1 C_INISTANCE_MAGE
NEW.MOREP 9999 9999 5
NEW.TIMER 1

[FUNCTION F_INISTANCE_WARRIOR]
SERV.NEWITEM 01EA7
NEW.BOUNCE
NEW.DROP
NEW.TYPE 34
NEW.ATTR 00B0
NEW.AMOUNT 1
NEW.MORE1 C_INISTANCE_WARRIOR
NEW.MOREP 9999 9999 5
NEW.TIMER 1

[FUNCTION F_INISTANCE_LORD]
SERV.NEWITEM 01EA7
NEW.BOUNCE
NEW.DROP
NEW.TYPE 34
NEW.ATTR 00B0
NEW.AMOUNT 1
NEW.MORE1 C_INISTANCE_LORD
NEW.MOREP 9999 9999 5
NEW.TIMER 1

[EOF]


Son güncelleme: Amesron tarafından 03-05-2010 17:00 GMT, 752 Gün önce düzenlendi.


Birer birer,neyim kalır geriye baksamda?

Yazar

Amesron


Yörünge Dışı Yetkili
Skill Title: Adept
Online durumu
Toplam Mesaj: 617
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 20
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #20302   02-05-2010 23:43 GMT    
        
Ev Vendor Sys.

Scriptin işlevi: İtemlerinizi evinizde bulunan vendorunuzdan satabilirsiniz.
Resimler:

http://i1005.hizliresim.com/2010/5/4/3311.jpg

http://i1005.hizliresim.com/2010/5/4/3313.jpg

http://i1005.hizliresim.com/2010/5/4/3320.jpg


Kod:
[COMMENT al_vendor_sistem]
Script adı:Ev vendor sistemi
Scriptin işlevi:"e_vendor_item" eventini oyunculara verin.
Vendor komutları:"bilgi,satin al,esya kaldir,fiyat,kasa,hasilat,kaldir"

[DEFNAME player_vendor_system]
PLAYER_VENDOR_SETUP_GOLD "5000"
PLAYER_VENDOR_ITEM_VALUE "5000000,250"
PLAYER_VENDOR_REVENUE_DEFEND "1"

[ITEMDEF i_deed_player_vendor]
ID=I_DEED
NAME=Player Vendor Deed

ON=@Create
ATTR = ATTR_NEWBIE
COLOR = 0470

ON=@Dclick
IF (<CONT>)
SRC.SYS_HATA Bunu evinize sabitlemelisiniz.
ELSEIF (<UID.<REGION.UID>.TYPE>==T_MULTI) && !(<ATTR>&ATTR_MOVE_NEVER)
SRC.SYS_HATA Bunu evinize sabitlemelisiniz.
ELSEIF !(<UID.<REGION.UID>.TYPE>==T_MULTI)
SRC.SYS_HATA Bunu evinize,tabelanın altına sabitlemelisiniz.
ELSEIF (<SRC.GOLD> < <DEF.PLAYER_VENDOR_SETUP_GOLD>)
SRC.SYS_HATA <DDEF.PLAYER_VENDOR_SE TUP_GOLD> kadar altınınız bulunmuyor.
ELSEIF (<FIND_HOUSE_VENDOR <REGION.UID>>)
SRC.SYS_HATA Bu evde zaten player vendoru bulunuyor.
ELSEIF (<UID.<REGION.UID>.MORE1>!=<SRC>)
SRC.SYS_HATA Bunu sadece kendi evinizde kullanabilirsiniz.
ELSEIF !(<UID.<UID.<REGION.UID>.MORE2>.TAG0.PUBLIC>)
SRC.SYS_HATA Vendoru halka açık evlere kurabilirsiniz.
ELSE
SERV.NEWNPC c_player_vendor
REF5 = <NEW>
REF5.P = <P>
REF5.TAG0.OWNER = <SRC>
REF5.F_MakePetOf = <SRC>
REF5.GOLD += <DDEF.PLAYER_VENDOR_SETUP_GOLD>
SERV.NEWITEM i_player_vendor
NEW.CONT = <REF5>
NEW.TIMER = 3600
SRC.GOLD -= <DDEF.PLAYER_VENDOR_SETUP_GOLD>
SERV.NEWITEM = i_torch
NEW.CONT = <REF5.FINDLAYER(21)>
REMOVE
SRC.UPDATE
ENDIF
RETURN 1

ON=@Click
MSG_NORMAL <NAME>
RETURN 1

[ITEMDEF i_player_vendor]
ID=I_MEMORY
NAME=Pl ayer Vendor System
TYPE=T_EQ_SCRIPT

ON=@Create
ATTR=ATTR_NEWBIE|ATTR_INVIS|ATTR_DECAY
More2=0
TAG0.LAST_SELL_ITEM=

ON=@TIMER
REF5=<CONT.TAG0.OWNER>
IF (<CONT.GOLD> > 250)
CONT.GOLD -= 250
TIMER = 3600
MORE2=
TAG0.LAST_SELL_ITEM=
ENDIF
ELSE
IF (<REF5>)
REF5.NOTICE Ev vendorunuzun parasını ödemediğiniz için,vendorunuz sizi terketti...
CONT.F_UNEQUIP_PACK
CONT.F_BACKPACK_CONT <REF5>
CONT.REMOVE
REMOVE
ELSE

REMOVE
ENDIF
RETURN 1

[CHARDEF c_player_vendor]
ID = C_MAN
NAME=#NAMES_HUMANMALE
CAN=MT_NONMOVER|MT_USEHANDS|MT_EQUIP|MT_FIRE_IMMUNE
TSPEECH=player_vendor

ON=@Create
ALLSKILLS=0
STR=30
DEX=0
INT=0
MODMAXWEIGHT=100000
FLAGS |= Statf_Invul
FOOD=999
ITEMNEWBIE=i_backpack
ITEMNEWBIE=i_lantern
ITEMNEWBIE=i_robe
COLOR=0460
ITEMNEWBIE=i_cap
COLOR=0460
ITEMNEWBIE=i_bankbox
MORE1=-1
MORE2=-1

ON=@ Click
MSG_NORMAL [Sahibi:<UID.<OWNER>.NAME>]
IF (<OWNER>==<SRC>) && !(<GOLD>)
MSG_NORMAL [Kalan süresi:<F_LOOK_TIME <FINDID.I_PLAYER_VENDOR.TIMER>>]
ENDIF
MSG_OK <NAME>
RETURN 1

ON=@Dclick
IF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF !(<dRESCOUNT>)
SRC.SYS_HATA Bu vendorun satılık malı bulunmuyor.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSE
FINDLAYER.21.OPEN
FACE <SRC>
ENDIF
RETURN 1

ON=@NpcSeeNewPlayer
IF (<OWNER>==<SRC>)
SAY_OK Merhaba Patron !
ELSEIF (<FINDLAYER(21).RESCOUNT> >0) && <EVAL (<F_SELLING_ITEM>> > 0)
SAY_OK Satılık mallarım bulunuyor...
ELSE
SAY_OK Satılık malım yok <SRC.NAME>...
ENDIF

ON=@EnvironChange
IF !(<OWNER>) && (<UID.<TAG0.OWNER>&g t;)
F_MakePetOf <TAG0.OWNER>
ENDIF

ON=@GetHit
RETURN 1

ON=@Attack
RETURN 1

ON=@Damage
RETURN 1

ON=@SpellEffect
RETURN 1

ON=@NpcFollow
RETURN 1

ON=@HitTry
RETURN 1

ON=@RecieveItem
IF (<OWNER>!=<SRC>)
RETURN 1
ENDIF

[SPEECH player_vendor]
ON=satin al
IF !(<dRESCOUNT>)
SRC.SYS_HATA Bu vendorun satılık malı bulunmuyor.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<TAG0.OWNER>==<SRC>)
SRC.SYS_HATA Sizin eşyayı satın almanıza gerek yok.
ELSE
SRC.TARGETF F_BUY_ITEM_VENDOR <UID>
ENDIF

ON=fiyat
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF !(<dRescount>)
SRC.SYS_HATA Vendorunuzda satılık mal bulunmuyor.
ELSEIF (< SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSE
SRC.TARGETF F_ITEM_VALUE_VENDOR <UID>
ENDIF

ON=esya kaldir
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF !(<dRescount>)
SRC.SYS_HATA Vendorunuzda zaten satılık mal bulunmuyor.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSE
SRC.TARGETF F_ITEM_RELEASE_VENDOR <UID>
ENDIF

ON=kasa
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSE
F_RESENDIALOG D_VENDOR_ADD_GOLD
ENDIF

ON=hasilat
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF (<DEF.PLAYER_VENDOR_REVENUE_DEFEND>) && (<GOLD> < 1000)
SRC.SYS_HATA Vendorunuzda çok az para var !
ELSE
F_RESENDIALOG D_VENDOR_REVENUE
ENDIF

ON=bilgi
IF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF !(<FINDID.I_PLAYER_VENDOR.MORE2>)
SRC.SYS_HATA Bu vendor hiçbir şey satmamış.
ELSE
F_RESENDIALOG D_VENDOR_INFO
ENDIF

ON=kaldir
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF (<SRC.F_CanSeeLos <UID& gt;>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSE
F_RESENDIALOG D_VENDOR_REMOVE
ENDIF

[FUNCTION f_buy_item_vendor]
REF3=<ARGS>
REF4=<ARGO>

IF !(<REF4.ISITEM>)
SRC.SYS_HATA Hatalı seçim yaptınız.
ELSEIF !(<REF3>)
SRC.SYS_HATA Hatalı bir durum oluştu.
ELSEIF (<REF3.TAG0.OWNER>==<SRC>)
SRC.SYS_HATA Siz zaten bu vendorun sahibisiniz.
ELSEIF (<SRC.F_CANSEELOS <REF3>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_CANSEELOS <UID>>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF !(<dRESCOUNT>)
SRC.SYS_HATA Vendorda satılık eşya bulunmuyor.
ELSEIF (<REF4.TOPOBJ>!=<REF3>)
SRC.SYS_HATA Bu eşya vendorda bulunmuyor.
ELSEIF !(<REF4.dTAG0.VALUE>)
SRC.SYS_HATA Bu eşya satılık değil.
ELSEIF (<REF4.dTAG0.VALUE> &g t; <SRC.GOLD>)
SRC.SYS_HATA Bu eşyayı satın alacak kadar paranız bulunmuyor.
ELSE
SRC.GOLD -=<REF4.dTAG0.VALUE>
REF4.CONT=<SRC.FINDLAYER(29)>
REF3.GOLD +=<REF4.dTAG0.VALUE>
REF4.TAG0.VALUE=
REF3.Findid.I_Player_Vendor.More2 +=1
REF3.Findid.I_Player_Vendor.Tag0.Last_Sell_Item .= ,<REF4>
SRC.SYS_OK <REF4.NAME> isimli eşya bankanıza aktarıldı.
REF3.FINDLAYER.21.UPDATE
SRC.UPDATE
ENDIF

[FUNCTION f_item_value_vendor]
REF3=<ARGS>
REF4=<ARGO>

IF !(<REF4.ISITEM>)
SRC.SYS_HATA Hatalı seçim yaptınız.
ELSEIF !(<REF3>)
SRC.SYS_HATA Hatalı bir durum oluştu.
ELSEIF (<REF3.TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bunu siz yapamazsınız.
ELSEIF (<SRC.F_CanSeeLos <REF3>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF !(<dRESCOUNT>)< BR> SRC.SYS_HATA Vendorda satılık eşya bulunmuyor.
ELSEIF (<REF4.TOPOBJ>!=<REF3>)
SRC.SYS_HATA Bu eşya vendorda bulunmuyor.
ELSE
SRC.F_RESENDIALOG D_ITEM_VALUE,0,<REF3>,<REF4>
ENDIF

[FUNCTION f_item_release_vendor]
REF3=<ARGS>
REF4=<ARGO>

IF !(<REF4.ISITEM>)
SRC.SYS_HATA Hatalı seçim yaptınız.
ELSEIF !(<REF3>)
SRC.SYS_HATA Hatalı bir durum oluştu.
ELSEIF (<REF3.TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bunu siz yapamazsınız.
ELSEIF (<SRC.F_CanSeeLos <REF3>>)
SRC.SYS_HATA Vendora çok uzaktasınız.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken kullanamazsınız.
ELSEIF (<REF4.TOPOBJ>!=<REF3>)
SRC.SYS_HATA Bu eşya vendorda bulunmuyor.
ELSE
REF4.TAG0.VALUE=
REF4.CONT = <SRC.FINDLAYER(21)>
SRC.SYS_OK <REF4.NAME> isimli eşya çantanıza aktarıldı.
ENDIF

[FUNCTION f_vendor_item_name]< BR>IF (STRLEN(<ARGS>) > 16)
LOCAL.NAME=<STRSUB 0 16 <ARGS>>...
ELSE
LOCAL.NAME=<ARGS>
ENDIF
RETURN <LOCAL.NAME>

[FUNCTION find_house_vendor]
LOCAL.REGION=<ARGS>
FORCHARS 50
IF (<BASEID>==C_PLAYER_VENDOR) && (<REGION.UID>==<LOCAL.REGION>)
RETURN 1
ENDIF
ENDFOR
RETURN 0

[FUNCTION f_selling_item]
FORCONT <FINDLAYER(LAYER_PACK)> 99
IF (<TAG0.VALUE>)
LOCAL.SELLING_ITEM +=1
ENDIF
ENDFOR
RETURN=<DLOCAL.SELLING_ITEM>

[FUNCTION f_backpack_cont]
TRY UID.<UID.<UID>.FINDLAYER(21)>.CONT=<UID.<ARGS>.FINDLAYER(21)>

[DIALOG D_ITEM_VALUE]
100,100
NOMOVE
REF5=<ARGV[1]>
RESIZEPIC 0 0 9390 300 190
DHTMLGUMP 80 6 999 20 0 0 <Def.Bfont_Blue><SERV.NAME> Vendor Menüsü
DHTMLGUMP 50 40 200 50 0 0 Sayın <SRC.NAME>,<DEF.BR><F_VENDOR_ITEM_NAME <REF5.NAME>&g t; isimli eşyayı ne kadar altına satıcaksınız ?
RESIZEPIC 90 125 3000 150 30
DTEXTENTRY 106 130 600 20 1152 1 <QVAL (<REF5.TAG0.VALUE>)?<REF5.DTAG0.VALUE>:Fiyatı giriniz>
BUTTON 50 130 <DEF.BUTTONID_1> 1 0 1
SRC.CTAG0.PLAYER_VENDOR=<ARGV[0]>,<REF5>

[DIALOG D_ITEM_VALUE BUTTON]
ON=0
SRC.CTAG0.PLAYER_VENDOR=

ON=1
REF1=<STRARG <SRC.CTAG0.PLAYER_VENDOR>>
REF2=<STREAT <SRC.CTAG0.PLAYER_VENDOR>>
LOCAL.MAX_VALUE=<STRARG <DEF.PLAYER_VENDOR_ITEM_VALUE>>
LOCAL.MIN_VALUE=<STREAT <DEF.PLAYER_VENDOR_ITEM_VALUE>>

IF !(<REF1>) || !(<REF2>)
SRC.SYS_HATA Hatalı bir durum oluştu.
ELSEIF (<ISEMPTY <ARGTXT[1]>>)
SRC.SYS_HATA Bu kısmı boş bırakamazsınız.
ELSEIF !(<ISNUMBER <ARGTXT[1]>>)
SRC.SYS_HATA Sadece rakam girebilirsiniz.
ELSEIF (<REF2.TOPOBJ>!=<REF1>)
SRC.SYS_HATA Bu item vendorun çan tasında bulunmuyor.
ELSEIF (<SRC.F_CanSeeLos <REF1>>)
SRC.SYS_HATA Vendora ulaşamıyorsunuz.
ELSEIF (<ARGTXT[1]> > <dLOCAL.MAX_VALUE>) || (<ARGTXT[1]> < <dLOCAL.MIN_VALUE>)
SRC.SYS_HATA En yüksek fiyat olarak <dLOCAL.MAX_VALUE> altın,en düşük fiyat olarak <dLOCAL.MIN_VALUE> altın girebilirsiniz.
ELSE
REF2.TAG0.VALUE = <dARGTXT[1]>
SRC.SYS_OK <REF2.NAME> isimli eşyanın değeri <dARGTXT[1]> olarak ayarlandı.
ENDIF
SRC.CTAG0.PLAYER_VENDOR=

[DIALOG D_VENDOR_ADD_GOLD]
100,100
NOMOVE
RESIZEPIC 0 0 9390 300 200
DHTMLGUMP 80 6 999 20 0 0 <Def.Bfont_Blue><SERV.NAME> Vendor Menüsü
DHTMLGUMP 50 40 200 80 0 0 Sayın <SRC.NAME>,<DEF.BR>Vendorunuzun kasasına ne kadar altın ekleceksiniz ?<DEF.BR>Şuanki altın miktari:<GOLD>
RESIZEPIC 90 135 3000 150 30
DTEXTENTRY 106 140 600 20 1152 1 Buraya yazın
BUTTON 50 140 <DEF.BUTTON ID_1> 1 0 1

[DIALOG D_VENDOR_ADD_GOLD BUTTON]
ON=1
IF !(<UID.<UID>>)
SRC.SYS_HATA Hatalı bir durum oluştı.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora ulaşamıyorsunuz.
ELSEIF (<REF1.GOLD> > 2000000)
SRC.SYS_HATA Vendorunuzda zaten çok fazla para bulunuyor.
ELSEIF (<SRC.GOLD> < <DARGTXT[1]>)
SRC.SYS_HATA Yazdığınız miktarda paranız bulunmuyor.
ELSE
GOLD +=<dARGTXT[1]>
Findid.I_Player_Vendor.Timer=3600
SRC.GOLD -=<dARGTXT[1]>
SRC.SYS_OK Vendorunuzun çalışma süresini,<EVAL (<ARGTXT[1]>/250)> saat arttırdınız.
ENDIF

[DIALOG D_VENDOR_REVENUE]
100,100
NOMOVE
RESIZEPIC 0 0 9390 300 190
DHTMLGUMP 80 6 999 20 0 0 <Def.Bfont_Blue><SERV.NAME> Vendor Menüsü
DHTMLGUMP 50 40 200 50 0 0 Sayın <SRC.NAME>,<DEF.BR>Vendorunuzun kasasında <GOLD> altın bulunuyor.
RESIZEPIC 90 125 3000 150 30
DTEX TENTRY 106 130 600 20 1152 1 <GOLD>
BUTTON 50 130 <DEF.BUTTONID_1> 1 0 1

[DIALOG D_VENDOR_REVENUE BUTTON]
ON=1
IF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bunu siz yapamazsınız.
ELSEIF (<GOLD> < 1000)
SRC.SYS_HATA Vendorunuzda az para varken bunu yapamazsınız.
ELSEIF (<GOLD> < <DARGTXT[1]>)
SRC.SYS_HATA Vendorunuzda <DARGTXT[1]> altın bulunmuyor.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendorunuza ulaşamıyorsunuz.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken yapamazsınız.
ELSEIF (<ISEMPTY <ARGTXT[1]>>)
SRC.SYS_HATA Boş bırakamazsınız.
ELSEIF !(<ISNUMBER <ARGTXT[1]>>)
SRC.SYS_HATA Sadece rakam girmelisiniz.
ELSE
LOCAL.TIMER=<EVAL (<Argtxt[1]> / 250)>
GOLD -=<ARGTXT[1]>
Findid.I_Player_Vendor.Timer=120
SRC.GOLD +=<dARGTXT[1]>
SRC.SYS_OK <dARGTXT[1]> hasilat aldınız.SRC.SYS_OK Vendorunuzun çalışma süresi <dLOCAL.TIMER> saat azaldı.
ENDIF

[DIALOG D_VENDOR_REMOVE]
100,100
NOMOVE
RESIZEPIC 0 0 9390 300 190
DHTMLGUMP 80 6 999 20 0 0 <DEF.BFONT_BLUE><SERV.NAME> Vendor Menüsü
DHTMLGUMP 50 40 200 50 0 0 Sayın <SRC.NAME>,<DEF.BR>Vendorunuzun işine son vermekten eminmisiniz ?
DHTMLGUMP 70 110 200 20 0 0 Evet,işine son vereceğim.
DHTMLGUMP 70 130 200 20 0 0 Hayır,işine devam etsin.
BUTTON 50 110 <DEF.BUTTONID_1> 1 0 1
BUTTON 50 130 <DEF.BUTTONID_1> 1 0 2

[DIALOG D_VENDOR_REMOVE BUTTON]
ON=1
IF !(<UID.<UID>>)
SRC.SYS_HATA Bir hata oluştu.
ELSEIF (<TAG0.OWNER>!=<SRC>)
SRC.SYS_HATA Bu vendorun sahibi siz değilsiniz.
ELSEIF (<SRC.F_CanSeeLos <UID>>)
SRC.SYS_HATA Vendora ulaşamıyorsunuz.
ELSEIF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken yapamazsınız.
ELSE
F_UNEQUIP_PACK
F_B ACKPACK_CONT <SRC>
SRC.GOLD +=<GOLD>
SERV.NEWITEM I_DEED_PLAYER_VENDOR,1,<SRC>
SRC.SYS_OK <GOLD> altın size aktarıldı.
REMOVE
ENDIF

[DIALOG D_VENDOR_INFO]
200,50
NOMOVE
RESIZEPIC 0 0 9390 300 280
DHTMLGUMP 80 6 999 20 0 0 <Def.Bfont_Blue><SERV.NAME> Vendor Sistemi
LOCAL.PAGE=1
LOCAL.ITEM=0

PAGE 1
FOR <EVAL <Findid.I_Player_Vendor.More2> + 1>
REF3=<F_SELECT <dLOCAL._FOR>,<Findid.I_Player_Vendor.Tag0.Last_Sell_Item>>
IF (<dLOCAL.ITEM> >8)
LOCAL.ITEM=0
BUTTON 150 260 <DEF.BUTTONID_1> 0 <EVAL (<Local.Page>)+1> 1
DHTMLGUMP 187 260 999 20 0 0 İleri
LOCAL.PAGE ++
PAGE <dLOCAL.PAGE>
BUTTON 150 260 <DEF.BUTTONID_2> 0 <EVAL (<Local.Page>)-1> 1
DHTMLGUMP 187 260 999 20 0 0 Geri
ENDIF
IF (<REF3>)
DHTMLGUMP 80 <EVAL (<LOCAL.ITEM>*20)+50> 999 20 0 0 <REF3.NAME>< BR>LOCAL.ITEM ++
ENDIF
ENDFOR

[EVENTS e_vendor_item]
ON=@ItemClick
IF (<ACT.TOPOBJ.ID>==C_PLAYER_VENDOR)
ACT.MSG_NORMAL [Fiyatı:<QVAL (<ACT.TAG0.VALUE>)?<ACT.DTAG0.VALUE> gold]:Satılık değil]>
IF (<ACT.ISARMOR>) || (<ACT.ISWEAPON>)
ACT.MSG_NORMAL [Sağlamlık:%<ACT.HITPOINTS>]
ENDIF
ACT.MSG_OK <F_VENDOR_ITEM_NAME <ACT.NAME>>
RETURN 1
ENDIF

ON=@ItemDclick
IF (<ACT.TOPOBJ.ID>==C_PLAYER_VENDOR)
IF (<ACT.TYPE>==T_CONTAINER)
ACT.OPEN
RETURN 1
ENDIF
ENDIF

ON=@ItemPickup_Pack
IF (<ACT.TOPOBJ.ID>==C_PLAYER_VENDOR) && (<ACT.TOPOBJ.OWNER>!=<SRC>)
SRC.SYS_HATA Bunu siz yapamazsınız.
RETURN 1
ENDIF

IF (<ACT.TAG0.VALUE>)
ACT.TAG0.VALUE=
ENDIF

[EOF]

///////////////////////////
///Diğer Fonskiyonlar///
/////////////////////////

[FUNCTION f_select]
RETURN=<ARG V[<ARGV[0]>]>

[FUNCTION isnumber]
FOR 0 <EVAL STRLEN(<ARGS>) -1>
IF !STRMATCH('[0-9]','<StrSub <dLOCAL._FOR> 1 <ARGS>>')
RETURN 0
ENDIF
ENDFOR
RETURN 1

[FUNCTION f_MakePetOf]
SERV.NEWITEM i_memory
NEW.COLOR=memory_ipet
NEW.MORE1=04
NEW.MORE2=<SERV.TIME>
NEW.MOREP=<P>
NEW.LINK=<ARGS>
NEW.CONT=<UID>e


Yarışmacılara başarılar dileriz.

Önemli not: Yarışmadaki scriptlerin kimin olduğunu bu konu altında belirtmeyiniz. Yorum yapabilirsiniz. Tartışma çıkarabilecek mesajlar silinecektir.


Son güncelleme: TheRaskol tarafından 04-05-2010 22:04 GMT, 751 Gün önce düzenlendi.


Birer birer,neyim kalır geriye baksamda?

Yazar

Robertt


Yasaklı
Skill Title: Novice
Online durumu
Toplam Mesaj: 42
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 20
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20306   02-05-2010 23:47 GMT    
        
hekreze başarılar


Arora-Yeni Soluk

Yazar

Robert


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 135
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 23
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20310   02-05-2010 23:53 GMT    
        
Benim yok :P


Yazar

nexima


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 251
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 21
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20311   02-05-2010 23:54 GMT    
        
Speed Test sistemi yazan kişi kim acaba? o sistem eskiden yazılmıştı ve yazan kişi UO'yu bıraktı diye biliyorum.



Yazar

Lousen


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 93
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20312   02-05-2010 23:54 GMT    
        
Başarılar çok sağlam çalışmalar var.Art mul güzelmiş



Yazar

Sayk0


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 170
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #20313   02-05-2010 23:56 GMT    
        
Kiralik katil sistemindeki resimlerin boyutlarini büyülterek koymanız mümkün çok küçük



Yazar

Robertt


Yasaklı
Skill Title: Novice
Online durumu
Toplam Mesaj: 42
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 20
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20314   02-05-2010 23:56 GMT    
        
Alıntı
Robert :
Benim yok :P


diyer yarışmaya artık berk


Arora-Yeni Soluk

Yazar

uzana


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 166
Oyun Tarzı: Rp
Emulatör: 0.55r
Tecrübe: Scripter
Yaş: 20
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20315   02-05-2010 23:57 GMT    
        
başarılar



Yazar

nexima


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 251
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 21
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20316   03-05-2010 00:00 GMT    
        
ayrıca oyum piyango sistemine. her bakımdan en kaliteli o olmuş bence.



Yazar

HayaHoshi


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 127
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20317   03-05-2010 00:02 GMT    
        
Speed Test çk hoşuma gitti Herkeze Başarılar



Yazar

Kicker


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 110
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 17
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20318   03-05-2010 00:04 GMT    
        
Alıntı
HayaHoshi :
Speed Test çk hoşuma gitti Herkeze Başarılar

aynen benimde çok hosuma gitti



Yazar

Override


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 564
Oyun Tarzı: Rp
Emulatör: RunUO
Tecrübe: Player
Yaş: 22
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20319   03-05-2010 00:05 GMT    
        
Başarılar....



Yazar

TheRaskol


Root Administrator
Skill Title: Master
Online durumu
Toplam Mesaj: 2455
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 24
Karma:   10   Level 2
Messenger: Msn iletişim
Mesaj #20322   03-05-2010 00:08 GMT    
        
Ben de sistemleri daha yeni görüyorum.
Gerçekten hoş şeyler var (:

Bu arada ben özellikle amesron'a teşekkür ediyorum.
Screenshotları toparlamak için çok uğraştı.Gerektiği yerde kendi ss aldı.

Lütfen emeğe saygı gösterelim arkadaşlar.

Herkese tekrardan başarılar dilerim.

Unutmadan buradan çıkacak sonuç sadece bir oydur.
Alınan anket puanına göre her katılan script 10 üzerinden puan alacaktır.
Diğer oylar jüriye aittir.


Son güncelleme: TheRaskol tarafından 03-05-2010 00:13 GMT, 753 Gün önce düzenlendi.


Yazar

Nemesis[Berk]


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 122
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 22
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20324   03-05-2010 00:10 GMT    
        
Bu anketden daha sonra başka bir oylama olucak mı? Daha doğrusu kodlama ve sistem mi kazanıcak yoksa çok arkadaşı olan mı?


Yazar

MaliceDeltoro


Röportaj Ekibi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 185
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 19
Karma:   1   Level 1
Messenger: Msn iletişim
Mesaj #20325   03-05-2010 00:12 GMT    
        
Bütün katılımcılara başarılar diliyorum.. Bütün scriptlere baktım; herhangi biri için özel bir yorum yapılamayacak kadar güzel hepsi de ^^


Onurum gururumdur. Gururumsa yaşamım...

Deniz ve Nehirlerin Tanrıçası Nyétandriel tüm güzelliğiyle parladığında bir gece vakti önümde,
Kesinleşmişti rotamız Sosaria'nın bizi kabulleneceği yaşamda ve ölümde.

Life is FRP

Yazar

basic


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1018
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 19
Karma:   5   Level 1
Messenger: Msn iletişim
Mesaj #20326   03-05-2010 00:12 GMT    
        
@berk

Alıntı
TheRaskol :
Unutmadan buradan çıkacak sonuç sadece bir oydur.
Alınan anket puanına göre her katılan script 10 üzerinden puan alacaktır.
Diğer oylar jüriye aittir.



Sonra jüri puanlaması olacak birde.


Son güncelleme: TheRaskol tarafından 03-05-2010 00:14 GMT, 753 Gün önce düzenlendi.


if endif, for endfor, dorand enddo... niye hep birşeyleri kısıtlıyoruz?

Meinen Blog/My Blog/Benim Blogum

Yazar

Robert


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 135
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 23
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20328   03-05-2010 00:16 GMT    
        
Alıntı
Robertt :
Alıntı
Robert :
Benim yok :P


diyer yarışmaya artık berk



Sen benim yerime koymuşsundur


Yazar

Qnd


UO-Dev Üyesi
Skill Title: Expert
Online durumu
Toplam Mesaj: 325
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 29
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20329   03-05-2010 00:16 GMT    
        
Alıntı
nexima :
Speed Test sistemi yazan kişi kim acaba? o sistem eskiden yazılmıştı ve yazan kişi UO'yu bıraktı diye biliyorum.



Benim bildiğimde o script'in değişi yazılmıştı ve ayarsızdı çalışmıyordu bende öyle biliyorum bu %90 farklı bi sistem


Qnd
" Kimse sana eşitlik veya adalet veya başka bişey veremez. Eğer adamsan, sen alırsın.. "

Connector & Sphere Script & Web Design
Hizmetleri


Yazar

Tiffany


UO-Dev Üyesi
Skill Title: Apprentice
Online durumu
Toplam Mesaj: 97
Oyun Tarzı: Pvp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 18
Karma:   0   Level 0
Messenger: Msn iletişim
Mesaj #20331   03-05-2010 00:19 GMT    
        
bence arkadaşı fazla olan alıcak baksanıza yell geçiyorlar msnde ismini vermek istemiyorum ama nemesis'e katılıyorum



Sayfalar: 123456>Son »

Bu konu kilitlidir. Mesaj yazamazsınız.


Benzer Konular

KonularMesajlarSon gönderenTarih
Ortaöğretim Web tasarım yarışması9Sirlather27-12-2011
Futbol yarışması sistemi5asaf4503-08-2011
Half-Life yarışması sistemi5BlackAngelL04-06-2011
Explosion yarışması sistemi10BlackAngelL04-06-2011
UO-Dev 3. Scripting Yarışması Anketi64TheRaskol04-06-2011


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,