Yeni Başlayanlar İçin Action Scripti. . . |
Yazar
Mesaj
Saphireden gelen yada oyuna yeni başlayan arkadaşlar tarafından oyun içerisinde sıklıkla edilen ricalar üzerine paylaşmayı uygun buldum...
Bu script ile karakteriniz ;
* Sol alt köşede, geri sayımda bandaj gelme sürenizi görmeniz avantajı ile , damage aldığınızda bandaj basar..
* Zehirlendiğiniz zaman Cure potion kullanır...
* Attan düşürüldüğünüzde ata geri biner...
NOT1: Şuan ki scriptte Strength , agility ve refresh potionlarını zayi etmemek namına bu potionların otomatik kullanımı açık değildir..
Scriptin Paylaştığım şekli sadece ata binme , bandaj basma ve cure olayları için geçerlidir...
İlk kez easy kullanacak arkadaşlarda kafa karıştırmamak namına bu potionların otomatikleştirilmesini anlatmadım...
Otomatik halinin talebi durumunda yorum kısmına açıklama bırakabilirim..
Umarım işinize yarar...
* İndirmiş olduğunuz EasyUo programını çalıştırıp , yeni bir sayfa açın..
* Ardından aşağıdaki kısmı kopyalayıp , açtığınız yeni sayfaya yapıştırın ,
* Daha sonra ''Yeşil renkteki Start butonuna tıklayın...''
NOT2: Start butonuna tıkladığınızda , scripti çalıştırmak istediğiniz karakterinizi seçtiğinize emin olun...Easy Uo'da seçili karakteriniz sağ kısımdaki Character Info sekmesi altındaki Status Bar kısmına bağlı olan #CHARNAME kısmında yazar...Eğer seçili karakteriniz doğru ise bu kısıma dokunmanıza gerek yoktur...Fakat yanlış karakteriniz seçili ise ''yeşil renkteki start butonunun olduğu kısımın sağ tarafındaki CLI SWAP yazan ikona ''doğru karakter adınız'' görünene kadar tıklayın...
*Kopyalanacak kısım aşağıdadır iyi oyunlar dilerim....
*Bu cümlemin altındaki satırdan Gönderimin en sonuna kadar kopyalayın...
initevent
SET #SCNT 0
SET %bantsure 0
SET %cdowntimer 0
SET #sysmsgcol 75
event sysmessage -------------------------
event sysmessage # * v1.1 ** By * * Malison #
event sysmessage ------------------------
SET %healpottimer 0
SET %refeshpottimer 0
SET %disarmtimer 0
SET %str 85; buraya strengthinin bir eksigini koy (100 se 99 mesela)
SET %dex 155; buraya dexteritynin bir eksigini koy (100 se 99 mesela)
SET %healpothp 60 ; kac hp altinda heal pot icmek istedigin
SET %refreshpot 120; kac stamina altinda refresh icmek istedigin
set %backpack #backpackid
SET %steedtypes SC_QC_EC_UJ_TJ__SH_ZGB__SG_MG_OF_SF__WJ_KG_EG_MHB_ YJ_BK
set %steed null
=======================================
AutoSteedMountedFindLoop:
SET %index %index + 1
FINDITEM %steedtypes %index
IF #FINDKIND = 1
GOTO AutoSteedMountedFindLoop
IF #FINDKIND = 0
{
SET %steed #FINDID
SET %steedbu %steed
}
SET #LOBJECTID #CHARID
EVENT MACRO 17
WAIT 1s
SET %index 0
AutoSteedFindLoop:
SET %index %index + 1
FINDITEM %steedtypes %index
IF #FINDKIND = 1
{
IF #FINDDIST > 1
goto AutoSteedFindLoop
SET %steed #FINDID
SET %steedbu %steed
SET #LOBJECTID %steed
EVENT MACRO 17 0
}
set %mount %steed
if %mount = null
event sysmessage --------------------
event sysmessage # Otomatik Binek Tanima #
event sysmessage # *v1.8BETA By Malison *#
event sysmessage --------------------
}
goto mainloop
}
mainloop:
finditem %mount
if #findid = %mount
{
event macro 1 0 all come
set #lobjectid %mount
wait 10
event Macro 17
}
æ
if %cdowntimer < #scnt
{
set %countdown ( %bantsure - #scnt2 ) / 10
if %countdown > 0
Event SysMessage %countdown
set %cdowntimer #scnt
}
if #hits < #maxhits
{
gosub bandaj
}
if C in #CHARSTATUS
{
gosub curepot
}
80
if #hits < %healpothp
{
gosub healpot
}
if #str < %str
{
gosub strpot
}
if #dex < %dex
}
if #stamina < %refreshpot
{
gosub refpot
}
goto mainloop
sub bandaj
if %bantsure < #scnt2
{
event macro 1 0 [bandageself
wait 3
-------
set %a #dex * 1000
set %b 120000 - %a
set %c %b / 20
set %d %c + 5000
set %milisecs %d
set %bandajtimer %milisecs / 100
-------
SET %bantsure #scnt2 + %BANDAJTIMER
return
}
else
{
return
}
return
sub healpot
if #scnt2 > %healpottimer
{
finditem UUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
SET %healpottimer #scnt2 + 120
}
return
sub refpot
finditem ZUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub curepot
finditem NUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub strpot
finditem XUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub agilpot
finditem YUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
Bu script ile karakteriniz ;
* Sol alt köşede, geri sayımda bandaj gelme sürenizi görmeniz avantajı ile , damage aldığınızda bandaj basar..
* Zehirlendiğiniz zaman Cure potion kullanır...
* Attan düşürüldüğünüzde ata geri biner...
NOT1: Şuan ki scriptte Strength , agility ve refresh potionlarını zayi etmemek namına bu potionların otomatik kullanımı açık değildir..
Scriptin Paylaştığım şekli sadece ata binme , bandaj basma ve cure olayları için geçerlidir...
İlk kez easy kullanacak arkadaşlarda kafa karıştırmamak namına bu potionların otomatikleştirilmesini anlatmadım...
Otomatik halinin talebi durumunda yorum kısmına açıklama bırakabilirim..
Umarım işinize yarar...
* İndirmiş olduğunuz EasyUo programını çalıştırıp , yeni bir sayfa açın..
* Ardından aşağıdaki kısmı kopyalayıp , açtığınız yeni sayfaya yapıştırın ,
* Daha sonra ''Yeşil renkteki Start butonuna tıklayın...''
NOT2: Start butonuna tıkladığınızda , scripti çalıştırmak istediğiniz karakterinizi seçtiğinize emin olun...Easy Uo'da seçili karakteriniz sağ kısımdaki Character Info sekmesi altındaki Status Bar kısmına bağlı olan #CHARNAME kısmında yazar...Eğer seçili karakteriniz doğru ise bu kısıma dokunmanıza gerek yoktur...Fakat yanlış karakteriniz seçili ise ''yeşil renkteki start butonunun olduğu kısımın sağ tarafındaki CLI SWAP yazan ikona ''doğru karakter adınız'' görünene kadar tıklayın...
*Kopyalanacak kısım aşağıdadır iyi oyunlar dilerim....
*Bu cümlemin altındaki satırdan Gönderimin en sonuna kadar kopyalayın...
initevent
SET #SCNT 0
SET %bantsure 0
SET %cdowntimer 0
SET #sysmsgcol 75
event sysmessage -------------------------
event sysmessage # * v1.1 ** By * * Malison #
event sysmessage ------------------------
SET %healpottimer 0
SET %refeshpottimer 0
SET %disarmtimer 0
SET %str 85; buraya strengthinin bir eksigini koy (100 se 99 mesela)
SET %dex 155; buraya dexteritynin bir eksigini koy (100 se 99 mesela)
SET %healpothp 60 ; kac hp altinda heal pot icmek istedigin
SET %refreshpot 120; kac stamina altinda refresh icmek istedigin
set %backpack #backpackid
SET %steedtypes SC_QC_EC_UJ_TJ__SH_ZGB__SG_MG_OF_SF__WJ_KG_EG_MHB_ YJ_BK
set %steed null
=======================================
AutoSteedMountedFindLoop:
SET %index %index + 1
FINDITEM %steedtypes %index
IF #FINDKIND = 1
GOTO AutoSteedMountedFindLoop
IF #FINDKIND = 0
{
SET %steed #FINDID
SET %steedbu %steed
}
SET #LOBJECTID #CHARID
EVENT MACRO 17
WAIT 1s
SET %index 0
AutoSteedFindLoop:
SET %index %index + 1
FINDITEM %steedtypes %index
IF #FINDKIND = 1
{
IF #FINDDIST > 1
goto AutoSteedFindLoop
SET %steed #FINDID
SET %steedbu %steed
SET #LOBJECTID %steed
EVENT MACRO 17 0
}
set %mount %steed
if %mount = null
event sysmessage --------------------
event sysmessage # Otomatik Binek Tanima #
event sysmessage # *v1.8BETA By Malison *#
event sysmessage --------------------
}
goto mainloop
}
mainloop:
finditem %mount
if #findid = %mount
{
event macro 1 0 all come
set #lobjectid %mount
wait 10
event Macro 17
}
æ
if %cdowntimer < #scnt
{
set %countdown ( %bantsure - #scnt2 ) / 10
if %countdown > 0
Event SysMessage %countdown
set %cdowntimer #scnt
}
if #hits < #maxhits
{
gosub bandaj
}
if C in #CHARSTATUS
{
gosub curepot
}
80
if #hits < %healpothp
{
gosub healpot
}
if #str < %str
{
gosub strpot
}
if #dex < %dex
}
if #stamina < %refreshpot
{
gosub refpot
}
goto mainloop
sub bandaj
if %bantsure < #scnt2
{
event macro 1 0 [bandageself
wait 3
-------
set %a #dex * 1000
set %b 120000 - %a
set %c %b / 20
set %d %c + 5000
set %milisecs %d
set %bandajtimer %milisecs / 100
-------
SET %bantsure #scnt2 + %BANDAJTIMER
return
}
else
{
return
}
return
sub healpot
if #scnt2 > %healpottimer
{
finditem UUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
SET %healpottimer #scnt2 + 120
}
return
sub refpot
finditem ZUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub curepot
finditem NUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub strpot
finditem XUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return
sub agilpot
finditem YUF C_ , %backpack
set #lobjectid #findid
event Macro 17 0
return








Scripti sen yazdıysan bir şeyi merak ettim Emre.
Şimdi farzedelimki, bandajı basmaya başladı, tam o anda save geldi.
Ne olacak ?
------------------
Cevap : o saveden sonra, script tekrar başlatılmadıkça veya charın hpsi bir şekilde fullenmedikçe, script bandaj zamanını şaşırarak, gereksiz bandaj yiyecektir.
Not : Her sunucuda [bandageself komutu olmaz,
event macro 17 ; Last Object
target
event macro 23; Target Self
veya direkt
event macro 58 ; Bandage Self
şeklinde olması her sunucuda kullanılabilmesini sağlar, böylece çantanda bandaj varmı kontrolünüde yapmış olursun. Bandaj basma süresinin hesaplanması sunucu taraflıdır. Kullanıcılar için değil. Sen script başlarken 120 dex ile başlatmışsındır, oyun içerisinde büyü yersin dex düşer, sunucu taraflı bandaj timer değişir. Save gelir, 3 saniye sürer, 4 saniye sürer, sunucu o sırada save işlemi gerçekleştirir. Senin bandaj timerını save tamamlandıktan sonra kaldığı yerden devam ettirir. Ama EUO save geldiğinde timerı durdurmaz ve timer süresi dolduğunda tekrar bandaj basmaya kalkar(save bitmemişken). Client bile göçebilir. O yüzden client taraflı bandaj süresini hesaplama yolu ile bulamazsın. Bu yüzden sunucu cliente bandajın tamamlandığını bildiren mesaj gönderir. "You finished aplying .....". Bandaj süresi ile bandaj basmak yerine, bu mesajı kontrol ederek bandaj basmayı ayarlarsan sorunsuz çalışacaktır.
Ayrıca scriptin başında kullanıcılardan %str ve %dex tanımlaması yapmalarını istiyorsun.
event macro 8 2 ; Open status
kullanıcının statusunu açarsan #STR ve #DEX değerlerini scripte kendin de okutabilirsin, kullanıcıdan istemene gerek kalmaz. Yalnız #STR ve #DEX değerlerini okuyabilmen için statusun illaki açılması lazım, yani event macro 8 2 den sonra #contname değeri status_gump olana kadar kotrollu bekletme yaparak #STR ve #DEX değerlerini okuyabilirsin.
Bineğe binme kısmına gelelim. Bineği otomatik tanıyor :D Evet scripti başlattığında 1 kare içerisinde ilk bulduğu bineği, başkasının bineği de olabilir, binek olarak tanımlıyor :D Ayrıca bineğe binebilmek için yanlış bilmiyorsam en az 2 kare yakınında olmalısın. All come dedirtip hemen bindirmeye çalışıyorsun. Mesafe kontrolü yok, Binek binemeyeceğin bir mesafede ise, örneğin 12 kare uzaklıkta ( ekranın içinde olacak, yoksa findItem ile bulamazsın ) ve bir şekilde önü kapatılmış, pralyze yemiş, gelemiyor. senin char olduğu yerde All Come All Come der durur Ekranın sol tarafı yukardan aşağı yazı dolar.
Evet yazmışsın birşeyler. Bir şeyler yapmaya çalışmışsın (senmi yaptın bilmiyorum). Fakat bu işin algoritmasını yaparak uygulamak o kadar basit olmuyor. Bunun okulunu o kadar sene boşuna okumadık.
Hayırlı geceler. Kolay gelsin.
Şimdi farzedelimki, bandajı basmaya başladı, tam o anda save geldi.
Ne olacak ?
------------------
Cevap : o saveden sonra, script tekrar başlatılmadıkça veya charın hpsi bir şekilde fullenmedikçe, script bandaj zamanını şaşırarak, gereksiz bandaj yiyecektir.
Not : Her sunucuda [bandageself komutu olmaz,
event macro 17 ; Last Object
target
event macro 23; Target Self
veya direkt
event macro 58 ; Bandage Self
şeklinde olması her sunucuda kullanılabilmesini sağlar, böylece çantanda bandaj varmı kontrolünüde yapmış olursun. Bandaj basma süresinin hesaplanması sunucu taraflıdır. Kullanıcılar için değil. Sen script başlarken 120 dex ile başlatmışsındır, oyun içerisinde büyü yersin dex düşer, sunucu taraflı bandaj timer değişir. Save gelir, 3 saniye sürer, 4 saniye sürer, sunucu o sırada save işlemi gerçekleştirir. Senin bandaj timerını save tamamlandıktan sonra kaldığı yerden devam ettirir. Ama EUO save geldiğinde timerı durdurmaz ve timer süresi dolduğunda tekrar bandaj basmaya kalkar(save bitmemişken). Client bile göçebilir. O yüzden client taraflı bandaj süresini hesaplama yolu ile bulamazsın. Bu yüzden sunucu cliente bandajın tamamlandığını bildiren mesaj gönderir. "You finished aplying .....". Bandaj süresi ile bandaj basmak yerine, bu mesajı kontrol ederek bandaj basmayı ayarlarsan sorunsuz çalışacaktır.
Ayrıca scriptin başında kullanıcılardan %str ve %dex tanımlaması yapmalarını istiyorsun.
event macro 8 2 ; Open status
kullanıcının statusunu açarsan #STR ve #DEX değerlerini scripte kendin de okutabilirsin, kullanıcıdan istemene gerek kalmaz. Yalnız #STR ve #DEX değerlerini okuyabilmen için statusun illaki açılması lazım, yani event macro 8 2 den sonra #contname değeri status_gump olana kadar kotrollu bekletme yaparak #STR ve #DEX değerlerini okuyabilirsin.
Bineğe binme kısmına gelelim. Bineği otomatik tanıyor :D Evet scripti başlattığında 1 kare içerisinde ilk bulduğu bineği, başkasının bineği de olabilir, binek olarak tanımlıyor :D Ayrıca bineğe binebilmek için yanlış bilmiyorsam en az 2 kare yakınında olmalısın. All come dedirtip hemen bindirmeye çalışıyorsun. Mesafe kontrolü yok, Binek binemeyeceğin bir mesafede ise, örneğin 12 kare uzaklıkta ( ekranın içinde olacak, yoksa findItem ile bulamazsın ) ve bir şekilde önü kapatılmış, pralyze yemiş, gelemiyor. senin char olduğu yerde All Come All Come der durur Ekranın sol tarafı yukardan aşağı yazı dolar.
Evet yazmışsın birşeyler. Bir şeyler yapmaya çalışmışsın (senmi yaptın bilmiyorum). Fakat bu işin algoritmasını yaparak uygulamak o kadar basit olmuyor. Bunun okulunu o kadar sene boşuna okumadık.
Hayırlı geceler. Kolay gelsin.


1. sayfa (Toplam 1 sayfa) [ 10 mesaj ] |
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız |