MirroR -  12-05-2016 03:47
Paylaşma gereği duydum uzun zaman oldu tuhaf gelebilir sizlere uzun zamandır yüzüne bakmıyordum.
Çok kapsamlı değil ama haddinden fazla basite indirgendiği doğrudur.
Başkanları belirlemeden üye alımı yapılmamakta

[function f_baskan_ol_1] // 1.inci taşın başkan olma şekli bilmeyenler için söylüyorum.
serv.list.faction_1.add = <src.uid> // 1 olan kısım Shadowlords grubudur 2,3,4 diye Minax Brit Council of mage diye gitmesi demektir.
Ben oyuncuların başkan olmasını istemedim doğrusu 4 yetkili her bir grubun başkanı olur diye düşünmüştüm.

Ayarlar
Kod:
[defname set_faction]
faction_stone_isim The Shadowlords,The Minax,True Britannians,Council of Mages
faction_stone_renk 0455,34,12,58
faction_stone_mesafe "3"
faction_stone_koordinatlar 1471 1654 13,1474 1654 13,1477 1654 13,1480 1654 12
faction_max_uye "200" // maximum üye sayısı
faction_kill_puan "10" // öldüren oyuncuya verilecek puan.
faction_death_cezapuani "10" // ölen oyuncudan alınacak puan.
faction_silver "10" // öldüren oyuncuya verilecek silver puanı (gold tarzı para) silver para
faction_ayrilma_suresi "259200" // saniye bazında 3 gün.


Kurulum
Kod:
[function f_setup_faction]
src.go 1475 1658 10
for 1 4
serv.newitem i_faction_stone
new.name = <f_moonsep <dlocal._for>,<def.faction_stone_isim>>
new.p = <f_moonsep <dlocal._for>,<def.faction_stone_koordinatlar>>
new.color = <f_moonsep <dlocal._for>,<def.faction_stone_renk>>
new.tag.stone = <dlocal._for>
endfor


Taş
Kod:
[itemdef i_faction_stone]
id = 0edc

on=@create
attr=attr_move_never

on=@dclick
if (<src.distance <p>> < <def.faction_stone_mesafe>)
sdialog d_faction_menu
else
src.sysmessage @34,,1 Yaklaş !
endif
return 1


Menü
Kod:
[dialog d_faction_menu]
0,0
page 0
ref1=<uid>
bozobag 30,30,270,225
gumppic 26 15 9004
dtext 61 50 0481 Faction:
dtext 110 50 34 <name>
page 1
ref2=<serv.list.faction_<eval <tag0.stone>>.<dargs>>
dtext 60 82 0481 Faction Başkanı: <ref2.name>
dtext 60 105 0481 Puanı: <f_faction_puan>
dhtmlgump 195 105 100 25 0 0 <def.bfont_dpurple><f_unvan_belirle>
dtext 150 105 044 Ünvanı:
dtext 60 130 0481 Üye Sayısı: <eval <list.faction_<dtag0.stone>.count>> / <ddef.faction_max_uye>
dtext 60 155 34 Toplanan Para: 0
if !(<ref2> == 0)
dbutton 60 190 0 2 2,Üyeleri Listele
dbutton 60 215 1 0 1,<qval (<list.faction_<dtag0.stone>.findelem <src.uid>> < 0)?Katıl:Ayrıl>
else
dtext 60 190 34 Hiç üyesi yok.
dtext 60 212 34 Başkan belirlenmemiş.
endif

local.loop=0
local.page=2
page 2
for 0 <eval <list.faction_<dtag0.stone>.count>-1>
ref1=<list.faction_<dtag0.stone>.<dlocal._for>>
if (<dlocal.loop> > 7)
local.loop=0
button 290 245 015e1 015e5 0 <eval <local.page>+1> 1
local.page += 1
page <dlocal.page>
button 50 245 015e3 015e7 0 <eval <local.page>-1> 1
endif
local.loop +=1
if (<ref1.isonline>)
gumppic 45 <eval 65+<hval <local.loop>*21>> 2361
dhtmlgump 60 67 300 25 0 0 <def.em>İsim:                   Puan:<def.eme>
dtext 60 <eval 60+<hval <local.loop>*21>> 044 <ref1.name>
dtext 240 <eval 60+<hval <local.loop>*21>> 044 <eval <ref1.dtag0.puan>>
else
dhtmlgump 60 67 300 25 0 0 <def.em>İsim:                   Puan:<def.eme>
gumppic 45 <eval 65+<hval <local.loop>*21>> 2360
dtext 60 <eval 60+<hval <local.loop>*21>> 34 <ref1.name>
dtext 240 <eval 60+<hval <local.loop>*21>> 34 <eval <ref1.dtag0.puan>>
endif
endfor

[dialog d_faction_menu button]
on=1
if (<list.faction_<dtag0.stone>.findelem <src.uid>> >= 0)
if !(<src.findid.i_mem_faction_cikis>)
src.sysmessage @34,,1 <f_zamangoster <ddef.faction_ayrilma_suresi>> sonra faction grubundan ayrılacaksınız.
serv.newitem = i_mem_faction_cikis,1,<src.uid>
new.tag.stone = <dtag0.stone>
new.tag.faction = <dtag0.stone>
new.timer = <ddef.faction_ayrilma_suresi>
else
src.sysmessage @34,,1 <f_zamangoster <src.findid.i_mem_faction_cikis.timer>> sonra faction grubundan ayrılacaksınız.
endif
else
if (<src.skilltotal> < 7000)
src.sysmessage @34,,1 Bir faction üyesi olabilmek için yeteneklerinizin 700.0 olması gerekiyor.
return 1
elif (<src.dtag0.faction> >= 1)
src.sysmessage @34,,1 Zaten <src.f_faction_bul> üyesisin.
return 1
elif (<src.guild>)
src.sysmessage @34,,1 Zaten <src.guild.name> guild üyesisin, guild üyeleri katılamaz.
return 1
endif
serv.list.faction_<dtag0.stone>.add <src.uid>
src.sysmessage @,,1 <name> isimli faction grubuna katıldınız.
src.events +e_faction
src.tag.faction = <dtag0.stone>
endif


