UO-Dev Arama

 



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

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 180
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #89609   12-09-2016 16:28 GMT    
        
Selam arkadaşlar. sphere.ini de Combat sistemine skillerin damage'a bonus +larını aktif ettiğinizde tactics'i gmlediğinizde ortalama 10 ekstra damage veriyor anatomy de aynı şekilde 10 vermekte. Bunu deaktif ettiğimde ise anatomy 0 tactics 0 ekstra damage vermektedir.Ama bu silah kuşandığımızdadır. MEsela tactics ve anatomy 0 iken yumruğumuzu silah olarak kullandığımızda 1-4 arası damage diyor.Ama tactics ve anatomy 100 leyince Bu sefer 1-8 1-9 falan oluyor.Bi bardiche aldığımda elime 13-17 ise ortalama 22-28 civarı damage ekliyor. Şimdi sistemi kabaca anlattıktan sonra merak ettiğim hususları yazacağım.


Şimdi öncelikle bonus olarak nasıl % olarak veriyor? Yani kodu yazmış olsak mantıken wrestling'e +10 puan verdiğini düşünürsek 1-8 olması yeirne 11-14 olması lazım.Bunu nasıl başarmışlar sanırım sphere içinde olan bir şey bu. kodların hiçbir yerinde bulamadım bu formülü. Şuanda sphere'ın custom damage sistemini kullanıyorum yani armor resist ve silah damage iletmekten başka hiçbir +sı yok. 20 armorlu birine 10 damagelık bi silahla vurduğumda 8 damage olarak iletiyor. Bu istediğim bir şey sadece ekstra olarak eklemek istediğim şey Fencing mf gibi skillerin ekstra damage olarak kişiye bonus vermesi. Serverımda cünkü miss gibi bir şey yok.Her seferinde çatçat vuracağı için bu sefer sw fence kasmak mantıksızlık.Normalde skiller miss orannı düşürmesi için kasılır.



Yazar

Gokku


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 237
Oyun Tarzı:
Emulatör: 0.55i
Tecrübe:
Yaş: 32
Mesaj #89610   12-09-2016 17:21 GMT    
        
yani bu durumun değiştirilebilmesi için hardcoded müdahale yapılması lazım ancak onu kapatıp kendi yaptığın bir event üzerinden verilecek hasarın hesaplanarak tactic ve anatomy oranın toplamının %25/4 üzerinden hesaplatırsan ozaman daha mantıklı birşeyler olacaktır.

kısaca bir event ekle adama vurulduğunda verilecek hasar oranını eğer adamın tactic ve anatomy si belirli bir oranın üzerinde ise ikisinin toplamının %25 inin 4 ünü adama random bir ekstra hasar olarak verdirtirsen normal şekilde ayarlayabilirsin. miss olma oranları skill ayarları içerisindeki değişkenlerle hesaplandığından aralığı arttırdıkça miss oranın tüm skillerde de artacaktır.


dünyayı kullanma kılavuzunun yazarı

Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #89611   12-09-2016 17:55 GMT    
        
Kod:
if ( <src.Weapon> && <serv.CombatFlags>&00080 && (<argn2>&DAM_PHYSICAL || <argn2>&DAM_PIERCE || <argn2>&DAM_SLASH)) ) // COMBAT_OSIDAMAGEMOD 
local.mod = 0
local.modtemp = 0
// Begin bonus section
if ( <src.weapon.type>==t_weapon_axe || <weapon.type>==t_weapon_sword )
local.modtemp = <src.lumberjacking>/50
if (<src.lumberjacking> > 100.0)
local.modtemp +=10
endif
endif
local.mod +=<local.modtemp>

local.modtemp=<src.tactics>/16
if (<src.tactics>> 100.0)
local.modtemp +=6
endif
local.mod +=<local.modtemp>

local.modtemp=<src.anatomy>/16
if (<src.anatomy>> 100.0)
local.modtemp +=5
endif
local.mod += <local.modtemp>

local.modtemp=<src.str>/3
if (<src.str> > 100 )
local.modtemp += 5
endif
local.mod += <local.modtemp>

local.dam += <local.dam> * (<local.mod>/100) // local.dam += <local.dam> * current bonus /100
// End bonus section
endif


Sphere_combat.scp de bu kısmı bulup istediğin gibi düzenleyebilirsin.


Geçmişi olmayanın, geleceği olmaz.

Yazar

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 180
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #89612   12-09-2016 18:31 GMT    
        
xwerswoodx olmuyo abi ya zaten onu kullanmıyorum ben.



Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #89613   12-09-2016 19:41 GMT    
        
Tam olarak sorunu anlayamadım o zaman biraz daha açık anlatırsan belki çözebiliriz


Geçmişi olmayanın, geleceği olmaz.

Yazar

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 180
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #89614   12-09-2016 20:10 GMT    
        
Şuan hiçbir combat sistemi yok sphere'ın default şeyleri var. İstediğim şey ise Tactics anatomy gibi skiller ile alacağım damage bonusunu ben ayarlamak istiyorum ve bu anında Status barda gözükmeli tam olarak bunu istiyorum



