Monster Hareket Hızı LAZIM

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 67

Admin

Knight Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
45,967
İlk Önce NpcTableSet.h Dosyasını Aşağıdaki Gibi Değiştiriniz..



Konuya Cevap yazdıgınız icin tesekurler

Kod:

#pragma once



class CNpcTableSet : public OdbcRecordset

{

public:

CNpcTableSet(OdbcConnection * dbConnection, NpcTableArray * pMap)

: OdbcRecordset(dbConnection), m_pMap(pMap), m_bMonster(false)

{

}



virtual tstring GetTableName() { return _T("K_NPC"); }

virtual tstring GetColumns() { return _T("sSid, strName, sPid, sSize, iWeapon1, iWeapon2, byGroup, byActType, byType, byFamily, byRank, byTitle, iSellingGroup, sLevel, iExp, iLoyalty, iHpPoint, sMpPoint, sAtk, sAc, sHitRate, sEvadeRate, sDamage, sAttackDelay, m_sSpeed, bySpeed1, bySpeed2, sStandtime, sItem, iMagic1, iMagic2, iMagic3, sFireR, sColdR, sLightningR, sMagicR, sDiseaseR, sPoisonR, sBulk, byAttackRange, bySearchRange, byTracingRange, iMoney, byDirectAttack, byMagicAttack"); }



virtual bool Fetch()

{

CNpcTable *pData = new CNpcTable();

uint16 sBulk;



int i = 1;

_dbCommand->FetchUInt16(i++, pData->m_sSid);

_dbCommand->FetchString(i++, pData->m_strName);

_dbCommand->FetchUInt16(i++, pData->m_sPid);

_dbCommand->FetchUInt16(i++, pData->m_sSize);

_dbCommand->FetchUInt32(i++, pData->m_iWeapon_1);

_dbCommand->FetchUInt32(i++, pData->m_iWeapon_2);

_dbCommand->FetchByte(i++, pData->m_byGroup);

_dbCommand->FetchByte(i++, pData->m_byActType);

_dbCommand->FetchByte(i++, pData->m_tNpcType);

_dbCommand->FetchByte(i++, pData->m_byFamilyType);

_dbCommand->FetchByte(i++, pData->m_byRank);

_dbCommand->FetchByte(i++, pData->m_byTitle);

_dbCommand->FetchUInt32(i++, pData->m_iSellingGroup);

_dbCommand->FetchUInt16(i++, pData->m_sLevel);

_dbCommand->FetchUInt32(i++, pData->m_iExp);

_dbCommand->FetchUInt32(i++, pData->m_iLoyalty);

_dbCommand->FetchUInt32(i++, pData->m_iMaxHP);

_dbCommand->FetchUInt16(i++, pData->m_sMaxMP);

_dbCommand->FetchUInt16(i++, pData->m_sAttack);

_dbCommand->FetchUInt16(i++, pData->m_sDefense);

_dbCommand->FetchUInt16(i++, pData->m_sHitRate);

_dbCommand->FetchUInt16(i++, pData->m_sEvadeRate);

_dbCommand->FetchUInt16(i++, pData->m_sDamage);

_dbCommand->FetchUInt16(i++, pData->m_sAttackDelay);

_dbCommand->FetchUInt16(i++, pData->m_sSpeed);

_dbCommand->FetchByte(i++, pData->m_bySpeed_1);

_dbCommand->FetchByte(i++, pData->m_bySpeed_2);

_dbCommand->FetchUInt16(i++, pData->m_sStandTime);

_dbCommand->FetchUInt16(i++, pData->m_iItem);

_dbCommand->FetchUInt32(i++, pData->m_iMagic1);

_dbCommand->FetchUInt32(i++, pData->m_iMagic2);

_dbCommand->FetchUInt32(i++, pData->m_iMagic3);

_dbCommand->FetchUInt16(i++, pData->m_byFireR);

_dbCommand->FetchUInt16(i++, pData->m_byColdR);

_dbCommand->FetchUInt16(i++, pData->m_byLightningR);

_dbCommand->FetchUInt16(i++, pData->m_byMagicR);

_dbCommand->FetchUInt16(i++, pData->m_byDiseaseR);

_dbCommand->FetchUInt16(i++, pData->m_byPoisonR);

_dbCommand->FetchUInt16(i++, sBulk);

_dbCommand->FetchByte(i++, pData->m_byAttackRange);

_dbCommand->FetchByte(i++, pData->m_bySearchRange);

_dbCommand->FetchByte(i++, pData->m_byTracingRange);

_dbCommand->FetchUInt32(i++, pData->m_iMoney);

_dbCommand->FetchByte(i++, pData->m_byDirectAttack);

_dbCommand->FetchByte(i++, pData->m_byMagicAttack);



pData->m_byGroupSpecial = 0; // Default value



// Certain NPCs are defined in the database with a type of 0, which is the monster type.

// This can potentially cause problems in the future, so fix it now.

if (!m_bMonster && pData->m_tNpcType == NPC_MONSTER)

pData->m_tNpcType = NPC_GENERAL;



pData->m_fBulk = (float)(((double)sBulk / 100) * ((double)pData->m_sSize / 100));



if (!m_pMap->PutData(pData->m_sSid, pData))

delete pData;



return true;

}



NpcTableArray *m_pMap;

bool m_bMonster;

};



