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
[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
[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ş
[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ü
[dialog d_faction_menu]
0,0
page 0
ref1=<uid>
resizepic 30 30 5054 270 225
resizepic 40 40 3000 250 205
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
[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
[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
[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
[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
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
Eline sağlık ozan on numara olmuş çok beğendim.

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.