UO-Dev Arama

 



İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar

Pinke


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 38
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 30
Mesaj #95668   19-05-2018 03:57 GMT    
        
Kolay gelsin hayırlı sahurlar Dostlar. Kafama takılan bir kaç soru var bunları düşündügüm gibi cöze bilirmiyiz. Mesela ben bir özel dragon yaptım kendini tedavi ediyor falan istedigim büyüleri yemiyor ama bu dragonu 3 4 kişi kesmeye kalktığnda dragonnun bu oyunculara büyü atma gibi şansı olmuyo sürekli ok atan biri fizzletiyor bende diyorumki bu dragon 5 dk bir Ortam büyüsü atsın 50 hp götürsün ve ne atılırsa atılsın bu dragona fizzlemesin ben bunu nasıl yapa bilirim basitce anlatırsanız sevinirim tşklr biraz acemiyimde bu konularda



Yazar

MirroR


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 578
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 26
Mesaj #95669   19-05-2018 04:05 GMT    
        
https://www.uo-developer.com.....-npc__n-last.html#bottom

bu konuda senin cevaplamıştım ama görmedin sanırım.


Hayat dediğin bir çift bacak gidebildiğin yol kadardır.

Yazar

Pinke


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 38
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 30
Mesaj #95670   19-05-2018 04:43 GMT    
        
yok gördümde ben bunu anlıyamadım bir ikincisi benim istedigim gibi bitşey degil bu cok karışık



Yazar

MirroR


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 578
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 26
Mesaj #95676   19-05-2018 16:51 GMT    
        
Kod:
[defname EffectType]
_EffectType i_fire_column,i_fx_explode,i_fx_glow_spike


Kod:
on=@gethit
ref1 = <uid>
tag0._Multi +=<dargn1>
if (<dtag._Hasar> >= 150)
forplayers 18
local._EffectType = <R1,3>
damage <R40,50>,0,<ref1>
effect = 3,<getargvx <dlocal._EffectType>,<def._EffectType>>
endfor
tag._Multi =
endif


Kod:
[function getargvx]
if (<argv[0]> == -1)
return <eval <argv>-1>
else
return <argv[<argv[0]>]>
endif


Dene bu zaten senin istediğin gibi bir şey.


Hayat dediğin bir çift bacak gidebildiğin yol kadardır.

Yazar

Slothere


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 236
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95678   20-05-2018 13:58 GMT    
        
Custom spell yazmak istemiyorsan şöyle bir alternatif de kullanabilirsin.

Kod:
on=@gethit
ref1 <uid>
forplayers 18
if <isonline>
args "s_flamestrike, s_fire_bolt, s_magic_arrow, s_poison, s_earthquake, s_chain_lightning"
local.spell <argv[<R0,<eval <argv>-1>>]>
spelleffect <local.spell> 1000 <ref1>
endif
endfor


args "s_flamestrike, s_fire_bolt, s_magic_arrow, s_poison, s_earthquake, s_chain_lightning"

Buraya atmasını istediğin büyüleri aralarına virgül girerek belirtmen yeterli. Başka bir yeri değiştirmene lüzum yok.

Burada spelleffect ile hardcoded büyü attırdığın için custom efekt verip hasar verdirmeye oranla çok daha performanslı çalışacaktır. Ama tabi özel bir beklentin varsa kendine göre düzenlemen gerekir.

Şu anki yapısıyla yaratık her hasar alışta böyle vurur. 5dk'da bir ya da belirli şartlarda vursun diyorsan o şartları ayrıca eklemek lazım.


Yazar

MirroR


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 578
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 26
Mesaj #95679   20-05-2018 16:21 GMT    
        
if sorgundaki <isonline>'ı görünce aklıma geldi. Sadece aktif oyuncuları göz önünde bulunduran forclients, bende forplayers olarak yapmıştım.


 Slothere
Hayat dediğin bir çift bacak gidebildiğin yol kadardır.

Yazar

Pinke


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 38
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 30
Mesaj #95681   22-05-2018 05:20 GMT    
        
Slothere dedigin gibi yaptık olduda ama dragonun hitsi düşmüyor kesmek isteyince hic bir sekilde canı gitmiyor..


Son güncelleme: Pinke tarafından 22-05-2018 06:40 GMT, 34 Gün önce düzenlendi.



Yazar

Slothere


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 236
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95682   22-05-2018 11:10 GMT    
        
Şu an nasıl kullanıyorsun? Üstteki örnekte canın gitmesini engelleyen bir durum yok. Yanlış yerde return kullanımı vs. ile olmuş olabilir. Kodları bir görelim.


Yazar

Pinke


UO-Dev Üyesi
Skill Title: Novice
Online durumu
Toplam Mesaj: 38
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Player
Yaş: 30
Mesaj #95686   23-05-2018 04:00 GMT    
        
bu şekilde..