Yazar

xrambo


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 121
Oyun Tarzı: Pvp
Emulatör: Sphere
Tecrübe: Scripter
Yaş: 27
Mesaj #89615   12-09-2016 20:40 GMT    
        
Kod:
[Function GetDam]
Return <Eval <Dam.Low>+<Armor>>,<Eval <Dam.High>+<Armor>>

[Function F_COMBAT]
Local.Dam = <Qval <Weapon> ? <eval {<Weapon.GetDam>}> : <Qval 1 ? <Qval <IsPlayer> ? <Eval {1 4}> : <Eval {<serv.chardef.<body>.dam>}>> : <Eval {<serv.chardef.<body>.dam>}>>>
Local.Tactics = <Eval <Tactics>/60>
Local.Anatomy = <Eval <Anatomy>/70>
local.morey <eval <weapon.morey>/50>
local.silah = <eval <<serv.skill.<weapon.skill>>>/45>
Local.Str = <Eval <Str>/10>
Local.Lumberjacking = <Qval <Weapon.Type>==t_weapon_axe ? <Eval (<Lumberjacking>/90) + <Qval 999 < <Lumberjacking> ? 3 : 0>> : 0>
Local.Bonus = <Eval <Local.Tactics> + <Local.Anatomy> + <local.morey> + <Local.Lumberjacking> + <local.silah> + <Local.Str> >
Return <MulDiv <Local.Dam>,<Local.Bonus>,100>


Rota Uo

Yazar

xwerswoodx


Sphere Destek
Skill Title: Master
Online durumu
Toplam Mesaj: 1726
Oyun Tarzı: Rp
Emulatör:
Tecrübe: Scripter
Yaş: 9
Mesaj #89616   12-09-2016 23:06 GMT    
        
Alıntı
Wasabi-san :
Şuan hiçbir combat sistemi yok sphere'ın default şeyleri var. İstediğim şey ise Tactics anatomy gibi skiller ile alacağım damage bonusunu ben ayarlamak istiyorum ve bu anında Status barda gözükmeli tam olarak bunu istiyorum



Zaten yukarda kopyaladığım kod sphere'nin default script packde bulunuyor, sphere_combat.scp adında dosya var ilk satırı arat bulursun Orada kodda gördüğün gibi, anatomy, tactics, lumberjacking ve str bonusu bulunuyor


Geçmişi olmayanın, geleceği olmaz.

Yazar

Gokku


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 237
Oyun Tarzı:
Emulatör: 0.55i
Tecrübe:
Yaş: 32
Mesaj #89619   13-09-2016 20:44 GMT    
        
56b kullanıyor muhtemelen 56b defaultta o script yok.


dünyayı kullanma kılavuzunun yazarı

Yazar

MirroR


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 594
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 26
Mesaj #89620   14-09-2016 05:28 GMT    
        
*10 luk hesaplamalar yeteneğin sadece %10 luk kısmının alındığını gösterir. Hangi yetenek üzerinde ayar yapmak istiyorsan *10'u düzenleyerek yeteneğin %kaçlık kısmının ele alınacağını ayarlıyabilirsin.

Tactics, Anatomy, Wrestling, WeaponSkill. Bu yeteneklerden istemediğin var ise sil gitsin.

Kod:
ON=@HIT
REF1 = <UID> // VURAN
REF2 = <SRC> // HASAR ALAN
REF3 = <ARGO> // KULLANILAN SILAH
LOCAL._TACTICS = <eVAL (((<FEVAL <REF1.TACTICS>>) * 10) / 100)>

LOCAL._ANATOMY = <eVAL (((<FEVAL <REF1.ANATOMY>>) * 10) /100)>

LOCAL._WRESTLING = <eVAL (((<FEVAL <REF1.WRESTLING>>) * 10) /100)>

LOCAL._WSKILL = <eVAL (((<FEVAL <REF1.<SERV.SKILL.<STRSUB 0 6 <REF3.SKILL>>.NAME>>>) * 10) / 100)>

LOCAL._BONUS = <eVAL <dLOCAL._TACTICS> + <dLOCAL._ANATOMY> + <qVAL (<REF3.SKILL> == 0)?<dLOCAL._WRESTLING>:<dLOCAL._WSKILL>>>
ARGN1 +=<dLOCAL._BONUS>


Hamitin bahsetmiş olduğu sphere_combat.scp içerisindeki kodlar doğrudur fakat onları düzenleyip üzerindeki değişiklikleri görebilmen için aynı zamanda sphere.ini içerisindeki CombatFlags = 080 'nin aktif olması gerekiyor.

Bakınız aktif olabilmesi için if sorgusunda istenilenler.
Kod:
if ( <src.Weapon> && <serv.CombatFlags>&00080 && (<argn2>&DAM_PHYSICAL || <argn2>&DAM_PIERCE || <argn2>&DAM_SLASH)) ) // COMBAT_OSIDAMAGEMOD 


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

Yazar

Wasabi-san


