UO-Dev Arama

 



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

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 177
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #96411   19-09-2018 14:12 GMT    
        
Selam arkadaşlar. Benim normal uodan farklı bir healing sistemim var. Yapılmasında yardım etmek isteyen varsa mekaniği anlatacağım. Eğer yardım ederseniz sanırım sıkıntısız Combat testi için Server'ı açacağım. Çünkü şuan tek healing sistemim kaldı. Sword/Fence/Archery/MF/tactics bütün hepsinin yetenekleri eşya değerleri zırh değerleri her şey ayarlandı. Sadece bandaj kaldı. Amazondan beleş server alıp test için sanırım 10 kişiyi kaldırabilecek düzeyde bi bağlantı veriyor 1 sene boyunca onunla küçük çaplı bi savaş mekaniği testi yapıcaz (magery'e dokunmadım daha spellerin %40 ı değişecek zaten o yüzden ilk başta fiziksel hasar bazlı şeyleri halletmeye calıstım)

Bandaj/healing sistemi şöyle.

3 çeşit bandaj var
Basit bandaj : Sadece heal yapıcak hiçbir şekilde zehri alma gibi bir şansı yok sadece düz heal. bu da Hedefi bandajlamaya başlayınca canı fulse bandaj kullanmaya devam edicek hiçbir şekilde maxhits'in üstüne cıkmayacak can. Mesela 120maxhits 120hp varsa 120de kalıcak öyle 1 bandajı da heba edicek.

Bandajların genel can doldurması şöyle olucak. Vereceği hp miktarı Healing'e bağlı. ve Healing over time şeklinde (zaman aralıklı hp) olucak ve 6 kere can vericek. Mesela örnek vermek gerekirse 40 healingi olan birisi bana bandaj yaptığında 6 kere toplamda 6 saniye (her biri 1 saniye aralıklı) 3 hp veren bir bandaj sistemi olacak. Yani 6 saniyenin sonunda eğer kimse vurmazsa 6x3 = 18 hp mi doldurucak 6 saniyede. Her saniye 3 hp dolumu olucak. Gelelim bunun dezavantajına. Birisi bize bi saldırı yaptığında Bu 6 kere tickleyecek olan şey Her vuruş aldığımızda 1 tane düşecek. Buna da örnek verelim. Bandajı kendime kullandım 1 saniye sonra 3 hp kazandım kaldı 5 kere ticklemesi. Geldi birisi vurdu ve bu 4 e düştü. Hemen artından tekrardan bandajın saniyesi devreye girdi kaldı 3. Bi tane daha hasar aldım kaldı 2. Bu mantığı şöyle tablo şekline getirirsek

Bandajın Kaç kere beni heallayacağı : 6
Aldığım hasar : 2
Bandajın beni Healladığı : 4 kere

Bu durumda 3hp x 4 Bandaj tıklaması : 12 hp doldurmuş olacağım.
Eğer 4 kere hasar yemiş olsaydım 6-4 = 2 2 kere 3hp dolum olucak.

Garlic bandaj :
Garlic + basit bandaj birleşimi ile elde edilecek ve Her türlü poison'ı silecek.

Ginseng bandaj :
Bu da Ginseng + bandaj ile Bandaj'ı kullandığımız anda Küçük bir miktar Hp verecek sonrası yine basit bandaj gibi işleyişi olucak.

Garlic ginseng bandaj :
Bununla Poisonlı iken Hem heal hem de poison'ı cure edecek şekilde çalıştırıcağız. Ama bunda Ginseng bandaj gibi Ani bir can dolumu olmayacak. İşleyişi Garlic bandaj + basit bandaj gibi olacak.

Basit bandaj ile Resurrection yapılabilecek bu arada.

Yardımcı olabilirseniz çok sevinirim.


 TheRaskol

Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1721
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #96423   20-09-2018 12:03 GMT    
        
Aslında yapılması bayağı basit bir şey ama nasıl yapılacağını şöyle açıklayayım. Öncelik ile bandajlar için tek tek sistem yazmaya gerek yok, basitçe TAG ile yapılabilir. Tüm bandajları tek tek oluşturup hepsine TYPE olarak t_bandage vermek ve On=@Create altında

