UO-Dev Arama

 

İçerde : 1 misafir, 0 üye : --- Sayfalar: 1
Yazar
Skill Title: Apprentice
Toplam Mesaj: 63
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Player
Yaş: 34
Beğeni: 3
Mesaj #100971   21-02-2021 05:48 GMT    
     
bir buton yaptım bandajı tıkladığımda oto kendine basıyor hata almıyorum o şekilde spherede ama üst üste sürekli o butona basınca hata veriyor mesela hitsi 100 oldugunda basınca hata almıyorum atıncada bandajı kendine hata almıyorum ama hitsi az olunca sürekli basmak istedigimde sphereye hata gönderiyor nedendir bu acaba


Script Kodu:
09:39:ERROR:(a_asd.scp,59)Undefined keyword 'self'




Script Kodu:
[dialog D_asd button]
on=1
src.bandaj
src.self
sdialog D_deneme
return 1



Yazar
Skill Title: Adept
Toplam Mesaj: 707
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 29
Beğeni: 107
Mesaj #100972   21-02-2021 07:30 GMT    
     
// Emin değilim mantık yürütüyorum sadece. Sanırım bandajı bir kere kullanır kullanmaz kullanmaya devam etmesini sağlarsan target çıkmadığı için self fonksiyonu uyarı verir tahminimce.
Bandaj delay itemin neyse i_Healing kısmıyla değiştir bi dene.


Script Kodu:
[dialog d_asd button]
on=1
if !( <src.findid.i_healing> )
  src.bandaj
  src.self
endif
sdialog d_Deneme


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

Yazar
Skill Title: Apprentice
Toplam Mesaj: 63
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Player
Yaş: 34
Beğeni: 3
Mesaj #100997   22-02-2021 04:32 GMT    
     
Buraylamı çatışıyor ? Bu şekilde yaptığımda, tek değişen bandajı atıyor sürekli bastığımda yetişemiyorsunuz diyor



Script Kodu:
if !( <src.findid.i_heal_delay> )
  src.bandaj
  src.self
endif




Script Kodu:
if (<src.findid.i_heal_delay>)
src.sys_kirmizi Bandajları tekrar kullanmak için <kalansure <src.findid.i_heal_delay.timer>> beklemelisiniz.
return 1
endif



Yazar
Skill Title: Adept
Toplam Mesaj: 585
Oyun Tarzı:
Emulatör: Sphere
Tecrübe: Player
Yaş: 30
Beğeni: 61
Mesaj #101020   23-02-2021 16:23 GMT    
     
Kaynak kodlardan bakıldığında self komutu sadece clientten gelen isteklere göre sphere tarafından çözülmeniyor. Bir fake target için fix yapılmış bu yüzden de tanımsız olarak görüyor. İlgili kaynak kod aşağıda


Script Kodu:
case CV_SELF:
// Fake self target.
if ( GetTargMode() >= CLIMODE_MOUSE_TYPE )
{
ASSERT(m_pChar);
Event_Target(GetTargMode(), m_pChar->GetUID(), m_pChar->GetTopPoint());
addTargetCancel();
break;
}
return false;


Eğer Sphere-X derlemesi üzerinden ilerliyorsanız buradaki if tanımlamasını kaldırarak sorununuzun çözülebileceğini umuyorum.

Eğer emülatör üzerinden değişiklik yapma imkanınız yoksa onbutton altına yeni bir fonksiyon yazmanız gerekebilir.

Örneğin ;


Script Kodu:
[FUNCTION HEALING_START]
IF (<FLAGS> & statf_dead) || (<FLAGS> & statf_freeze) || (<FLAGS> & statf_stone)
SRC.SYSMESSAGE @38,,1,1 Şu anki durumunuzda kullanamazsınız.

ELIF (<FINDID(i_healing2)>)
SRC.SYSMESSAGE @38,,1,1 Bandajları şu an kullanamazsınız.

ELIF (<ISUSESKILL Magery>)
SRC.SYSMESSAGE @38,,1,1 Büyü yaparken bandaj kullanamazsınız.

ELIF (<FINDID(i_healing)>)
SRC.SYSMESSAGE @38,,1,1 Şuan zaten tedavi aşamasındasınız.
ELSE
SRC.ANIM 17
SERV.NEWITEM I_HEALING,1,<UID>,1
NEW.LINK <UID>
DELAY 30
EVENTS +E_HEALING
SYSMESSAGE @044,,1 Tedaviye başladın.
ENDIF
RETURN 1


Gibi, bandaj scriptinizi görmeden yazıldı fakat genelde bu bandaj scripti kullanıldığı için bu şekilde bir örnek verdim. Kendi bandaj scriptinizi paylaşırsanız yardımcı olmaya çalışırım.

Anladığım kadarıyla dialog üzerinden direkt oyuncunun kendisine bandaj atmasını sağlamaya çalışıyorsunuz, target çıkartmadan.


Son güncelleme: System_Error tarafından 23-02-2021 16:31 GMT, 3 Gün önce düzenlendi.



Yazar
Skill Title: Apprentice
Toplam Mesaj: 63
Oyun Tarzı: Rp
Emulatör: Sphere
Tecrübe: Player
Yaş: 34
Beğeni: 3
Mesaj #101034   24-02-2021 02:46 GMT    
     
Anladığım kadarıyla dialog üzerinden direkt oyuncunun kendisine bandaj atmasını sağlamaya çalışıyorsunuz, target çıkartmadan.


EVET o şekilde birşey yapmaya çalışıyorum ve atıyor ama sorun hatalar benim anladığım kadarı ile ; attıgımda hiç bir hata vermiyor bandajı canı full ikende hata almıyorum hata aldıgım yerler bandaj attıgı anda tekrar bandaja basmam o arada şunu diyor Beklemelisniz.... o ksımda sphere eror veriyor. Birde çantamda bandaj yokken o butona bastıgımda çantanızda bandaj yoktur diyip tekrar spherede hatalar oluşuyor


Tetiklendiği Buton

Script Kodu:
on=1
if !( <src.findid.i_heal_delay> )
  src.bandaj
  src.self
endif
sdialog D_potmenu



Bandaj scriptim;

Script Kodu:
[ITEMDEF 0ee9]
DUPEITEM=0e21
NAME=Bandage%s

[ITEMDEF 0e21]
DEFNAME=i_bandage
NAME=Bandage%s
RESOURCES=i_cloth
TYPE=T_BANDAGE
WEIGHT=0.0
DUPELIST=0ee9
value=1


ON=@CREATE
ATTR=0

on=@dclick
ATTR=0
IF !(<src.isinpack <uid>>)
src.sys_kirmizi <def.unpackmsg>
return 1
endif
if (<src.tag0.heal_tekrar> > 0)
src.sys_kirmizi Bandajları şu an kullanamazsınız.
return 1
endif
if (<src.flags>&statf_freeze)
src.sys_kirmizi Bu durumda bandajları kullanamazsınız.
return 1
endif
IF (<SRC.ACTION>==SKILL_MAGERY) || (<SRC.ACTION>==ID(SKILL_MAGERY))
src.sys_kirmizi Büyü uygularken bandaj kullanamazsınız.
return 1
endif
if (<src.findid.i_heal_delay>)
src.sys_kirmizi Bandajları tekrar kullanmak için <kalansure <src.findid.i_heal_delay.timer>> beklemelisiniz.
return 1
endif

src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
src.sys_beyaz Kimi tedavi etmek istiyorsunuz ?
targetf f_heal
return 1



[function f_heal]
if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
return 1
endif

if !(<argo.ischar>)
src.sys_kirmizi Bunu eşyalar üzerinde kullanamazsın.
src.sys_beyaz Kimi tedavi etmek istiyorsunuz ?
targetf f_heal
RETURN 1
ENDIF

if (<src.isdeath>)
src.sys_kirmizi Ölüyken bandaj kullanamazsınız.
return 1
endif

IF (<ARGO.DISTANCE> > 6) || !(<ARGO.CANSEELOS>)
src.sys_kirmizi Hedefe ulaşamıyorsun.
return 1
endif

if !((<argo.isplayer>) || (<argo.isanimals>) || (STRMATCH(*Dummy*,'<ARGO.ID>')))
src.sys_kirmizi Bunu sadece oyuncular, hayvanlar ve Dummyler üzerinde kullanabilirsiniz.
return 1
endif

if (<eval <src.p.z>+8> < <argo.p.z>) || (<eval <src.p.z>-8> > <argo.p.z>)
src.sys_kirmizi <src.targ.name> ile aynı seviyede değilsiniz.
return 1
endif

if (<argo.ismonsters>) && !(<argo.isplayer>) && !(<argo.isanimals>)
src.sys_kirmizi Bunu iyileştiremezsiniz.
return 1
endif

if (<argo.hits> >= <argo.maxhits>)
if !(<argo.isdeath>)
if !(<argo.findid.i_rune_poison>)
if !(<argo.findid.i_bleeding>)
argo.hits <argo.str>
src.sys_kirmizi <argo.name> tedaviye ihtiyaç duymuyor.
return 1
endif
endif
endif
endif

if (<argo.isdeath>)
IF (<ARGO.IsInHouse>)
IF !(<ARGO.TAG0.HOUSE_RESURRECT>)
SRC.SYS_KIRMIZI Ev içindeki oyuncuları hayata döndüremezsiniz.
RETURN 1
ENDIF
ENDIF

//src.anim 17
src.spd 2
src.face <argo>
src.consume 5 i_bandage
src.effect 3,0376a,2,10,1
serv.newitem i_heal_delay
new.equip

if (<argo.ispk>) || (<argo.iscriminal>)
src.criminal 1
endif

if (<argo.isplayer>)
argo.resurrect 1
argo.effect 3,0376a,2,10,1
argo.sayua 048,0,0,6 * <src.name> Tarafından Dirilir *
else
src.sys_kirmizi Hatalı seçim.
endif
return 1
endif

SRC.TAG0.HEAL_TEKRAR 1
src.spd 1
SRC.FACE <argo>
SRC.F_HEAL_X <argo.uid>
src.sys_beyaz Tedavi süreci basladi !
return 1





[function f_heal_x]
ref1 <args>

src.events +e_heal

if (<ref1.hits> > <ref1.str>)
ref1.hits <ref1.str>
endif

if (<src.tag0.heal_bozuldu> == 1)
src.sayua 38,0,0,6 * Bandajları Yırtılır *
src.sys_kirmizi Bandaj uygulama işleminiz başarısız oldu.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
src.consume 1 i_bandage
return 1
endif


if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

if (<ref1.hits> == <ref1.str>) && !(<ref1.hits> == 0) && !(<ref1.findid.i_rune_poison>) && !(<ref1.findid.i_bleeding>)
src.sys_kirmizi <qval (<src.uid> == <ref1.uid>)?Tedaviye ihtiyaç duymuyorsun.:<ref1.name> tedaviye ihtiyaç duymuyor.>
src.tag0.heal_tekrar=0
events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

if (<ref1.isdeath>)
src.sys_kirmizi <ref1.name> isimli oyuncu hayatını kaybetti.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

if !(<eval <src.tag0.heal_tekrar>> >= 4)
src.face <ref1>
src.tag0.heal_tekrar +=1
src.TIMERF 1,src.f_heal_x <ref1>         // bunu elleme 1 saniyede bir düşüo
else
src.f_heal_finish <ref1>
src.tag0.heal_tekrar=0
src.events -e_heal
return 1
endif









[function f_heal_finish]
ref1 <args>

if !(<src.restest 1 i_bandage>)
src.sys_kirmizi Bandajınız yok.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

if (<ref1.isdeath>)
src.sys_kirmizi <ref1.name> isimli oyuncu tedavi süresinde hayatını kaybetti.
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

if (<ref1.hits> > <ref1.str>)
ref1.hits <ref1.str>
endif

if (<ref1.hits> == <ref1.str>) && !(<ref1.hits> == 0) && !(<ref1.findid.i_rune_poison>)
src.sys_kirmizi <qval (<ref1.uid> == <src.uid>)?Tedaviye ihtiyaç duymuyorsun.:<ref1.name> tedaviye ihtiyaç duymuyor.>
src.tag0.heal_tekrar=0
src.events -e_heal
src.tag0.heal_bozuldu=
return 1
endif

//////// kendini ve başkasını yara
if (<ref1.findid.i_bleeding>)

if !(<ref1.uid> == <src.uid>)
if (<ref1.ispk>) || (<ref1.iscriminal>)
src.criminal 1
endif
endif

ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Yarasını İyileştirir *:* <src.name> Tarafından Yarası İyileştirilir *>
ref1.findid.i_bleeding.remove