Olaylar
Kod:
[events e_faction]
on=@death
ref1=<uid> // ölen
ref2=<act> // öldüren
if (<ref1.isevent.e_faction>) && (<ref2.isevent.e_faction>)
if (<ref1.dtag0.puan> < 10)
ref1.tag0.puan = 0
else
ref1.tag0.puan -= <ddef.faction_death_cezapuani>
endif
ref2.tag0.puan += <ddef.faction_kill_puan>
if !(<ref2.tag0.son_oldurdugu> == <ref1>)
ref2.tag.son_oldurdugu = <ref1>
serv.b @058,,1 Faction : <ref1.name>, <ref1.region.name> bölgesinde <ref2.name> tarafından <ref2.f_faction_bul> adına katledildi.
serv.newitem = i_gold_silver,<ddef.faction_silver>,<ref2>
endif
endif
endif

on=@kill
if ((<src.dtag0.faction> >= 1) && (<argo.dtag0.faction> >= 1))
src.timerf 0,criminal 0
endif

on=@hit
if <dtag0.faction> == <src.dtag0.faction>
sysmessage @058,,1 Aynı faction üyeleri bir birlerine saldırı yapamazlar.
return 1
endif

on=@click
if (<src.isevent.e_faction>) && (<isevent.e_faction>)
if (<dtag0.faction> == <src.dtag0.faction>)
src.tag.override.noto.<uid>=5
endif
if <dtag0.faction> == <src.dtag0.faction>
message @044 [<f_moonsep <dtag0.faction>,<def.faction_stone_isim>>]
else
message @02b [<f_moonsep <dtag0.faction>,<def.faction_stone_isim>>]
endif
endif

on=@criminal
if !(<dtag0.faction> == <src.dtag0.faction>)
  src.timerf 0,src.memoryfindtype.memory_harmedby.remove
  timerf 0,memoryfindtype.memory_harmedby.remove
endif

on=@spellcast
if !((<dargn> == 4) || (<dargn> == 6) || (<dargn> == 7) || (<dargn> == 9) || (<dargn> == 11) || (<dargn> == 15) || (<dargn> == 16) || (<dargn> == 17) || (<dargn> == 29))
if <dtag0.faction> == <act.dtag0.faction>
sysmessage @058,,1 Aynı faction üyeleri bir birlerine saldırı yapamazlar.
f_fizzle
return 1
endif
endif


Fonksiyonlar
Kod:
[function f_faction_puan]
for 0 <list.faction_<dtag0.stone>.count>
ref1=<list.faction_<dtag0.stone>.<dlocal._for>>
local.puans +=<ref1.dtag0.puan>
endfor
return <dlocal.puans>

[function f_unvan_belirle]
if (<f_faction_puan> <= 1999)
return the Tiro
elif (<f_faction_puan> <= 2999)
return the Prentice
elif (<f_faction_puan> <= 3999)
return the Master
elif (<f_faction_puan> <= 4999)
return the Veteran
elif (<f_faction_puan> >= 5000)
return the Exceptional
endif

[function f_faction_bul]
if (<dtag0.faction> == 1)
return The Shadowlords
elif (<dtag0.faction> == 2)
return The Minax
elif (<dtag0.faction> == 3)
return True Britannians
elif (<dtag0.faction> == 4)
return Concil of Mages
endif


Çıkış İşlemleri
Kod:
[itemdef i_mem_faction_cikis]
id = i_memory
type = t_eq_script
name = mem faction

on=@timer
cont.sysmessage @34,,1 <f_faction_bul> isimli faction grubundan ayrıldınız.
local.kim <list.faction_<dtag0.stone>.findelem <cont.uid>>
list.faction_<dtag0.stone>.<dlocal.kim>.remove
cont.events -e_faction
cont.tag.faction =
remove
return 1

[itemdef i_gold_silver]
id = i_gold
type = t_gold
name = silver gold

on=@create
color = 0482


Oyuncu Fix
Kod:
[events e_player]
on=@spellcast
if (<dargn> == 4) || (<dargn> == 29) || (<dargn> == 11) || (<dargn> == 25) || (<dargn> == 26)
if !(<src.isevent.e_faction>) && (<act.isevent.e_faction>)
src.sysmessage @058,,1 Bir faction üyesini iyleştiremezsiniz.
f_fizzle
return 1
elif !(<src.dtag0.faction> == <act.dtag0.faction>)
src.sysmessage @058,,1 Düşman bir faction üyesini iyleştiremezsiniz.
f_fizzle
return 1
endif
endif


Bandage Fix
Kod:
on=@targon_char
if !(<src.isevent.e_faction>) && (<src.targ.isevent.e_faction>)
src.sysmessage @058,,1 Bir faction üyesini iyleştiremezsiniz.
elif !(<src.targ.dtag0.faction> == <src.dtag0.faction>)
src.sysmessage @058,,1 Düşman bir faction üyesini iyleştiremezsiniz.
endif

YORUMLAR (0)

Henüz yorum yapılmamış.

BENZER SAYFALAR

Yok