Normal bandaj için;
Kod:
TAG0.CURE=0
TAG0.IMMEDHEAL=0
TAG0.TIMEDHEAL=1


eklersin, garlic bandajında ise;
Kod:
TAG0.CURE=1
TAG0.IMMEDHEAL=0
TAG0.TIMEDHEAL=0


Ginseng de;
Kod:
TAG0.CURE=0
TAG0.IMMEDHEAL=1
TAG0.TIMEDHEAL=1


Garlic Ginseng de ise;
Kod:
TAG0.CURE=1
TAG0.IMMEDHEAL=0
TAG0.TIMEDHEAL=1


Eklersin. Basitçe açıklamam gerekirse TAG0.CURE bandajın poison iyileştirip iyileştirmeyeceğini, TAG0.IMMEDHEAL ise bir bandajın anlık can basıp basmayacağını TAG0.TIMEDHEAL ise bandajın süre bazında can doldurup doldurmayacağını belirtecek olan taglarımız olacak.

Sisteme gelirsek, TYPEDEF t_bandage içinde On=@DClick altında target aldırabilirsin,
Kod:
[TYPEDEF t_bandage]
On=@DClick
TARGET @,,1 Kimi iyileştireceksiniz?
RETURN 1

On=@TargOn_Char
IF (<ARGO.ISPLAYER>) //Target oyuncu ise?
  ...
ENDIF
RETURN 1


oyuncu bandaja tııkladığında hedefi seçtikten sonra eğer TAG0.IMMEDHEAL var ise o kişiye anlık can dolduracaksın, bunu da şöyle bir basit sorguyla yapabilirsin;
Kod:
IF (<dTAG0.IMMEDHEAL>)
  IF (<ARG0.FLAGS>&statf_dead) //Eğer anlık can basılan oyuncu ölü ise;
    ARGO.RESURRECT //Canlandıralım
  ELSE
    ARGO.HEAL += <eval <CONT.HEALING> / 100> //Matematiksel olarak, 40.0 Healing anlık 4 can, 100.0 healing anlık 10 can doldurur.
    IF <ARGO.HEAL> > <ARGO.MAXHEAL>
      ARGO.HEAL=<ARGO.MAXHEAL>
    ENDIF
  ENDIF
ENDIF