UO-Dev Üyesi
Skill Title: Journeyman
Online durumu
Toplam Mesaj: 180
Oyun Tarzı: Rp
Emulatör: 0.56b
Tecrübe: Diğer
Yaş: 31
Mesaj #89749   06-10-2016 14:29 GMT    
        
Arkadaşlar buldum sphereserver'ın source'unda Ccharskill'i notepad ile açtığınızda


Bu kısımda istediğiniz skillin damage verme işlemini yapıyorsunuz.
if ( g_Cfg.m_iCombatDamageEra )
{
if ( skill == SKILL_FENCING || skill == SKILL_MACEFIGHTING || skill == SKILL_TACTICS || skill == SKILL_SWORDSMANSHIP )
UpdateStatsFlag(); // those skills are used to calculate the char damage bonus, so we must update the client status gump
}


Sonra, Ccharfight note pad ile açıp şu kısımda formulu yazıyorsunuz

default:
case 0:
{
// Sphere custom formula
if ( !iStatBonus )
iStatBonus = static_cast<STAT_TYPE>(STAT_STR);
if ( !iStatBonusPercent )
iStatBonusPercent = 10;
iDmgBonus += Stat_GetAdjusted(iStatBonus) * iStatBonusPercent / 100;
break;
}

case 1:
{
// pre-AOS formula
iDmgBonus += (Skill_GetBase(SKILL_TACTICS) - 500) / 10;

iDmgBonus += Skill_GetBase(SKILL_ANATOMY) / 50;
if ( Skill_GetBase(SKILL_ANATOMY) >= 1000 )
iDmgBonus += 10;

if ( pWeapon != NULL && pWeapon->IsType(IT_WEAPON_AXE) )
{
iDmgBonus += Skill_GetBase(SKILL_LUMBERJACKING) / 50;
if ( Skill_GetBase(SKILL_LUMBERJACKING) >= 1000 )
iDmgBonus += 10;
}

if ( !iStatBonus )
iStatBonus = static_cast<STAT_TYPE>(STAT_STR);
if ( !iStatBonusPercent )
iStatBonusPercent = 20;
iDmgBonus += Stat_GetAdjusted(iStatBonus) * iStatBonusPercent / 100;
break;
}

case 2:
{
// AOS formula

iDmgBonus += Skill_GetBase(SKILL_FENCING) / 16;
if ( Skill_GetBase(SKILL_TACTICS) >= 1000 )
iDmgBonus += 6; //6.25

iDmgBonus += Skill_GetBase(SKILL_TACTICS) / 16;
if ( Skill_GetBase(SKILL_TACTICS) >= 1000 )
iDmgBonus += 6; //6.25

iDmgBonus += Skill_GetBase(SKILL_ANATOMY) / 20;
if ( Skill_GetBase(SKILL_ANATOMY) >= 1000 )
iDmgBonus += 5;

if ( pWeapon != NULL && pWeapon->IsType(IT_WEAPON_AXE) )
{
iDmgBonus += Skill_GetBase(SKILL_LUMBERJACKING) / 50;
if ( Skill_GetBase(SKILL_LUMBERJACKING) >= 1000 )
iDmgBonus += 10;
}

if ( Stat_GetAdjusted(STAT_STR) >= 100 )
iDmgBonus += 5;

if ( !iStatBonus )
iStatBonus = static_cast<STAT_TYPE>(STAT_STR);
if ( !iStatBonusPercent )
iStatBonusPercent = 30;
iDmgBonus += Stat_GetAdjusted(iStatBonus) * iStatBonusPercent / 100;
break;
}
}

iDmgMin += iDmgMin * iDmgBonus / 100;
iDmgMax += iDmgMax * iDmgBonus / 100;
}

if ( bNoRandom )
return( bGetMax ? iDmgMax : iDmgMin );
else
return( Calc_GetRandVal2(iDmgMin, iDmgMax) );
}



Yazar

Mac-Fusion


UO-Dev Üyesi
Skill Title: Adept
Online durumu
Toplam Mesaj: 689
Oyun Tarzı: Pp
Emulatör: 0.56b
Tecrübe: Scripter
Yaş: 32
Mesaj #89884   01-11-2016 14:47 GMT    
        
Şundan başka hiçbirşey anlamadım.
Alıntı
Wasabi-san :
wrestling'e +10 puan verdiğini düşünürsek 1-8 olması yeirne 11-14 olması lazım



Bu sistemlerde mutlak bir değer yerine oyuncunun karakter yetenek yüzdesi hesaplanarak, vurulan değere ilave edilir.
En basitinden silahlarda bile DAM=5,9 gibi rastgele değerler verilir.


Sayfalar: 1



Benzer Konular

KonularMesajlarSon gönderenTarih
Gemi hasar yardım!11serseri3505-07-2017
Kritik hasar vurma script'i4Mac-Fusion13-05-2017
Npcye verilen Poison hasar3helpmee21-02-2017
Durability && Silah Hasarı && Asıl Hasar4Mac-Fusion24-10-2013
Hasar Verilemiyor ?6Mrs.xariyla13-03-2012


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