if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif

ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif

//////// başkasının ve kendini zehir tedavi
if (<ref1.findid.i_rune_poison>)

if !(rand(10) == 1)
ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Zehiri Tedavi Eder *:* <src.name> Tarafından Zehiri Tedavi Edilir *>
ref1.findid.i_rune_poison.remove
ref1.effect 3,0376a,2,10,1

if !(<ref1.uid> == <src.uid>)
if (<ref1.ispk>) || (<ref1.iscriminal>)
src.criminal 1
endif
endif

else
ref1.effect 3,i_fx_curse,2,10,1
ref1.sayua 38,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Zehiri Tedavi Edemez *:* <src.name> Tarafından Zehiri Tedavi Edemez *>
endif

if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif

src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif

//// veteriner
if (<ref1.isanimals>)
if (<ref1.hits> < <ref1.str>)
ref1.sayua 0bb2,0,0,0 * <src.name> Tarafından Tedavi Edilir *



LOCAL.MINHEAL = <EVAL (<SRC.VETERINARY> / 70) + (<SRC.ANIMALLORE> / 60) + 3>
LOCAL.MAXHEAL = <EVAL (<SRC.VETERINARY> / 70) + (<SRC.ANIMALLORE> / 60) + 10>
LOCAL.HEAL = <EVAL {<LOCAL.MINHEAL>,<LOCAL.MAXHEAL>}>
IF (<LOCAL.HEAL> <= 0)
LOCAL.HEAL = 1
ENDIF
REF1.HITS += <dLOCAL.HEAL>

if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif

ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif
endif




//////// kendini ve başkasını tedavi///
if (<ref1.hits> < <ref1.str>)
ref1.sayua 048,0,0,6 <qval (<ref1.uid> == <src.uid>)?* Kendini Tedavi Eder *:* <src.name> Tarafından Tedavi Edilir *>

LOCAL.MINHEAL = <EVAL (<SRC.ANATOMY> / 70) + (<SRC.HEALING> / 60) + 3>
LOCAL.MAXHEAL = <EVAL (<SRC.ANATOMY> / 70) + (<SRC.HEALING> / 60) + 10>
LOCAL.HEAL = <EVAL {<LOCAL.MINHEAL>,<LOCAL.MAXHEAL>}>
IF (<LOCAL.HEAL> <= 0)
LOCAL.HEAL = 1
ENDIF
REF1.HITS += <dLOCAL.HEAL>
src.sys_beyaz +<dLOCAL.HEAL> Hits

if !(<ref1.uid> == <src.uid>)
src.<qval (<ref1.ispk>)?criminal 1:sysmessage>
src.<qval (<ref1.iscriminal>)?criminal 1:sysmessage>
endif

if (<ref1.hits> >= <ref1.str>)
ref1.hits <ref1.str>
endif
ref1.effect 3,0376a,2,10,1
src.consume 1 i_bandage
serv.newitem i_heal_delay
new.equip
return 1
endif




[itemdef i_heal_delay]
name Healing Delay
id 0186a
type t_eq_script
weight 0
layer layer_special

On=@Create
attr attr_invis|attr_newbie

On=@Equip
timer 6

On=@Timer
//cont.sys_beyaz Bandaj uygulaması yapabilirsiniz.
remove
return 1




[events e_heal]
on=@gethit
IF (RAND(5) == 1)
tag0.heal_bozuldu 1
endif

on=@death
tag0.heal_bozuldu 1
targetkapat

on=@logout
src.tag0.heal_bozuldu 1

[EOF]



Sayfalar: 1


Benzer Konular :

KonularMesajlarSon gönderenTarih
i_rune_magic_reflection hatası2xrambo25-02-2021
ref1.remove' Hatası12xrambo21-02-2021
Runebook Undefined symbol Hatası4piedra_lara09-02-2021
'ref1.remove' hatası6piedra_lara03-02-2021
Sphere x ve ultima sürüm kurulum hatası4Nioble28-01-2021


Kullanıcı Adı:Parola: Beni Hatırla?


Mythic broadsword sphereserver modernuo runuo ServUO JustUO

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

UO-Dev Footer UO-Dev Footer