Newbie Spellweaver
- Joined
- Sep 27, 2021
- Messages
- 23
- Reaction score
- 4
Hello Tantra Lover
I wonder if it is possible to create a Tantra Server from scratch using NodeJS language.
I want to develop it using NodeJS with MySQL as database backend.
It will be opensource so anyone can enjoy it.
If anyone here can provide me with a complete tantra source code, I would be appreciate it. Thanks
Hi Lunatic. Thank You for the link
I will start from this.
I wish I could have the source for more recent zoneserver, at least Kathana 4
for now I will start from whatever I have.
is this compatible with the maxi client v2.8.0.8 ?
I learn that every zone need npcgener.txt
Do you (or anyone) know where to get npcgener.txt for every zone for this version ?
Hi Lunatic. Thank You for the link
I will start from this.
I wish I could have the source for more recent zoneserver, at least Kathana 4
for now I will start from whatever I have.
is this compatible with the maxi client v2.8.0.8 ?
I learn that every zone need npcgener.txt
Do you (or anyone) know where to get npcgener.txt for every zone for this version ?
Hi Lunatic. Thank You for the link
I will start from this.
I wish I could have the source for more recent zoneserver, at least Kathana 4
for now I will start from whatever I have.
is this compatible with the maxi client v2.8.0.8 ?
I learn that every zone need npcgener.txt
Do you (or anyone) know where to get npcgener.txt for every zone for this version ?
Finally its alive !!, even though all monster still dumb
Hello All
I am notice some server disables dropping items and rupee, is there any reason why they do that ?
can you share the struct of NotifyUpdateUIMsg ?
/// SCP_RESP_UPDATE_UI : 0xB500
S_SCP_RESP_UPDATE_UI : STRUCT( /// 172 bytes
[SHORT, 'snX'], // 현재 x 좌표
[SHORT, 'snZ'], // 현재 y 좌표
[CHAR, 'byteSpeed1'],
[BYTE, 'byLevel'], // 현 Level
[BYTE, 'byCaste'], // Caste 계급
[BYTE, 'byRangePlus'], // 원거리 공격 사거리 증가 수치, 보통은 0, 사거리 증가 스킬이 걸렸을 경우에는 0 초과 <===
[BYTE, 'UNKNOWN_1'],
[CHAR, 'byteSpeed2'],
[BYTE, 'UNKNOWN_2'],
//[BYTE, 'bySaveTPCost'], // TP cost 절약 수치 <===
[BYTE, 'byClass1'], // 전직 단계
[BYTE, 'byClass2'], // 세부 직업
[BYTE, 'byDummy1'], //
//[BYTE, 'byDummy2'], //
[CHAR, 'byteAS1'],
[CHAR, 'byteSpeed3'],
//int iMoveSpeed ; // 현 MoveSpeed
//int iAttackSpeed ; // 현 일반 무기 기반 공격 속도, skill에는 적용이 안된다. <===
[SHORT, 'snAttackSpeedCorrect'], // 무기 기반 속도 증가 수치( 이 수치만큼을 더 빠르게) <===
[SHORT, 'snCastSpeedCorrect'], // 무기 기반이 아닌 skill 속도 증가 수치 <===
[SHORT, 'snDDup'], // DD type skill의 공격력 up을 표기한다. <===
[SHORT, 'snKarma'], //<===
[INT, 'iBramanPoint'], // 현 Braman point
[INT, 'iPietyPoint'], // 현 신앙심 point <===
[INT, 'iTitle'], // Title
/**
[INT, 'iMaxPrana'], // 최대 Prana
[DWORD, 'UNKNOWN_3'],
[INT, 'iPrana'], // 현 Prana
[DWORD, 'UNKNOWN_4'],
**/
[INT64, 'iMaxPrana'], // 최대 Prana
[INT64, 'iPrana'], // 현 Prana
[S_CHAKRA, 'krgChakra', 2], // 0:base chakra, 1:changed chakra
[SHORT, 'snCPRemaining'],// 남은 Chakra Point
[SHORT, 'snSPRemaining'],// 남은 Skill Point
[INT, 'iHP'], // 현 HP
[INT, 'iMaxHP'], // 최대 HP
[INT, 'iHPRecovery'], // HP회복량/초
[INT, 'iTP'], // 현 TP
[INT, 'iMaxTP'], // 최대 TP
[INT, 'iTPRecovery'], // TP회복량/초
[SHORT, 'snAC'], // AC
[SHORT, 'snAttackRate'], // Attack Rate
[SHORT, 'snDodgeRate'], // Dodge Rate
[SHORT, 'snCasteSPRemaining'], // <===
[CHAR, 'byteSpeedCorrection'],
[CHAR, 'byteAS2'],
[CHAR, 'byteSpeedParity'],
[CHAR, 'byteAS3'],
[S_RESIST, 'kResist'], // 저항
[S_DAMAGE, 'kDamage'], // damage
[INT, 'iGold'], // 돈
[INT, 'iSkillIcon'], // bit vector, 관련된 스킬 ICON <===
[INT64, 'iAffections'],
//[DWORD, 'iAffections', 2], //__int64 <===
[CHAR, 'byteAS4'],
[CHAR, 'byteParity'],
[SHORT, 'snDummy'],
[DWORD, 'UNKNOWN_5', 3]
)
This is my best guest after inspecting the packets from katahana III server, comparing to original source. This is in javascript code but should understand.
Code:/// SCP_RESP_UPDATE_UI : 0xB500 S_SCP_RESP_UPDATE_UI : STRUCT( /// 172 bytes [SHORT, 'snX'], // 현재 x 좌표 [SHORT, 'snZ'], // 현재 y 좌표 [CHAR, 'byteSpeed1'], [BYTE, 'byLevel'], // 현 Level [BYTE, 'byCaste'], // Caste 계급 [BYTE, 'byRangePlus'], // 원거리 공격 사거리 증가 수치, 보통은 0, 사거리 증가 스킬이 걸렸을 경우에는 0 초과 <=== [BYTE, 'UNKNOWN_1'], [CHAR, 'byteSpeed2'], [BYTE, 'UNKNOWN_2'], //[BYTE, 'bySaveTPCost'], // TP cost 절약 수치 <=== [BYTE, 'byClass1'], // 전직 단계 [BYTE, 'byClass2'], // 세부 직업 [BYTE, 'byDummy1'], // //[BYTE, 'byDummy2'], // [CHAR, 'byteAS1'], [CHAR, 'byteSpeed3'], //int iMoveSpeed ; // 현 MoveSpeed //int iAttackSpeed ; // 현 일반 무기 기반 공격 속도, skill에는 적용이 안된다. <=== [SHORT, 'snAttackSpeedCorrect'], // 무기 기반 속도 증가 수치( 이 수치만큼을 더 빠르게) <=== [SHORT, 'snCastSpeedCorrect'], // 무기 기반이 아닌 skill 속도 증가 수치 <=== [SHORT, 'snDDup'], // DD type skill의 공격력 up을 표기한다. <=== [SHORT, 'snKarma'], //<=== [INT, 'iBramanPoint'], // 현 Braman point [INT, 'iPietyPoint'], // 현 신앙심 point <=== [INT, 'iTitle'], // Title /** [INT, 'iMaxPrana'], // 최대 Prana [DWORD, 'UNKNOWN_3'], [INT, 'iPrana'], // 현 Prana [DWORD, 'UNKNOWN_4'], **/ [INT64, 'iMaxPrana'], // 최대 Prana [INT64, 'iPrana'], // 현 Prana [S_CHAKRA, 'krgChakra', 2], // 0:base chakra, 1:changed chakra [SHORT, 'snCPRemaining'],// 남은 Chakra Point [SHORT, 'snSPRemaining'],// 남은 Skill Point [INT, 'iHP'], // 현 HP [INT, 'iMaxHP'], // 최대 HP [INT, 'iHPRecovery'], // HP회복량/초 [INT, 'iTP'], // 현 TP [INT, 'iMaxTP'], // 최대 TP [INT, 'iTPRecovery'], // TP회복량/초 [SHORT, 'snAC'], // AC [SHORT, 'snAttackRate'], // Attack Rate [SHORT, 'snDodgeRate'], // Dodge Rate [SHORT, 'snCasteSPRemaining'], // <=== [CHAR, 'byteSpeedCorrection'], [CHAR, 'byteAS2'], [CHAR, 'byteSpeedParity'], [CHAR, 'byteAS3'], [S_RESIST, 'kResist'], // 저항 [S_DAMAGE, 'kDamage'], // damage [INT, 'iGold'], // 돈 [INT, 'iSkillIcon'], // bit vector, 관련된 스킬 ICON <=== [INT64, 'iAffections'], //[DWORD, 'iAffections', 2], //__int64 <=== [CHAR, 'byteAS4'], [CHAR, 'byteParity'], [SHORT, 'snDummy'], [DWORD, 'UNKNOWN_5', 3] )