Kod:
[CHARDEF c_dragoncuk2]
DEFNAME=c_dragoncuk2
NAME=King Of Dragon
ID=c_exodus_overseer
SOUND=snd_MONSTER_DAEMON1
ICON=i_pet_dragon
DAM=25,45
ARMOR=20
CAN=MT_WALK|MT_FLY|MT_RUN
FOODTYPE=10 t_meat_raw
//SHELTER=r_caves,r_dungeon
DESIRES=i_gold
AVERSIONS=r_civilization,r_water

on=@click
message @38 <name>
message @38,1,1,1 [Str:<str> | Hits:<hits>]
return 1

ON=@Create
COLOR=0
NPC=brain_dragon
STR={6500 6700}
DEX={9000 9000}
INT={800 1000}

PARRYING={100.0 100.0}
MAGERY={5000.0 5000.0}
MAGICRESISTANCE={5000.0 7500.0}
TACTICS=5000.0
WRESTLING=5000.0


KARMA={-5000 -6000}
FAME={800 900}


ITEMNEWBIE=i_spellbook
ADDSPELL=s_flamestrike
ADDSPELL=s_teleport

CATEGORY=Monsters
SUBSECTION=New
DESCRIPTION=Eleminatethree


on=@npcrestock
item {i_deri5 5 i_deri4 4 i_deri3 3 i_deri2 2 i_deri1 1}
item {i_ss_24 17 i_mace_war_24 16 i_axe_24 15 i_axe_24 14 i_mace_24 13 i_club_24 12 i_war_24 11 i_cutlas_24 10 i_scm_24 9 i_krs_24 8 i_tc_bs24 7 i_katana_24 5 i_spear_24 4 i_halberd_21 3 i_bardic_24 2 i_pit_24 1},R2
ITEM=i_power_scroll,R3
ITEM=i_power_scroll
ITEM=i_power_scroll
ITEM=i_power_scroll
ITEM=i_gold,50000
ITEM=i_gold,50000
ITEM=i_define_haritasi
ITEM=i_sc,3
item {i_fenc_robe 5 i_mf_robe 4 i_sv_robe 3 i_tame30 2 i_ostard_egg 1},R3
item {i_malzeme1 3 i_malzeme2 2 i_malzeme3 1}





ON=@Gethit
if (<hits> < 300)
sayua 68,2,0,eng,* Kendini Tedavi Eder *
effect=3,025e0,6,35,1
sound snd_spell_greater_heal
hits=(<hits> + 75)
endif
if (<act.baseid>=c_vortex)
sayua 68,2,0,eng,* Etkilenmez *
effect=3,025e0,6,35,1
sound snd_spell_greater_heal
src.remove
endif
if (<act.baseid>=c_blade_spirit)
sayua 68,2,0,eng,* Etkilenmez *
effect=3,025e0,6,35,1
sound snd_spell_greater_heal
src.remove
endif
if (<act.baseid>=c_daemon)
sayua 68,2,0,eng,* Etkilenmez *
effect=3,025e0,6,35,1
sound snd_spell_greater_heal
src.remove
endif
if (<act.baseid>=c_bear_polar)
sayua 68,2,0,eng,* Etkilenmez *
effect=3,025e0,6,35,1
sound snd_spell_greater_heal
src.remove
endif
ref1 <uid>
forplayers 18
if <isonline>
args "s_explosion"
local.spell <argv[<R0,<eval <argv>-1>>]>
spelleffect <local.spell> 1000 <ref1>
endif
endfor


ON=@spelleffect
if (<argn> == 20)
sayua 68,6,6,1 * buyuyu geri cevirir *
effect=3,025e0,6,35,1
spelleffect 29 {500 1000}
src.poison 9999
src.effect 3,i_fx_curse,6,16,0
src.sound snd_SPELL_POISON
return 1
elseif (<argn> == 20)
sayua 68,6,6,1 * etkilenmez *
effect=3,025e0,6,35,1
spelleffect 29 {500 1000}
return 1
endif

if (<ARGN>=27)                              //Des Sanct
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=30)                              //Des Sanct
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=37)                              //Des Sanct
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=57)                              //Des Sanct
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=1)                               //Uus Jux
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=3)                               //Rel Wis
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=5)                               //In Por Ylem
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=8)                               //Des Mani
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=38)                               //Des Mani
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=39)                               //Des Mani
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF

if (<ARGN>=47)                               //Des Mani
sayua 68,6,6,1 * Etkilenmez *
effect=3,025e0,6,35,1
RETURN 1
ENDIF



IF (<src.findid.i_rune_clumsy>) || (<src.findid.i_rune_feeblemind>) || (<src.findid.i_rune_magic_arrow>) || (<src.findid.i_rune_weaken>)
src.findid.i_rune_clumsy.remove
src.findid.i_rune_feeblemind.remove
src.findid.i_rune_magic_arrow.remove
src.findid.i_rune_weaken.remove
SPELLEFFECT=s_cure,150.0,1
endif
ennudgeupdif


on=@death
src.newitem 02634
src.act.color 0
src.act.p <src.p>
src.act.timer 120
src.act.attr attr_decay
src.act.move d 1
src.newitem 02c80
src.act.color 38
src.act.p <src.p>
src.act.timer 10
src.act.attr attr_decay
src.act.move nw 1



Yazar

B3LyRsy2


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 118
Oyun Tarzı:
Emulatör:
Tecrübe:
Yaş:
Mesaj #95688   23-05-2018 05:18 GMT    
        
@Slothere'nin dediği gibi return kullanımı olsaydı canının gitmemesi durumu söz konusu olabilir di. ancak bu durumda geriye kalan aklımda ki tek soru Gm charla mı damage/hasar vermeye çalışıyorsun? bazı istisnai durumlarda Gm karakter hasar vermiyor olabilir. oyuncu karakterle dene, bazı büyülerden canı gitmiyor diyorsan @spelleffect kısmındaki büyüleride kontrol et. poi yediği zaman canı gitmsin die Return 1 ile durdurulmuş ve Argn==30,37,57 büyüleri hasar büyüleri. 39 ve 47 ise field büyüsü.

//- ayrıca NPC üzerinde başka bir event varmı @GETHIT trigger'ı tetikleyecek onu kontrol et, ve belki dalgınlık ve unutmuş olabilirsin hasar vermeye çalıştığın bölge safe alan mı. Star gibi (bazen bazı sunucuların starı safe olabiliryor) Green Acres bölgeleri vs.

bir de @GETHIT altındaki src.remove'leri act.remove olarak değiştir. kendini silme ihtimali var.
@SPELLEFFECT altında 2 kere poi büyüsünü tanımlamışsın. onu şu şekilde değiştir.

Kod:
IF (<ARGN> == 20)
SAYUA 68,6,6,0 * büyüyü geri çevirir *
EFFECT=3,025E0,6,35,1
SPELLEFFECT=29 {500 1000}
SRC.POISON=9999
SRC.EFFECT=3,I_FX_CURSE,6,16,0
SRC.SOUND=snd_SPELL_POISON
RETURN 1 // poi ile canı gitsin istiyorsan bunu kaldır.
ENDIF

//- Etkilenmez büyüleri için de böyle yapabilirsin.
IF ((<ARGN> == 1) || (gibi) || (gibi) || (<ARGN> == XX))
SAYUA 68,6,6,0 * Etkilenmez *
EFFECT=3,025e0,6,35,1
RETURN 1
ENDIF


Son güncelleme: B3LyRsy2 tarafından 25-05-2018 02:16 GMT, 31 Gün önce düzenlendi.


 Slothere
Hatalar başarıları tetikler.

Errors triggers success.
Lσadiηq ..

████████████████████___| %€rr0R Lσadiηq


computer. a human brain. you should know how to control it.
bilgisayar. bir insan beyni. nasıl kontrol edeceğini bilmelisin.


Yazar

Slothere


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 236
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 26
Mesaj #95690   23-05-2018 12:46 GMT    
        
@Pinke

Teknik olarak ölümsüz bir yaratık yapmışsın. Özellikle 300 canın altında sürekli 75 can basılması eğer çok yüksek miktarda ve ani bir hasar almazsa karakterin ölmemesine sebep olacaktır.

Hesap kitapta eval kullanmanı öneririm.

hits=(<hits> + 75)

yerine

hits += 75
veya
hits <eval <hits>+75>

gibi.

Sorgularda tek yerine çift == sorgulamalısın. = atama operatörüdür. Çalışıyor gibi görünse de arka planda ekstra bir sorguya sebep oluyorsun. Bu da performans düşüklüğüne sebep oluyor.

if <argn> = 1

yerine

if <argn> == 1

kullanılmalı.

Yalnızca explosion atılmasını istiyorsan verdiğim kodu şöyle de düzenleyebilirsin. Ekstra hesap kitaba gerek kalmaz.

ref1 <uid>
forplayers 18
if <isonline>
spelleffect s_explosion 1000 <ref1>
endif
endfor

Bunun dışında canın gitmesini engelleyen farklı bir yer göremedim. Belki dikkatli bakmamışımdır. @B3LyRsy2'in dediği gibi farklı bir event olabilir mi ona bir bakmanı öneririm. Bulunan bölgenin region'ı da tekrar bahsedildiği gibi önemli. Gethit altına parametre ekleyip kaç damage geldiğini falan sorgula. Önce işlem yapmayan kaç damage verdildiğine bak. İşlemden sonra bu değer kaça düşüyor onu sorgula. Aralarda kesilme varsa oradan müdahalede bulunursun.


Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Ortam Büyüsü atan npc3paris1610-05-2018
Teleport Büyüsü Armor İstisnası Yaratmak54s3d327-07-2017
Bineğin atak verdine büyü atması ?20manyaqq23-04-2013
Animal Spell Büyüsü8jeem27-09-2010


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ı,