Sonrasında eğer cure hemen devreye girecekse, altına IF (<dTAG0.CURE> diyip altında poison vs silersin.
Eğer hemen devreye girmeyecekse bu sorgu şimdilik gereksiz.

Gelelim tik olayına, öncelikle bunun için bir item oluşturup t_eq_script yapacaksın ve bandaj basılan kişiye vereceksin, ayrıca gethit sorgusu için e_bandage gibi bir event yapıp yine bandaj basılan kişiye bunu vereceksin. Sonrasında tik için bu item altında TIMER 1 ile süre başlatacaksın, her On=@Timer tiklendiğinde atıyorum MOREY += 1 yapıp MOREY verisini bir arttıracaksın. MOREY kullanıcak isen On=@Create altında MOREY=0 yap ki sorun yaşamayasın. Ayrıca bu itemi oluştururken iteme TAG0.CURE verisini kayıt et ki sorun yaşanmasın.

Kod:
ARGO.NEWITEM i_memory_bandage
NEW.TAG0.CURE=<dTAG0.CURE>
NEW.TAG0.TIMEDHEAL=<dTAG0.TIMEDHEAL>
NEW.TAG0.HEAL=<EVAL <CONT.HEALING> / 100> //Sürekli hesap yapmamak için burada bunu tag olarak kayıt edelim, her saniye healing/10
NEW.LINK=<CONT> //Burada bandaj basan oyuncuyu link olarak kayıt ettik eğer kullanmak istersen <LINK.NAME> bandaj basan kişi olarak döner.
NEW.EQUIP
NEW.TIMER=1


Itemi verdikten sonra i_memory_bandage benim salladığım bir isim orayı istediğin gibi yaparsın, memory itemimizin altına;
Kod:
On=@Timer
//Bu if sorgusu poison iyileştirme için, burada oturup findid falan fistan zaten herhangi bir healing scriptinden alabilirsin poison iyileştirmeyi şuan itemin adını hatırlamıyorum, ama zaten yeni sürümlerde direkt olarak CONT.POISON=0 poison siliyordu diye anımsıyorum, yani sana kalmış.
IF (<dMOREY> <= 6) //Memory 6 kere tiklenecek.
  IF (<dTAG0.CURE>) && (<CONT.NEEDCURE>) //İyileştirme mi yapacak? (CONT.NEEDCURE bir fonksiyon bu fonksiyonda eğer poison var ise 1, yok ise 0 dönmeli ancak dediğim gibi poison ve poison_field itemleri aklımda değil o yüzden sen kendin scripts içinden bulabilirsin. Fonksiyonu basitçe yazacağım ilerde.
    ...
    IF !(<dTAG0.TIMEDHEAL>) //Burda eğer TIMEDHEAL bilgisi yok ise bandaj basmaya devam etmesini engelledik.
      REMOVE
      RETURN 1
    ELSE //Eğer ki süreli can basılacak ise burada morey arttırıp timeri tekrar çağırdık ki işlem devam etsin...
      MOREY += 1
      TIMER = 1
      RETURN 1
    ENDIF
  ELIF (<dTAG0.TIMEDHEAL>) && (<CONT.FLAGS>&statf_dead) //Basılan oyuncu ölü ise ve bandaj can basan bir bandaj ise;
    CONT.RESURRECT //Oyuncuyu canlandıralım
    MOREY += 1
    TIMER=1
    RETURN 1
  ELIF (<dTAG0.TIMEDHEAL>) //Cure ihtiyacı yok ise oyuncuya can bastıralım, ancak can bastırmadan önce can basılıp basılmayacağını da kontrol edelim ki garlic bandaj cure ihtiyacı yok görüp can doldurmasın
    CONT.HEAL += <dTAG0.HEAL>
    IF (<CONT.HEAL> > <CONT.MAXHEAL>)
      CONT.HEAL = <CONT.MAXHEAL>
    ENDIF
    MOREY += 1
    TIMER = 1
    RETURN 1
  ENDIF
ENDIF
CONT.EVENTS -e_bandage //Oyuncudan eventi silelim.
REMOVE
RETURN 1


Tabi ben yukarda bütün freeze, stone vs gibi durumları atladım onları yine sen sorgularsın gerekli yerlerde.

NEEDCURE fonksiyonu için ise;
Kod:
[FUNCTION NEEDCURE]
IF (<FINDID.(poison spell itemi)>) || (<FINDID.(poison field spell itemi)>) //Gerçi statf_poisoned yada belki <poison> > 0 sorguları iş yapabilir tam anımsamıyorum
  RETURN 1
ENDIF
RETURN 0


Gelelim vurunca tik sayısının azalmasına, bu en basit kısım sadece oluşturduğuumuz [e_bandage] eventinin içine
Kod:
[EVENTS e_bandage]
On=@GetHit
IF (<FINDID.i_memory_bandage>) //Tiklenen memory itemimiz
  FINDID.i_memory_bandage.MOREY += 1 //Morey'i 1 arttırdık böylece tik sayısını 1 azaltımış olduk.
ENDIF


Az çok istediklerini açıklamaya çalıştım, bundan sonrası artık senin geliştirmene kalmış bir şey, hemen hemen kod için gerekli her şeyi açıkladım zaten eminim burdan sonrasını kendin de yapabilirsin. Yukarda da dediğim gibi stone, freeze, guild, crim, pk, gibi sorguların hiç birisini yazmadım, bunlar zaten temel sorgular o yüzden o kısmı senin halledeceğini düşünüyorum, ayrıca veterinary için bir şey yazmadığım için olacaksa onu kendin kodlaman gerekecek.

İyi forumlar dilerim.


 TheRaskol, The And, xrambo, Wasabi-san, Tanthalas
Geçmişi olmayanın, geleceği olmaz.

Yazar

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 177
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #96425   20-09-2018 14:12 GMT    
        
Teşekkür ederim bu bile yeterli benim için. Ben script konusunda iyi değilim. Zaten Savaş yeteneklerin özel vuruşlarını görsen gülersin yazdığım şekle şuan için sadece amacım Elimde bir proje var ve bunu geliştirmek istiyorum diye gösterip, bir iki güzel kod yazabilen arkadaş çekebilmek. Oyun dinamiklerini ben yaratıp eşya databaseini benim üstlenmem kodları ise bir dokuman hazırlıyorum dökümana yeteneklerin nası çalıştığı vs her şey yazıyor/yazmaya devam ediyorum. İstediğim şeyler dediğin gibi basit belki ama bana sürekli yardımcı olabilecek bir arkadaş lazım. yıl 2018 olduğu için uo ile uğraşmak inceden vakit kaybı gibi hissedildiği için (Valla arada ben bile hissediyorum yapıyorumda uğraşıyorumda boşa yapıyorum gibi geliyor diye hissediyorum) elimde en azından kodu yazcak kişiyi teselli edebilecek gözle görülebilecek şeyler yapmak, "bak elimde böyle bir şey var" diyebilmek. Kendi imkanlarımla ve Mirror sağ olsun burada da 1 2 kişi sağ olsun baya yardımcı oldular karşılıksız hepsine de ayrı ayrı teşekkür ederim.

Amacım ultima online değil. Ultima online'ı kullanıp kendi mmorpg mi yaratmak. Hoş legends of aria izledim geçenlerde Archery için yaptığım bütün yetenek atışlarını yapmışlar. Olsun 4 fiziksel hasar tipli yeteneklerin hepsine özel vuruşlar ekledim. Tactics te bile Utility denen kendine yararı olan mini buff + işlevsellik tipi büyüler de ekledim. Bu işten para kazanmayı da düşünüyorum hoş telif hakkı muhabbeti var ama Soft cap dedikleri şekilde Donate üzerinden insnalara premium özellikler verebilirsek Telif yüzünden problem çıkacağını sanmıyorum zira Blizzard'ın wow oyununun private serverlarında da bu şekilde işliyor. Donate yapıyorsun "SERVER'ı destekleme" adı altında destekliyorsunda, ekstrası da adamın cebine gidiyor Donate yapanlarda Oyun içi ekstra özellikler + Eşya falan alabiliyor. Ben bu işin market kısmını da araştırdım çok fazla insanlara premium almak için özellik ekleyeceğim. Özel renk boyalar, Kostümler, Bazı küçük oyuncunun progress(gelişimini) destekleyecek eşyalar, Cesetleri lootlayacak (sadece npc cesetleri) petler, Karakter ağırlığını genişletebilecek, Stat skill cap'i 5 8 10 puan yükseltebilecek şeyler satılacak(normalde kasarak da bu stat arttırma özelliğini elde edebileceksin tabiki.)

MMorpg de denenmemiş şeyleri deneyeceğim. Kendime yenilik konusunda güveniyorum. 97den beri Oyun oynamaktayım artık oyunları yapan insanların oyun oynamayan oyun aspectinden anlamayan insanlar olduğunu düşünüyorum. Özellikle oyunlarda 2008den sonra kırılma oldu. Eski oyunlara bakıldığında oyunlar çok zordu Yüksek hasar vurabilmek için çok özel zor şeyler yapman gerekiyordu. Şimdi elini sallayan tek atıyor. Bu da oyunculuğu oyunu kötü kılıyor. Yeni çıkan oyunlara bakıyorum en fazla vurduğun 4 ya da 5 kere. Kırılgan bir karaktersen bazen tek yiyorsun ve cc muhabbeti cıktığından beri oyunlardan keyif almamaya başladım. Çünkü hiçbir şey yapamadan ölmek çok saçma geliyor bana? hem 2 vuruşta ölüyorsun hem hareket edemiyorsun oynamanın amacı ne ki? Lol hepimiz oynamışızdır. Adc nin Rengarın ultisi ile tek yemesi 0.13 saniyede ölmek bu oyunu oynanır kılmaz ki? Saçma değil mi hiçbir şekilde yaşama şansın yok. Ve adamın ultisi 50 saniyede bir geliyor. 50 saniyede bir öleceksin demek oluyor bu eğer herif sana kitlenirse her seferinde. Zaten cap levelda 60 saniye civarı sürmekte doğma süresi.



Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Uygun Fiyata Satılık Script1Thebagpuss19-10-2018
Donate Sistemi İçin Özgün Eşyalar?41Alp15-10-2018
Mana stone Script5sedat622116-05-2018
Orta Dünya Region Script14Daedhelon09-05-2018
Stable sistemi yardım9MirroR27-04-2018


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