class CMonTableSet : public CNpcTableSet

{

public:

CMonTableSet(OdbcConnection * dbConnection, NpcTableArray * pMap)

: CNpcTableSet(dbConnection, pMap)

{

m_bMonster = true;

}



virtual tstring GetTableName() { return _T("K_MONSTER"); }

};





Sonra AIServer Bulunan Npc.cpp Acınız Orada



Konuya Cevap yazdıgınız icin tesekurler

Kod:

SendMoveResult(m_fPrevX, m_fPrevY, m_fPrevZ, (float)(m_fSecForRealMoveMetor / ((double)m_sSpeed / 1000)));





Aratınız Cıkanları..



Konuya Cevap yazdıgınız icin tesekurler

Kod:

SendMoveResult(m_fPrevX, m_fPrevY, m_fPrevZ, (float)m_sSpeed / 1000);





Bu Şekilde Değiştiriniz..



Sonra NpcTable.h Gelerek



Konuya Cevap yazdıgınız icin tesekurler

Kod:

CNpcTable() : m_sSpeed(MONSTER_SPEED)





Bulunuz O Yeri Bununla Değiştiriniz..



Konuya Cevap yazdıgınız icin tesekurler

Kod:

CNpcTable() : m_sSpeed(m_sSpeed)





Başta Dediğim Gibi %75 Olarak Düzeltiyor.. VeriTabanına K_NPC & K_MONSTER m_sSpeed 'smallint' Default Value Or Blindig 600 Eklemeyi Unutmayınız
Monster Hareket Hızı LAZIM: Knight Online Private Server Geliştirme Açısından Kritik Bir Parametre

Knight Online özel sunucularında (pserver) performans ve oyun deneyimi üzerinde büyük etkisi olan parametrelerden biri de monster hareket hızıdır. Bu değer, oyuncuların seviye atlama süresini, raid stratejilerini ve genel oyun dengesini doğrudan etkiler. Bu yazıda, monster hareket hızının neden önemli olduğunu, nasıl ayarlanabileceğini ve Knight Online geliştiricilerinin bu konuya nasıl yaklaşması gerektiğini ele alacağız.

Monster Hareket Hızı Nedir?

Knight Online'da her mob (monster) belirli bir hareket hızına sahiptir. Bu hız, karakterlerin saldırı yaparken mobların kaçındığı veya yaklaştığı mesafeye göre etkilenir. Hızlı hareket eden monstere karşı savaşmak daha zordur çünkü sürekli pozisyon değiştirir ve bazı yeteneklerin isabet alma ihtimali düşer. Yavaş monstere karşı savaşmak ise genellikle daha kolaydır.

Neden Monster Hareket Hızı Önemlidir?

Özel sunucularda (pserver), oyun dengesi büyük önem taşır. Eğer monster hızları çok yüksekse, oyuncuların seviye atlama süresi uzar, gruplar dağılabilir ve oyun keyfi düşer. Tersi durumda ise, monstere karşı çok kolay galip gelinirse, oyun içi zorluk hissi kaybolur ve oyuncu motivasyonu azalır.

Knight Online Emulator Ayarlarında Monster Hızı Nerede Değiştirilir?

Knight Online özel sunucu dosyalarında (server files), monster davranışlarını tanımlayan dosyalar vardır. Bunlardan bazıları mob.bin, npc.bin ve veritabanı (db) dosyalarıdır. Hareket hızı genellikle bu dosyalarda belirlenen parametrelerle ayarlanır. Özellikle server side (sunucu tarafı) değişikliklerinde bu hızlar kod seviyesinde ayarlanabilir.

