Evet arkadaşlar, iki gündür üzerinde çalıştığım Gemi Fix'ini bitirmiş bulunuyorum.

Fixler;

Gemi içerisinde GATE Travel büyüsü ile gate açılması engellendi.
Dışarıda gate açıp gemiye girme engellendi.
Başkasının gemisini kapatmak engellendi.
Başkasının gemisini sürmek engellendi.
Gemi silinince, anıhtarlarınıda beraberinde siliyoruz. (Karakterde bulunan)
Help menüsü eklendi. (Help veya Ship help yazılarak ulaşılabilir.)
Gemi ismi değiştirme ayarlandı.

Dikkat;
Kodunuzun tamamen çalışması için spherenin orjinalinde bulunan;
[SPEECH spk_ship_cmds]
[ITEMDEF 04240]
[ITEMDEF 04241]
[ITEMDEF 04242]
[ITEMDEF 04243]
[ITEMDEF 04244]
[ITEMDEF 04245]

Bu itemleri ve speech'i silmeniz gerekmektedir. Ayrıca öncesinde iki gemisi olan kişilerde sorun çıkartacaktır. Bu nedenle önceden gemisi olanların gemilerini çantasına atıp baştan kurmasını ayarlayabilirsiniz. (Geminin kasasındaki itemleri bankaya yollamayı unutmayın.)

[Function f_check_ships]
for 0 <findlayer.21.rescount>
	if (<findlayer.21.findcont(<dlocal._for>).link.type> == t_ship)
	return 1
	endif
endfor
return 0

[Function f_ship_boss]
for 0 <findlayer.21.rescount>
	if <findlayer.21.findcont(<dlocal._for>).link> == <args>
	return 1
	endif
endfor
return 0

[Function f_delete_ship]
for 0 <findlayer.21.rescount>
	if (<findlayer.21.findcont(<dlocal._for>).link.type> == t_ship)
	try uid.<findlayer.21.findcont(<dlocal._for>).uid>.remove
	endif
endfor
for 0 <findlayer.29.rescount>
	if (<findlayer.29.findcont(<dlocal._for>).link.type> == t_ship)
	try uid.<findlayer.29.findcont(<dlocal._for>).link.uid>.remove
        newitem i_deed_<strsub 8 84 <findlayer.29.findcont(<dlocal._for>).link.baseid>>
	new.bounce
	try uid.<findlayer.29.findcont(<dlocal._for>).uid>.remove
	endif
endfor
f_error Geminiz başarıyla kaldırıldı.
return 1

[Typedef t_ship_tiller]
On=@Dclick
if (<src.f_ship_boss <more1>>) && !(<uid.<src.region.uid>.type> == t_ship)
src.sdialog d_ship_delete
endif

[Typedef t_ship_plank]
On=@Dclick
src.events +e_ship
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
src.skill fail
endif

[Typedef t_deed_ship]
On=@Dclick
if <src.f_check_ships>
src.f_error Zaten daha önce bir gemi kurmuşsunuz.
return 1
endif
type=t_deed

[function a]
for 0 <findlayer.29.rescount>
f_error <findlayer.29.findcont(<dlocal._for>).uid>
endfor

[Function f_error]
sysmessage @021,,1 <args>

//Ship konuşmaları
[SPEECH spk_ship_cmds]
ON=Set name *
	// Changes Ship's name, where *=name.
	// NAME=<strmid(<args>,8,64)>

	//Fixed By xwerswoodx
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	NAME=<strsub 9 65 <args>>
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Furl sail	// Stop
ON=Stop			// Stops current ship movement.
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPSTOP
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Turn Left
ON=Port			// Turn Left
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPTURNLEFT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Turn Right
ON=Starboard	// Turn Right
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPTURNRIGHT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Left			// Move ship in desired direction.
ON=Drift Left
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPDRIFTLEFT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Right		// Move ship in desired direction.
ON=Drift Right
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPDRIFTRIGHT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Back			// Move ship backwards
ON=Backward		// Move ship backwards
ON=Backwards	// Move ship backwards
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPBACK
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Forward
ON=Foreward		// Moves ship forward.
ON=Unfurl sail	// Moves ship forward.
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPFORE
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Forward left
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPFORELEFT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=forward right
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPFORERIGHT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=backward left
ON=back left
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPBACKLEFT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=backward right
ON=back right
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPBACKRIGHT
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Raise Anchor
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPANCHORRAISE
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Drop Anchor
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPANCHORDROP
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Turn around	// Turns ship around and proceeds.
ON=Come about	// Turns ship around and proceeds.
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPTURN
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Up
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPUP
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Down
	SHIPDOWNfor 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPDOWN
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Land
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	SHIPLAND
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

ON=Help
On=Ship Help
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link> == <uid>
	src.sdialog d_ship_help
        Dorand 3
	link.sayu Peki <src.sex Lordum/Ladyim>
	link.sayu Peki
	link.sayu Peki kaptan
	Enddo
	return 1
        endif
endfor
link.sayu Ben sadece kaptanımı dinlerim.

[DIALOG d_ship_help]
0,0
page 0
resizepic 0 0 3500 400 400
resizepic 10 10 3000 380 380
dhtmlgump 77 21 353 20 0 0 <def.bfont_dred><serv.servname> Gemi Yardım Menüsü
dhtmlgump 156 363 353 20 0 0 <def.bfont_dred><serv.url>
dhtmlgump 24 50 353 20 0 0 <def.bfont_dred>Forward <def.bfont_green>Geminin ileri gitmesini sağlar.
dhtmlgump 24 70 353 20 0 0 <def.bfont_dred>Back <def.bfont_green>Geminin geri gitmesini sağlar.
dhtmlgump 24 90 353 20 0 0 <def.bfont_dred>Left <def.bfont_green>Geminin sola gitmesini sağlar.
dhtmlgump 24 110 353 20 0 0 <def.bfont_dred>Right <def.bfont_green>Geminin sağa gitmesini sağlar.
dhtmlgump 24 130 353 20 0 0 <def.bfont_dred>Turn Left <def.bfont_green>Geminin sola dönmesini sağlar.
dhtmlgump 24 150 353 20 0 0 <def.bfont_dred>Turn Right <def.bfont_green>Geminin sağa dönmesini sağlar.
dhtmlgump 24 170 353 20 0 0 <def.bfont_dred>Drop Anchor <def.bfont_green>Olduğunuz yere demir atmanızı sağlar.
dhtmlgump 24 190 353 20 0 0 <def.bfont_dred>Raise Anchor <def.bfont_green>Demiri çekmenizi sağlar.
htmlgump 22 215 353 145 0 1 1

[DIALOG d_ship_help text]
Kurallar;<def.br>1- Gemi içerisinde oluşan bugları kullanmak yasaktır.<def.br>*<def.br>2- Gemi içerisinde gate açmak yasaktır.<def.br>*<def.br>3- Bu kurallar yöneticiler tarafından istenildiği zaman düzenlenebilir. Kullanıcılar ve kaptanlar bu kuralları sürekli kontrol etmek ve uygulamakla yükümlüdür.<def.br>*<def.br>4- Yukarıdaki kuralların herhangi birinin ihlali durumunda, verilecek ceza, verecek olan yetkilinin insafiyetindedir.

[DIALOG d_ship_help button]


[DIALOG d_ship_delete]
0,0
page 0
resizepic 261 250 3500 330 150
resizepic 270 260 3000 310 130
dhtmlgump 284 303 279 20 0 0 <def.bfont_dred>Geminizi kaldırmak istediğinizden emin misiniz?
button 287 331 2117 2118 1 0 1
button 427 331 2117 2118 1 0 0
dhtmlgump 308 330 90 20 0 0 <def.bfont_green>Evet, eminim.
dhtmlgump 447 330 120 20 0 0 <def.bfont_red>Hayır, emin değilim.
dhtmlgump 322 266 250 20 0 0 <def.bfont_dred><serv.servname> Gemi Kaldırma Menüsü
dhtmlgump 368 363 100 20 0 0 <def.bfont_dred><serv.url>

[DIALOG d_ship_delete text]

[DIALOG d_ship_delete button]
On=0

ON=1
for 0 <src.findlayer.21.rescount>
	if <src.findlayer.21.findcont(<dlocal._for>).link.type> == t_ship
	src.f_delete_ship
	return 1
        endif
endfor

[Events e_ship]
ON=@SpellCast
if ((<SRC.UID.<SRC.REGION.UID>.TYPE>==t_ship) && (<argn> == 52))
src.f_error Bu büyüyü bu alanda yapamazsınız.
src.skill fail
return 1
endif

[ITEMDEF 04240]
//i_deed_ship_small_N
DEFNAME=i_deed_ship_small_N
NAME=Deed to a small ship
ID=i_deed_ship
RESOURCES=i_deed,i_multi_ship_small_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Small Ship

ON=@Create
	MORE=i_multi_ship_small_N

[ITEMDEF 04241]
DEFNAME=i_deed_ship_dragon_small_N
ID=i_deed_ship
NAME=Deed to a small dragon ship
RESOURCES=i_deed,i_multi_ship_dragon_small_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Small Dragon Ship

ON=@Create
	MORE=i_multi_ship_dragon_small_N

[ITEMDEF 04242]
DEFNAME=i_deed_ship_medium_N
ID=i_deed_ship
NAME=Deed to a medium ship
RESOURCES=i_deed,i_multi_ship_medium_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Medium Ship

ON=@Create
	MORE=i_multi_ship_medium_N

[ITEMDEF 04243]
DEFNAME=i_deed_ship_dragon_medium_N
NAME=Deed to a medium dragon ship
ID=i_deed_ship
RESOURCES=i_deed,i_multi_ship_dragon_medium_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Medium Dragon Ship

ON=@Create
	MORE=i_multi_ship_dragon_medium_N

[ITEMDEF 04244]
DEFNAME=i_deed_ship_long_N
ID=i_deed_ship
NAME=Deed to a long ship
RESOURCES=i_deed,i_multi_ship_long_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Long Ship

ON=@Create
	MORE=i_multi_ship_long_N

[ITEMDEF 04245].
DEFNAME=i_deed_ship_dragon_long_N
ID=i_deed_ship
NAME=Deed to a long dragon ship
RESOURCES=i_deed,i_multi_ship_dragon_long_N
TYPE=t_deed_ship

CATEGORY=Provisions - Deeds
SUBSECTION=Ship Plans
DESCRIPTION=Long Dragon Ship

ON=@Create
	MORE=i_multi_ship_dragon_long_N

[EOF]

Kodun tamamı tarafımdan yazılmıştır, eklenmesini istediğiniz veya hata bulduğunuz noktaları yorum olarak yazarsanız, bende onları düzelte bilirim.

Üye Ol veya Giriş Yap

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