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!

Source Codes

Legendary Battlemage
Loyal Member
Joined
Nov 3, 2006
Messages
648
Reaction score
2
/post source code by consept

Code:
void DataSendAll(unsigned char* Packet, int Length)
{
    for (int i=6400; i<7400; i++)
        if(gObjIsConnected(i))
            DataSend(i, Packet, Length);
}

void SendPost(int wId, LPCSTR Command, LPCSTR Text)
{
    if (!IsPost) return;
    if (!gObjIsConnected(wId)) return;
    if (!strcmpi(Command, "/Post"))
    {
        MessageOutput(wId, "[%s] Useage: /Post <Msg>.", szPrefix);
        MessageOutput(wId, "[%s] Price for post: %d, Minimun Level: %d", szPrefix, PostCost, PostLevel);
        return;
    }
    gObj_SetInfo(wId);
    if (gObj.Level < PostLevel)
    {
        MessageOutput(wId, "[%s] You're level is too low to post!", szPrefix);
        return;
    }
    if (gObj.Money < PostCost) 
    {
        MessageOutput(wId, "[%s] You don't have enough money to post!", szPrefix);
        return;
    }
    BYTE *Packet;
    char Message[100];
    Packet = (BYTE*) malloc(200);
    memset(Packet, 0x00, 200);
    *Packet = 0xC1;
    *(Packet+2) = 0x00;
    memcpy((Packet+3), gObj.Nick, strlen(gObj.Nick));
    sprintf(Message, "@@[Global] %s", Text);
    memcpy((Packet+13), Message, strlen(Message));
    int Len = (strlen(Message) + 0x13);
    *(Packet+1) = Len;
    DataSendAll(Packet, Len);
    int Amount = (gObj.Money - PostCost);
    gObj_Write(wId, gObj_Money, Amount);
    MoneySend(wId, Amount);
    free (Packet);
/add command source code
Credits go consept

Code:
void AddStats(int aIndex)
{
    if (!IsAddCmd) return;
    cObj->Init(aIndex);
    if (!strcmpi(Message, "/add"))
    {
        MessageOutput(aIndex, "Useage: /add <Type> <Amount>");
        MessageOutput(aIndex, "The price for Add is: %d, Maximum stats: %d", AddPrice, AddMax);
        return;
    }
    if (cObj->Money < AddPrice)
    {
        MessageOutput(aIndex, "You are lacking zen! %d", AddPrice - cObj->Money);
        return;
    }
    char Param1[100];
    memset(Param1, 0x00, 100);
    GetParam(1, Message, Param1);
    int AddType = 0;
    if (!strcmpi(Param1, "str")) AddType = 0xB8;
    if (!strcmpi(Param1, "agi")) AddType = 0xBA;
    if (!strcmpi(Param1, "vit")) AddType = 0xBC;
    if (!strcmpi(Param1, "eng")) AddType = 0xBE;
    if (!strcmpi(Param1, "cmd")) AddType = 0xD8;
    if (!AddType)
    {
        MessageOutput(aIndex, "You have selected wrong type! The types are: str, agi, vit, eng, cmd");
        return;
    }
    if (cObj->Class != 4 && AddType == 0xD8)
    {
        MessageOutput(aIndex, "Only Dark Lords can use the add cmd type.");
        return;
    }
    char Param2[100];
    memset(Param2, 0x00, 100);
    GetParam(2, Message, Param2);
    int StatsToAdd = atoi(Param2);
    if (cObj->LvlUpPoints < StatsToAdd)
    {
        MessageOutput(aIndex, "You are lacking level up points! %d", StatsToAdd - cObj->LvlUpPoints);
        return;
    }
    int NowStats = cObj->GetWord(AddType);
    if ((StatsToAdd + NowStats) > AddMax)
    {
        MessageOutput(aIndex, "You are not allowed to add more than %d points!", AddMax);
        return;
    }
    BYTE Packet[5] = {0xC1, 0x05, 0x0F3, 0x06};
    Packet[4] = ((AddType % 16) ^ 8) / 2; // Nice algorithm by coNsept to convert from gObj Offsets to the add types :P
    if (AddType == 0xD8) Packet[4] = 0x04;
    if (StatsToAdd <= 100)
        for (int i=0; i<StatsToAdd; i++)
            CGLevelUpPointAdd(Packet, aIndex);
    else
    {
        int Amount = (cObj->LvlUpPoints - StatsToAdd - 1);
        cObj->SetInt(0xA4, Amount);
        cObj->AddInt(AddType, StatsToAdd - 1);
        CGLevelUpPointAdd(Packet, aIndex);
    }
    cObj->SetInt(0xB4, cObj->Money - AddPrice);
    CGMoneySend(aIndex, cObj->Money - AddPrice);
    cObj->Init(aIndex);
    MessageOutput(aIndex, "You've added %d points. You have now %d points left.", StatsToAdd, cObj->LvlUpPoints);
    if (StatsToAdd > 100)
        MessageOutput(aIndex, "Please relog and your stats will be updated.");
PK Clear Guard source code
Credits to consept
Code:
void PKClearGuard(int aIndex)
{
    if (!PKClear_Active) return;
    if (!gObjIsConnected(aIndex)) return;
    lpObj->Init(aIndex);
    int Price = PKClear_Price * (lpObj->PKLevel - 3);
    if (lpObj->PKLevel < 4)
    {
        Send->PM(aIndex, "[PK Clear] You are already a commoner!");
        return;
    }
    if (lpObj->Money < Price)
    {
        Send->PM(aIndex, "[PK Clear] You don't have enough money! Lacking %d.", Price - lpObj->Money);
        return;
    }
    int Amount = lpObj->Money - Price;
    lpObj->SetInt(0xB4, Amount);
    GCMoneySend(aIndex, Amount);
    lpObj->SetInt(0x101, 3);
    GCPKLevelSend(aIndex, 3);
    Send->PM(aIndex, "[PK Clear] You are a commoner again! %d Zen left.", Amount);
    GCFireWorkSend(aIndex, lpObj->PosX, lpObj->PosY, 1);
Part of Protocol Core hook:

Code:
    switch (mobObj->Class)
    {
        case 249:
            PKClearGuard(aIndex);
            break;

/make command source code
By Cahir
Code:
void UseMakeCommand(DWORD gObjId, char * msg)
{
	if(strlen(msg) < 18)
	{
		return;
	}

	int spaces = 0;
	for(int i=0; i < strlen(msg); i++)
	{
		if(msg[i] == ' ')
			spaces++;
	}
	if(spaces < 7)
		return;

	if(IsObjectGM(gObjId) == false)
	{
		return;
	}

	char * PosA;
	PosA = strchr( msg , ' ' );

	char * PosB;
	PosB = strchr( PosA+1 , ' ' );

	char * PosC;
	PosC = strchr( PosB+1 , ' ' );

	char * PosD;
	PosD = strchr( PosC+1 , ' ' );

	int ItemType, ItemNr, ItemLevel;
	if(*(PosA+2) != ' ')
	{
		ItemType = (int)(*(PosA+1) - 48) * 10 + (int)(*(PosA+2) - 48);
	}
	else
	{
		ItemType = (*(PosA+1)) - 48;
	}

	if(*(PosB+2) != ' ')
	{
		ItemNr = (int)(*(PosB+1) - 48) * 10 + (int)(*(PosB+2) - 48);
	}
	else
	{
		ItemNr = (*(PosB+1)) - 48;
	}

	if(*(PosC+2) != ' ')
	{
		ItemLevel = (int)(*(PosC+1) - 48) * 10 + (int)(*(PosC+2) - 48);
	}
	else
	{
		ItemLevel = (*(PosC+1)) - 48;
	}

	int ItemSkill = (*(PosD+1)) - 48;
	int ItemLuck = (*(PosD+3)) - 48;
	int ItemOpt = (*(PosD+5)) - 48;
	int ItemExc = (*(PosD+7)) - 48;


	DWORD Item = ItemType * 512 + ItemNr;

	InvItemCreate ( gObjId , GetObjectMap(gObjId) , GetObjectPosX(gObjId) , GetObjectPosY(gObjId) , Item , ItemLevel , 0 ,ItemSkill , ItemLuck, ItemOpt , -1 , ItemExc , 0 );
	GCServerMsgStringSend("[Make]: You have made an item.", gObjId, 1);

Sky Event Source code by Holy
Code:
.386
.Model flat, StdCall
Option CaseMap:none
Include    \masm32\include\windows.inc
Include    \masm32\include\user32.inc
Include    \masm32\include\kernel32.inc
Include    \masm32\include\masm32.inc
IncludeLib    \masm32\lib\user32.lib
IncludeLib    \masm32\lib\kernel32.lib
IncludeLib    \masm32\lib\masm32.lib

TimePassed Proto :DWord, :DWord, :DWord, :DWord
StartEvent Proto :DWord, :DWord, :DWord, :DWord
Monster Proto :DWord, :DWord, :DWord, :DWord
Monster2 Proto :DWord, :DWord, :DWord, :DWord
Monster3 Proto :DWord, :DWord, :DWord, :DWord
EventOff Proto :DWord, :DWord, :DWord, :DWord
MensajeEvento Proto :DWord, :DWord, :DWord, :DWord

.Const
gObj Equ 658ACA8H
IDC_TIMER Equ 3
IDC_TIMER2 Equ 4
IDC_TIMER3 Equ 5
IDC_TIMER4 Equ 6
IDC_TIMER5 Equ 7
IDC_TIMER6 Equ 8
IDC_TIMER7 Equ 9
AllocSpace Equ 65000H
Buffer Equ 65000H
Buffer2 Equ 65000H
.Data
hMemory HANDLE ?
pMemory DWord ?
DataSend DD 0047DD20H
gObjTeleport DD 004E5E90H
GCServerCMD DD 00448F00H
MessageOutPut DD 004F0A80H
AllUserMsgS DD 00497C70H
MoneySend DD 0042F710H
gObjUserDie DD 004CA64BH
gObjAddMonster DD 004C4850H
gObjSetPosMonster DD 004C2E90H
gObjSetMonster DD 004C32E0H
ItemSerialCreate DD 004245A0H
PlayerIDBuf DB Buffer Dup(0)
PlayerDWSM DB Buffer2 Dup(0)
MensajeBievenida DB "Welcome to Sky Event", 0
TodaviaNoHora DB "Come back at 17:00 for enter Sky Event", 0
MensajeEventito DB "Sky Event has been Opened, you have 10 minutes for enter", 0
LimitePlayers DB "You can
 
Experienced Elementalist
Joined
Dec 28, 2007
Messages
288
Reaction score
2
Re: [Release]Source Codes

Nice :) 10x
 
Newbie Spellweaver
Joined
Dec 30, 2007
Messages
47
Reaction score
0
Re: [Release]Source Codes

thanks...i don't know but i will ask here...do you know the source code to set up max online players on 1.00.16 ?
 
Junior Spellweaver
Joined
Oct 17, 2007
Messages
140
Reaction score
9
Re: [Release]Source Codes

lol we have that
 
Junior Spellweaver
Joined
Sep 29, 2007
Messages
117
Reaction score
0
Re: [Release]Source Codes

thanks
10/10!
 
Banned
Banned
Joined
Feb 21, 2007
Messages
360
Reaction score
28
Re: [Release]Source Codes

nothing new... this sources are already released...
 
Last edited:
Legendary Battlemage
Loyal Member
Joined
Nov 3, 2006
Messages
648
Reaction score
2
Re: [Release]Source Codes

oh.. read the thread man .. i mentioned that they were released .. i just put them in one thread
 
Newbie Spellweaver
Joined
Apr 29, 2007
Messages
43
Reaction score
1
Re: [Release]Source Codes

These sources (except HolY's) are completely useless for 95% of RZ users, cause don't have .h files!

C0ders, please, release sources with .h files or release nothing! Partial sources are REALLY annoing. It's like saying to others: "Look, i have in my MU server this, this and this! Nice? Yes! Try to code it yourself. Here is some clue. Oh, you can't compile? Are you stupid? Yes, you are..."

Sorces without .h files must be in new sub forum. "Mu Online Clues for stupid noobs from COoL C0DeRz" :SniperHea
 
Last edited:
Newbie Spellweaver
Joined
Oct 2, 2005
Messages
58
Reaction score
0
Re: [Release]Source Codes

These sources (except HolY's) are completely useless for 95% of RZ users, cause don't have .h files!

C0ders, please, release sources with .h files or release nothing! Partial sources are REALLY annoing. It's like saying to thers: "Look, i have in my MU server this, this and this! Nice? Yes! Try to code it yourself. Here is some clue. Oh, you can't compile? Are you stupid? Yes, you are..."

Sorces without .h files must be in new sub forum. "Mu Online Clues for stupid noobs from COoL C0DeRz" :SniperHea


AGREED!
 
Experienced Elementalist
Joined
Aug 21, 2006
Messages
213
Reaction score
1
Re: [Release]Source Codes

again, notice the creators of the posts, mainly cough cough from one team who says they share but really doesn't do anything but piss people off with lame junk and useless crap.
 
Divine Celestial
Loyal Member
Joined
Aug 24, 2007
Messages
890
Reaction score
5
Re: [Release]Source Codes

yes what is code on 1.00.16 for max players and the pvp servers you know xD
 
Experienced Elementalist
Joined
Aug 21, 2006
Messages
213
Reaction score
1
Re: [Release]Source Codes

You mean the offsets for max players? It's pretty easy to find. I'd say then only useful things released on RZ have to be ASM sources, those are atleast 95% complete to 100% complete, easy to edit, easy to understand, Hell you can go back to FeN$X Crywolf Event for 1.02k and its still better than Conscept's sources, atleast you got all the deffinitions in that event, tho it may not be complete, you can atleast finish it, unlike these things. I'm not much for C++ coding, I tend to stay away from it as much as possible and tend to lean more on ASM coding, its way more efficient for me, especially for events, new quests, and also the new items.

Sorry if you think it's spam, its not, I'm just adding on to what I said earlier, these codes within here, except HolY's are completely useless to the rest of us.
 
IGCN Co-Founder
Joined
Jun 26, 2006
Messages
303
Reaction score
487
Re: [Release]Source Codes

lol, do u think that they release the source code for u to compile? They release only to make u understand how did they did that!
 
Custom Title Activated
Loyal Member
Joined
Apr 11, 2005
Messages
1,048
Reaction score
9
Re: [Release]Source Codes

English corrections:

Code:
        MessageOutput(wId, "[%s] Us[B]a[/B]ge: /Post <Msg>.", szPrefix);
        MessageOutput(wId, "[%s] Price for post: %d, Minimu[B]m[/B] Level: %d", szPrefix, PostCost, PostLevel);
        return;
    }
    gObj_SetInfo(wId);
    if (gObj.Level < PostLevel)
    {
        MessageOutput(wId, "[%s] You[B]r[/B] level is too low to post!", szPrefix);

Code:
TodaviaNoHora DB "Come back at 17:00 for entry to the Sky Event", 0
MensajeEventito DB "Sky Event has been Opened, you have 10 minutes to enter", 0
LimitePlayers DB "You can
 
Newbie Spellweaver
Joined
Apr 29, 2007
Messages
43
Reaction score
1
Re: [Release]Source Codes

lol, do u think that they release the source code for u to compile? They release only to make u understand how did they did that!

That's why i told that it's not release ;) it is "Mu Online Clues for stupid noobs from COoL C0DeRz" useless clues for 95% of RZ MU Online community.

But this is not AccDenied's fault. Thanks to him for joining all these "sources from real c0DerZ" at one butt ^^
 
Newbie Spellweaver
Joined
Oct 1, 2006
Messages
28
Reaction score
0
Re: [Release]Source Codes

yo!!
do u knw if the SkyEvent works for 1.0N???

and can anyone tell me where do i have to do the hook up the /post source to the gameserver..??!?!
Thx..
 
Legendary Battlemage
Loyal Member
Joined
Nov 3, 2006
Messages
648
Reaction score
2
Re: [Release]Source Codes

I haven't mentioned anything about real coders ^^
 
Back
Top