Monster Hareket Hızını Nasıl Ayarlayabilirim?

Knight Online geliştiricileri (dev), emulator üzerinde monster hızlarını ayarlamak için genellikle source koduna müdahale eder. Bu işlem sırasında dikkatli olunmalıdır çünkü hatalı bir ayar sunucuda beklenmedik davranışlara yol açabilir. Bazı geliştiriciler, bu ayarları config dosyaları üzerinden de yönetebilir.

Knight Online Botlar Ve Monster Hareket Hızı

Knight Online bot (örneğin KoBot, iKO, tKO) geliştiricileri de monster hareket hızını göz önünde bulundurmak zorundadır. Botlar, hızlı hareket eden monstere karşı doğru şekilde reaksiyon veremezse, başarısı düşer. Bu nedenle, bot geliştiricileri genellikle test sunucularında farklı hızlarda monstere karşı botları test ederler.

Monster Hareket Hızı ve PvP Etkileşimi

PvP sunucularında da monster hızı, raid ve grup savaşları sırasında stratejik olarak önem kazanır. Özellikle Karus ve El Morad savaşları gibi senaryolarda, monstere karşı strateji geliştirmek için hız bilgisi hayati rol oynar. Bu bağlamda, geliştiriciler hem PvE hem de PvP deneyimini optimize etmek zorundadır.

Sonuç

Knight Online özel sunucu geliştirme sürecinde, monster hareket hızı gibi küçük ama kritik detaylara dikkat etmek, kullanıcı memnuniyetini doğrudan etkiler. Sunucu operatörleri ve geliştiriciler, bu parametreyi dikkatle ayarlayarak hem yeni oyuncuların eğlenceli bir şekilde seviye atlamalarını hem de опытли игроков için zevkli bir oyun ortamı sağlamalıdır.

Kaynaklar

Knight Online emulator, server files, source code, db, Knight Lobby - Knight Lobby



Monster Movement Speed NEEDED: A Critical Parameter from the Perspective of Knight Online Private Server Development

In Knight Online private servers (pserver), one of the parameters that significantly affects performance and gameplay experience is monster movement speed. This value directly influences players' level-up times, raid strategies, and the overall game balance. In this article, we will discuss why monster movement speed is important, how it can be adjusted, and how Knight Online developers should approach this topic.

What Is Monster Movement Speed?

In Knight Online, each mob (monster) has a specific movement speed. This speed affects how monsters dodge or approach during combat with characters. Fighting against fast-moving monsters is more difficult because they constantly change positions, reducing the hit chance of certain skills. Conversely, fighting slower monsters is generally easier.

Why Is Monster Movement Speed Important?

In private servers (pserver), game balance is of great importance. If monster speeds are too high, player leveling time increases, groups may break apart, and the gaming experience deteriorates. On the other hand, if monsters become too easy to defeat, the sense of challenge disappears and player motivation decreases.

Where Can Monster Speed Be Adjusted in Knight Online Emulator Settings?

In Knight Online private server files, there are files that define monster behaviors. Some of these are mob.bin, npc.bin, and database (db) files. Movement speed is usually defined through these files. Especially in server side modifications, these speeds can be adjusted at the code level.

How Can I Adjust Monster Movement Speed?

Knight Online developers (devs) typically adjust monster speeds by modifying the emulator source code. Care must be taken during this process, as incorrect adjustments may lead to unexpected behaviors on the server. Some developers manage these settings via config files.

Knight Online Bots and Monster Movement Speed

Developers of Knight Online bots (such as KoBot, iKO, tKO) must also consider monster movement speed. If bots fail to react correctly against fast-moving monsters, their success rate drops. Therefore, bot developers often test bots against monsters with different speeds on test servers.

Monster Movement Speed and PvP Interaction

In PvP servers, monster speed gains strategic importance during raids and group battles. Especially in scenarios like Karus versus El Morad wars, developing strategies against monsters requires knowledge of speed. Thus, developers must optimize both PvE and PvP experiences.

Conclusion

During the Knight Online private server development process, paying attention to small but critical details such as monster movement speed directly impacts user satisfaction. Server operators and developers should carefully adjust this parameter to ensure that new players enjoy leveling up while providing experienced players with an entertaining game environment.

Sources

Knight Online emulator, server files, source code, db, Knight Lobby - Knight Lobby
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt