Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Tantra Server NODE.JS

Initiate Mage
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
 
Elite Diviner
Joined
Jan 17, 2014
Messages
401
Reaction score
39
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


this ;

OLD Source Code k3 version .| (c) to someone
 
Initiate Mage
Joined
Sep 25, 2020
Messages
99
Reaction score
3
Thank you very much Lunatic still actively reaching us and assisting. Thank you.
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
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 ?
 
Elite Diviner
Joined
Jan 17, 2014
Messages
401
Reaction score
39
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 ?

i don't know if that version was compatible with 2.8.0.8 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 ?

For NPCGener you can check this one https://forum.ragezone.com/f786/free-k6-version-6-9-a-940565/
 
Joined
Oct 16, 2004
Messages
896
Reaction score
94
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 ?

Since you are writing the server fresh, use a database to hold the information of all npcgener.txt in all zones.
And once you have the base structure of your server, at this point its almost the same as emulating it, you upgrade your code to support higher client versions.
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
Hi, master_unknown. Thanks for the advice. I will keep that in my mind.
I am still figuring out the Logic behind npcgener.
I am still searching source code for version kathana4
I assuming that npcgener.txt will be the same for every kathana version, except for Mandara/New Mandara.



 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
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 ?
 
Elite Diviner
Joined
Jan 17, 2014
Messages
401
Reaction score
39
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 ?


To avoid some dupe and other exploits
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
Ooh, ok .. its make sense, although its little annoying. is it working ?
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
Hey Guys. Happy new year!

I want to test my server for production. Any one know where to host a NodeJS server for free ?



Hey Guys. Happy new year!

I want to test my server for production. Any one know where to host a NodeJS server for free ?



Hey Guys. Happy new year!<br><br>I want to test my server for production. Any one know where to host a NodeJS server for free ?  



Hey Guys. Happy new year!<br><br>I want to test my server for production. Any one know where to host a NodeJS server for free ?  
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
Hey Guys. Happy new year!I want to test my server for production. Any one know where to host a NodeJS server for free ?
 
Initiate Mage
Joined
Sep 27, 2021
Messages
23
Reaction score
4
can you share the struct of NotifyUpdateUIMsg ?

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]
    )
 
Joined
Oct 23, 2012
Messages
39
Reaction score
1
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]
    )

thanks but that doesn't help, that was the k3 but never mind i get my own with some sniffer

some image for proof my words, still need work but goes well
Jupri - Tantra Server NODE.JS - RaGEZONE Forums

Jupri - Tantra Server NODE.JS - RaGEZONE Forums

Jupri - Tantra Server NODE.JS - RaGEZONE Forums
 
Initiate Mage
Joined
Jun 10, 2022
Messages
12
Reaction score
1
hi you have source code for tantra 6.9.0.6 version ?
 
Back
Top