-
[Release] Mu Online Sources
Command /post source code
PHP 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);
Adding new options to gameserver
PHP Code:
/* AddMU.cpp
made by: drakelv
Updates by: DMCahir
*/
#include "AddMU.h"
//////////////////////////////////////////////////////////////////////
// Source Start
//////////////////////////////////////////////////////////////////////
#include <string.h>
#include <windows.h>
extern "C" __declspec(dllexport) void OptionAndBugFix();
// Fixing Potion Bug in GS
bool PotBugFix( char * inipath )
{
if (GetPrivateProfileInt("GameServerNormal" , "PotionBugFix" , 1 , "./Addicted.ini")){
memset((PBYTE) FixPotionBug1 ,0x90,8 ) ; //warehouse
memset((PBYTE) FixPotionBug2 ,0x90,8 ) ; //inventory
memset((PBYTE) FixPotionBug3 ,0x90,8 ) ;
return 1;
}
return 0;
}
// Fixing ID Code in GS for characters
bool NoIDChar( char * inipath)
{
if (GetPrivateProfileInt("GameServerNormal" , "DeleteCharWithoutID" , 1 , "./Addicted.ini")){
memset((PBYTE) FixDeleteChar, 0xEB , 1 ); //Dzēst čaru bez ID.
return 1;
}
return 0;
}
// Fixing ID Code in GS for Guilds
bool NoIDGuild( char * inipath )
{
if (GetPrivateProfileInt("GameServerNormal", "DeleteGuildWithoutID", 1, "./Addicted.ini")){
memset((PBYTE) FixDeleteGuild ,0x90 , 6 ); //Dzēst ģildi bez ID
memset((PBYTE) FixLeaveGuild ,0x90 , 2 ); //Pames ģildi bez ID
return 1;
}
return 0;
}
// Party Zen Bug Fix
// transformation ring change
bool TransRing( char * inipath ){
int TransformationRing = GetPrivateProfileInt("GameServerNormal", "TransformationRingInit", 0, "Addicted.ini");
DWORD dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing1",2, "Addicted.ini") ;
*(unsigned int *) TransformationRing1 = dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing2",7, "Addicted.ini") ;
*(unsigned int *) TransformationRing2 = dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing3",14, "Addicted.ini") ;
*(unsigned int *) TransformationRing3 = dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing4",8, "Addicted.ini") ;
*(unsigned int *) TransformationRing4 = dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing5",9, "Addicted.ini") ;
*(unsigned int *) TransformationRing5 = dwTmp ;
dwTmp=GetPrivateProfileInt("GameServerNormal", "TransformationRing6",41, "Addicted.ini") ;
*(unsigned int *) TransformationRing6 = dwTmp ;
return 1 ;
}
bool NotifyIfDllLoaded( char * inipath ){
if (GetPrivateProfileInt("GameServerNormal", "NotifyIfDllLoaded", 1, "./Addicted.ini") )
{
MessageBox ( 0 , "Addicted.Dll by drakelv has been successfully loaded. Enjoy the Game!" , "DLL Loaded!" , MB_OK );
return 1;
}
else return 0;
}
void ChaosBoxRate()
{
DWORD dwTemp ;
BYTE cTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "ChaosMix10",50, "./DMT.ini") ;
*(unsigned int *) ChaosMix10 = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "ChaosMix11",45, "./DMT.ini") ;
*(unsigned int *) ChaosMix11 = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "ChaosMix12",45, "./DMT.ini") ;
*(unsigned int *) ChaosMix12 = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "ChaosMix13",45, "./DMT.ini") ;
*(unsigned int *) ChaosMix13 = dwTemp ;
}
void JewelSuccesRate()
{
BYTE cTemp ;
cTemp = GetPrivateProfileIntA("GameServerNormal", "SoulWithLuckSuccessRate",70, "./DMT.ini") ;
*(unsigned char *) SoulLuckRate = cTemp ;
cTemp = GetPrivateProfileIntA("GameServerNormal", "SoulNoLuckSuccessRate", 55, "./DMT.ini") ;
*(unsigned char *) SoulRate = cTemp ;
cTemp = GetPrivateProfileIntA("GameServerNormal", "LifeSuccessRate", 50, "./DMT.ini") ;
*(unsigned char *) LifeRate = 100 - cTemp ;
}
void JewelPrices()
{
DWORD dwTemp;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "BlessiPrice", 9000000, "./DMT.ini") ;
*(unsigned int *) BlessPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "SoulPrice", 6000000, "./DMT.ini") ;
*(unsigned int *) SoulPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "ChaosPrice", 810000, "./DMT.ini") ;
*(unsigned int *) ChaosPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "LifePrice", 45000000, "./DMT.ini") ;
*(unsigned int *) LifePrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "CreationPrice", 36000000, "./DMT.ini") ;
*(unsigned int *) CreationPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "GuardianPrice", 60000000, "./DMT.ini") ;
*(unsigned int *) GuardianPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "PotionOfBlessPrice", 900000, "./DMT.ini") ;
*(unsigned int *) BlessPotionPrice = dwTemp ;
dwTemp = GetPrivateProfileIntA("GameServerNormal", "PotionOfSoulPrice", 450000, "./DMT.ini") ;
*(unsigned int *) SoulPotionPrice = dwTemp ;
}
void OptionAndBugFix()
{
char inipath[] = "./Addicted.ini";
bool bResult ;
DWORD dwOld1,dwOld2;
LPVOID lpAddress1,lpAddress2 ;
lpAddress1 = (LPVOID) 0x00401000 ; //fix96
lpAddress2 = (LPVOID) 0x0C296000 ; //fix96
if ( VirtualProtect (lpAddress1,0x246000+0x1D000,PAGE_EXECUTE_READWRITE,&dwOld1 ) ) //fix96
{
if (VirtualProtect(lpAddress2,0x4000,PAGE_EXECUTE_READWRITE, &dwOld2) ) //fix96
{
bResult =FixPotionNumber( inipath );
bResult =NoIDChar( inipath );
bResult =NoIDGuild( inipath );
bResult =TransRing( inipath );
bResult =NotifyIfDllLoaded( inipath );
bResult =PartyZenFix( inipath );
}
// Gs is VirtualProtected so we need to use Vprotect function.
VirtualProtect (lpAddress1,0x246000+0x1D000,PAGE_EXECUTE_READ,&dwOld1 );
VirtualProtect (lpAddress2,0x4000 ,PAGE_EXECUTE_READ,&dwOld2 );
}
}
The .H file
[php]
#define FixDeleteGuild 0x004431CA
#define FixLeaveGuild 0x00443320
#define FixDeleteChar 0x004328E4
#define FixPotionBug1 0x00427A71
#define FixPotionBug3 0x004CD0FF
#define FixPotionBug2 0x004CD0AE
#define FixZenParty 0x004DD318
#define TransformationRing1 0x004B472E
#define TransformationRing2 0x004B4737
#define TransformationRing3 0x004B4740
#define TransformationRing4 0x004B4749
#define TransformationRing5 0x004B4752
#define TransformationRing6 0x004B475B
//Ceny Jeweli
#define ChaosPrice 0x00508489
#define SoulPrice 0x00508446
#define BlessPrice 0x00508467
#define CreationPrice 0x005084CC
#define GuardianPrice 0x005085AA
#define LifePrice 0x005084AB
//Ceny potion
-
Re: [Release]Mu Online Sources
Season 3 wings mix code
go coderzfactory home page and type @ web browser showthread.php?t=3110
-
Re: [Release]Mu Online Sources
Season3 quest source code work?
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
This all are collected but good job.
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
razorrrr
where i put codes?
rofl, u first compile them into a dll, then you attach the dll to the gameserver
-
Re: [Release]Mu Online Sources
your post code y add points plz correct this source
Thanks
-
Re: [Release]Mu Online Sources
might help to add the credits for each of these before you get flamed/spammed for not
-
Re: [Release]Mu Online Sources
Read.. they all have credits!
-
Re: [Release]Mu Online Sources
hmm, comiling some DLLib errors :|
-
Re: [Release]Mu Online Sources
Good job!
The Command /POST, works in any version, 97d for example?
----
edit
----
The code on the topic, to /post, is the same as /add.
Sry my bad eng.
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
how i atteched the DLL to the GS? and what name giving thame
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
ivan junior
Good job!
The Command /POST, works in any version, 97d for example?
----
edit
----
The code on the topic, to /post, is the same as /add.
Sry my bad eng.
It does. Im living proof of it
-
Re: [Release]Mu Online Sources
What programm i need to create dll.
and how hook dll in gs? :)
-
Re: [Release]Mu Online Sources
Any C++ builder. Hook with debugger, change GS code to load DLL
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
when attaching my DLL i have error in OllyDBG at the Assembly PERFIX CS:
anyone ?
-
Re: [Release]Mu Online Sources
you post two add commands
and you say one of this is post LOL
-
Re: [Release]Mu Online Sources
nice but how is a good coder can create dll and att at gs
-
Re: [Release]Mu Online Sources
Where I can download C++ Builder?
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
SkyLinE27
Where I can download C++ Builder?
search here Visual C++ Developer Center
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
-Rob3r-
What version i need download?
-
Re: [Release]Mu Online Sources
the best compiler in this case is VC++ 6.0 not 2005. VC++ 6.0 is much easierr and u have to know how to compile in VC++ 2005
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
where should i put these codes and how to put them? anyone can make just a f tut?
-
Re: [Release]Mu Online Sources
I build dll in Visual C++ 2008.
How i can hook it?
-
Re: [Release]Mu Online Sources
Nice release man!
p.s I am noob in C++ so when I try to build it, it says that some statements are missing/invalid. What should I do?!
-
Re: [Release]Mu Online Sources
you won't be able to compile dll without headers (*.h files),
so can compile only "adding new options"
/post and /add command also require additional hooking of the Chat Receive function, in GS i think it's called GCChatRecv, i haven't tested this thing yet
and you can hook your dll by coding it in gs, or by rebuilding the IAT table and adding it there
[Guide] Hooking DLL on GameServer.
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
razorrrr
how i atteched the DLL to the GS? and what name giving thame
someone?
plizz:flag_schw
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
razorrrr
someone?
plizz:flag_schw
frist of all
you need find offsets.
-
Re: [Release]Mu Online Sources
leo if you can help me on the icq i will be happy
dont worry i speak hebrew language also..
tallk wite me here 441352198
only if you can..
bye bye leo :)
hope you will tallk wite me..
-
Re: [Release]Mu Online Sources
someone can give compiled Dll's ?
-
Re: [Release]Mu Online Sources
yes..
need too
only gives dll complite of lociuno filles
-
Re: [Release]Mu Online Sources
Can Some one hook dll in lucianos gs?
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
Sm4rTy
we need .h files :(
Here is .h code
PHP Code:
/*
* user.h
* Made by Deathway
* Team : None / Alone
* 2007 / 05 / 15
* Contains Definitions of main prperties of Character
*/
#define OBJMAX 7400
#define OBJMAXUSER 1000
#define OBJ_STARTUSERINDEX (OBJMAX - OBJMAXUSER)
#define OBJ_MAXMONSTER 5800
#define OBJ_CALLMONCOUNT (OBJ_STARTUSERINDEX - OBJ_MAXMONSTER)
#define MAX_MONSTER_SEND_MSG 10
#define MAX_MONSTER_SEND_ATTACK_MSG 50
#define MAX_MONSTER_TYPE 512
#define MAX_GUILD_LEN 8
#define MAX_ACCOUNT_LEN 10
#define INVENTORY_SIZE 108
#define WAREHOUSE_SIZE 120
#define MAGIC_SIZE 60
#define INVENTORY_BAG_START 12
#define MAIN_INVENTORY_SIZE 76 // Not included PersonalSh
#define INVENTORY_MAP_SIZE 96 // Not included wared iems
#define TRADE_BOX_SIZE 32
#define TRADE_BOX_MAP_SIZE 32
#define PSHOP_MAP_SIZE 32
#define MAX_CHAR_LEVEL 400
#define MAX_SELF_DEFENSE 5
#define MAX_ST_HIT_DAMAGE 40
#define MAX_ZEN 2000000000
#define ACTIVE_ITEM_SEARCH 0
#define LORENCIA 0
#define DUNGEON 1
#define DEVIAS 2
#define NORIA 3
#define LOSTTOWER 4
#define STADIUM 5
#define EXILE 6
#define ATLANS 7
#define TARKAN 8
#define DEVILSQUARE_A 9
#define ICARUS 10
#define BLOOD_CASTLE_1 11
#define BLOOD_CASTLE_2 12
#define BLOOD_CASTLE_3 13
#define BLOOD_CASTLE_4 14
#define BLOOD_CASTLE_5 15
#define BLOOD_CASTLE_6 16
#define BLOOD_CASTLE_7 17
#define CHAOS_CASTLE_1 18
#define CHAOS_CASTLE_2 19
#define CHAOS_CASTLE_3 20
#define CHAOS_CASTLE_4 21
#define CHAOS_CASTLE_5 22
#define CHAOS_CASTLE_6 23
#define KALIMA_1 24
#define KALIMA_2 25
#define KALIMA_3 26
#define KALIMA_4 27
#define KALIMA_5 28
#define KALIMA_6 29
#define LOREN_DEEP 30
#define LANDS_OF_TRIALS 31
#define DEVILSQUARE_B 32
#define MAX_RESISTENCE_TYPE 7
#define OBJ_EMPTY -1
#define OBJ_MONSTER 2
#define OBJ_USER 1
#define OBJ_NPC 3
#define MAX_MAGIC 60
#define MAX_VIEWPORT 75
#define MAX_VIEWPORT_MONSTER 20
#define MAX_ROAD_PATH_TABLE 16
#define MAX_ARRAY_FRUSTRUM 4
#define PLAYER_EMPTY 0
#define PLAYER_CONNECTED 1
#define PLAYER_LOGGED 2
#define PLAYER_PLAYING 3
#define MAX_CHECKSUM_KEY 1024
#define FRIEND_SERVER_STATE_LOGIN_FAIL 0
#define FRIEND_SERVER_STATE_OFFLINE 1
#define FRIEND_SERVER_STATE_ONLINE 2
typedef CItem * MAININVENTORY[MAIN_INVENTORY_SIZE];
typedef CItem * FULLINVENTORY[INVENTORY_SIZE];
typedef CItem * WAREHOUSE[WAREHOUSE_SIZE];
typedef CMagicInf * MAGICINVENTORY[MAGIC_SIZE];
typedef union tagPATHTABLE
{
short sPathTable[16];
char cPathTable[32];
} PATHTABLE, * LPPATHTABLE;
typedef union tagMTD
{
char cChar;
short sShort;
int iInt;
} MTD, * LPMTD;
struct ST_USER_IF_STATE
{
DWORD use; // Confirmed
DWORD unk2; // Confirmed
DWORD type ; // Confirmed
};
extern short RoadPathTable[MAX_ROAD_PATH_TABLE];
extern int gServerMaxUser;
extern BOOL g_EnergyCheckOff;
//#include "DSProtocol.h"
struct ST_HIT_DAMAGE
{
short sIndex;
int iHitDamage;
DWORD dwHitTickCount;
};
struct SELFDEFENSE
{
int iIndexEnemy[MAX_SELF_DEFENSE];
DWORD dwTimeSelfDefense[MAX_SELF_DEFENSE];
};
struct VIEWPORTOFMINE
{
char IsUsed; // unk
short sIndex; // unk
BYTE btObjectType; // unk
int iDistance; // unk
};
typedef struct tagSEND_MONSTER_MENSSAGE
{
int iMsgCode; // unk
int iIndex; // unk
DWORD dwDelay; // unk
int iSubCode; // unk
}SEND_MONSTER_MENSSAGE;
typedef struct tagSEND_MONSTER_ATTACK_MENSSAGE
{
int iMsgCode; // unk
int iIndex; // unk
DWORD dwDelay; // unk
int iSubCode; // unk
int iSubCode2; // unk
}SEND_MONSTER_ATTACK_MENSSAGE;
extern SEND_MONSTER_ATTACK_MENSSAGE gSMAttackProcMsg[OBJMAX][MAX_MONSTER_SEND_ATTACK_MSG];
extern SEND_MONSTER_MENSSAGE gSMMsg[OBJMAXUSER][MAX_MONSTER_SEND_MSG];
void gObjSkillUseProcTime500(LPOBJ lpObj);
void MonsterAndMsgProc();
void MoveMonsterProc();
void gObjRefillProcess(int aIndex, LPOBJ lpObj);
void gObjInit();
void gObjEnd();
void gObjViewportOfMine(LPOBJ lpObj);
void gObjClearViewport(LPOBJ lpObj);
void gObjCloseSet(int aIndex, int Flag);
void gObjCharTradeClear(LPOBJ lpObj);
void gObjCharZeroSet(int aIndex);
SOCKET gObjGetSocket(SOCKET socket);
void gObjSetTradeOption( int aIndex, int option);
void gObjSetDuelOption(int aIndex, int option);
bool IsDuelEnabled(int aIndex);
bool gObjIsOnDuel(int aIndex1, int aIndex2 );
int GetMapMoveLevel(LPOBJ lpObj, int mapnumber, int max_over);
//void DbItemSetInByte(LPOBJ lpObj, JG_GET_CHARACTER_INFO * lpMsg, int ItemDbByte, bool * bAllItemExist);
void gObjSetBP(int aIndex);
BOOL gObjSetCharacter(unsigned char * lpdata, int aIndex);
BOOL gObjCanItemTouch(LPOBJ lpObj, int type );
void gObjMagicTextSave(LPOBJ lpObj);
void ItemIsBufExOption(BYTE * buf, CItem * lpItem);
void gObjStatTextSave(LPOBJ lpObj);
void gObjItemTextSave(LPOBJ lpObj);
void gObjWarehouseTextSave(LPOBJ lpObj);
void gObjAuthorityCodeSet(LPOBJ lpObj);
BOOL gObjSetPosMonster(int aIndex, int PosTableNum);
BOOL gObjSetMonster(int aIndex, int MonsterClass);
void gObjDestroy(int client);
short gObjAddSearch(SOCKET aSocket, char* ip);
short gObjAdd(SOCKET aSocket, char* ip, int aIndex);
short gObjMonsterRecall(int iMapNumber);
short gObjAddMonster(int iMapNumber);
short gObjAddCallMon();
void gObjUserKill(int aIndex);
void gObjAllLogOut();
void gObjAllDisconnect();
void gObjTradeSave(LPOBJ lpObj, int index);
void gObjBillRequest(LPOBJ lpObj);
short gObjMemFree(int index);
BOOL gObjGameClose(int aIndex);
short gObjDel(int index);
short gObjSometimeClose(int index);
BOOL gObjIsGamePlaing(LPOBJ lpObj);
BOOL gObjIsConnectedGP(int aIndex);
BOOL gObjIsConnectedGP(int aIndex, char * CharName);
BOOL gObjIsConnected(LPOBJ lpObj);
BOOL gObjIsConnected(int aIndex) ;
BOOL gObjIsConnected(LPOBJ lpObj, int dbnumber);
BOOL gObjIsAccontConnect(int aIndex, char* accountid);
BOOL gObjJoominCheck(int aIndex, char* szInJN);
BOOL gObjTaiwanJoominCheck(int aIndex, char* szInJN);
BOOL gObjCheckXYMapTitle(LPOBJ lpObj);
BOOL gObjSetAccountLogin(int aIndex, char * szId, int aUserNumber, int aDBNumber, char* JoominNumber);
BOOL gObjGetUserNumber(int aIndex);
BOOL gObjGetNumber(int aIndex, int* UN, int* DBN);
char* gObjGetAccountId(int aIndex);
int gObjGetIndex(char* szId);
BOOL gObjUserIdConnectCheck(char* szId,int index);
BYTE GetPathPacketDirPos(int px, int py);
int gObjCalDistance(LPOBJ lpObj1, LPOBJ lpObj2);
BOOL gObjPositionCheck(LPOBJ lpObj);
BOOL gObjCheckTileArea(int aIndex, int x, int y, int dis);
BOOL ExtendCheck(int x, int y, int w, int h);
void gObjSetInventory1Pointer(LPOBJ lpObj);
void gObjSetInventory2Pointer(LPOBJ lpObj);
void gObjAddMsgSend(LPOBJ lpObj, int aMsgCode, int aIndex, int SubCode);
void gObjAddMsgSendDelay(LPOBJ lpObj, int aMsgCode, int aIndex, int delay, int SubCode);
void gObjAddMsgSendDelayInSpecificQPos(LPOBJ lpObj, int aMsgCode, int aIndex, int SubCode, int iQPosition);
void gObjAddAttackProcMsgSendDelay(LPOBJ lpObj, int aMsgCode, int aIndex, int delay, int SubCode, int SubCode2);
void gObjMsgProc(LPOBJ lpObj);
void gObjStateProc(LPOBJ lpObj, int aMsgCode, int aIndex, int SubCode);
void gObjStateAttackProc(LPOBJ lpObj, int aMsgCode, int aIndex, int SubCode, int SubCode2);
BOOL gObjBackSpring(LPOBJ lpObj, LPOBJ lpTargetObj);
BOOL BackSpringCheck(int * x, int * y, int * dir, BYTE map);
BOOL gObjBackSpring2(LPOBJ lpObj, LPOBJ lpTargetObj, int count);
bool gObjLevelUp(LPOBJ lpObj, int addexp);
BOOL gObjLevelUpPointAdd(BYTE type, LPOBJ lpObj);
void gObjMonsterItemLoadScript(LPOBJ lpObj, char* script_file);
void gObjGiveItemSearch(LPOBJ lpObj, int maxlevel);
BYTE gObjWarehouseInsertItem(LPOBJ lpObj, int index, int type, int level, int pos);
void gObjGiveItemWarehouseSearch(LPOBJ lpObj, int maxlevel);
BOOL gObjGuildMasterCapacityTest(LPOBJ lpObj);
void gObjNextExpCal(LPOBJ lpObj);
int retResistance(LPOBJ lpObj, int Resistance_Type);
BOOL retCalcSkillResistance(BOOL isDouble);
BOOL gObjAttackQ(LPOBJ lpObj);
void gObjPlayerKiller(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjUserDie(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjInterfaceTimeCheck(LPOBJ lpObj);
void gObjPkDownTimeCheck(LPOBJ lpObj, int TargetLevel);
BOOL gObjAngelSprite(LPOBJ lpObj);
BOOL gObjSatanSprite(LPOBJ lpObj);
BOOL gObjWingSprite(LPOBJ lpObj);
BOOL gObjUniriaSprite(LPOBJ lpObj);
void gObjSpriteDamage(LPOBJ lpObj, int damage);
void gObjSecondDurDown(LPOBJ lpObj);
void gObjChangeDurProc(LPOBJ lpObj);
void gObjWingDurProc(LPOBJ lpObj) ;
void gObjPenaltyDurDown(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjWeaponDurDown(LPOBJ lpObj, LPOBJ lpTargetObj, int type);
void gObjArmorRandomDurDown(LPOBJ lpObj, LPOBJ lpAttackObj);
bool gObjIsSelfDefense(LPOBJ lpObj, int aTargetIndex);
void gObjCheckSelfDefense(LPOBJ lpObj, int aTargetIndex);
void gObjTimeCheckSelfDefense(LPOBJ lpObj);
BOOL gObjAttack(LPOBJ lpObj, LPOBJ lpTargetObj, CMagicInf * lpMagic, BOOL magicsend, BYTE MSBFlag, int AttackDamage, BOOL bCombo);
void gObjMonsterExpDivision(LPOBJ lpMonObj, LPOBJ lpTargetObj, int AttackDamage, int MSBFlag);
int gObjMonsterExpSingle(LPOBJ lpObj , LPOBJ lpTargetObj, int damage, int tot_damage, BOOL bSendExp);
void gObjExpParty(LPOBJ lpObj , LPOBJ lpTargetObj, int AttackDamage, int MSBFlag );
void gObjMonsterDieLifePlus(LPOBJ lpObj, LPOBJ lpTartObj);
void gObjLifeCheck(LPOBJ lpTargetObj, LPOBJ lpObj, int AttackDamage, int DamageSendType, int MSBFlag, int MSBDamage, BYTE Skill);
BOOL gObjInventoryTrans(int aIndex);
void gObjInventoryCommit(int aIndex);
void gObjInventoryRollback(int aIndex);
void gObjInventoryItemSet(int aIndex, int itempos, BYTE set_byte);
void gObjInventoryItemBoxSet(int aIndex, int itempos, int xl, int yl, BYTE set_byte);
bool gObjFixInventoryPointer(int aIndex);
void gObjInventoryItemSet_PShop(int aIndex, int itempos, BYTE set_byte);
void gObjInventoryItemBoxSet_PShop(int aIndex, int itempos, int xl, int yl, BYTE set_byte);
bool gObjInventoryDeleteItem(int aIndex ,int itempos);
bool gObjWarehouseDeleteItem(int aIndex, int itempos);
bool gObjChaosBoxDeleteItem(int aIndex, int itempos);
BYTE gObjInvetoryInsertItem(int aIndex, int item_num);
int gGetItemNumber();
void gPlusItemNumber();
BYTE gObjInventoryInsertItem(int aIndex, CItem item);
BYTE gObjOnlyInventoryInsertItem(int aIndex, CItem item);
BYTE gObjInventoryInsertItem(int aIndex, CMapItem * item);
BOOL gObjSearchItem(LPOBJ lpObj, int item_type, int add_dur, int nLevel);
BOOL gObjSearchItemMinus(LPOBJ lpObj, int pos, int m_dur);
BYTE gObjShopBuyInventoryItemInsert(int aIndex, CItem item);
BYTE gObjInventoryInsertItemTemp(LPOBJ lpObj, CItemMap * Item);
BYTE gObjInventoryInsertItem(LPOBJ lpObj, int type, int index, int level);
BYTE gObjMonsterInventoryInsertItem(LPOBJ lpObj, int type, int index, int level, int op1, int op2, int op3);
BYTE gObjInventoryRectCheck(int aIndex, int sx, int sy, int width, int height);
BYTE gObjOnlyInventoryRectCheck(int aIndex, int sx, int sy, int width, int height);
BOOL gObjIsItemPut(LPOBJ lpObj, CItem * lpItem, int pos );
BYTE gObjWerehouseRectCheck(int aIndex, int sx, int sy, int width, int height);
BYTE gObjMapRectCheck(BYTE * lpMapBuf, int sx, int sy, int ex, int ey, int width, int height);
void gObjWarehouseItemBoxSet(int aIndex, int itempos, int xl, int yl, BYTE set_byte);
void gObjWarehouseItemSet(int aIndex, int itempos, BYTE set_byte);
void gObjChaosItemBoxSet(int aIndex, int itempos, int xl, int yl, BYTE set_byte);
void gObjChaosItemSet(int aIndex, int itempos, BYTE set_byte);
BYTE gObjChaosBoxInsertItemPos(int aIndex, CItem item, int pos, int source);
BYTE gObjWarehouseInserItemPos(int aIndex, CItem item, int pos, int source);
BYTE gObjInventoryInsertItemPos(int aIndex, CItem item, int pos, BOOL RequestCheck);
BOOL gObjInventorySearchSerialNumber(LPOBJ lpObj, int serial);
BOOL gObjWarehouseSearchSerialNumber(LPOBJ lpObj, int sirial);
BYTE gObjInventoryMoveItem(int aIndex, BYTE source, BYTE target, LPBOOL DurSsend, LPBOOL DurTSend, BYTE sFlag, BYTE tFlag, LPBYTE siteminfo);
BYTE gObjTradeRectCheck(int aIndex, int sx, int sy, int width, int height );
BOOL gObjTradeItemBoxSet(int aIndex, int itempos, int xl, int yl, BYTE set_byte);
BYTE gObjTradeInventoryMove(LPOBJ lpObj, BYTE source, BYTE target);
BYTE gObjInventoryTradeMove(LPOBJ lpObj, BYTE source, BYTE target);
void gObjTradeCancel(int aIndex);
void gObjTempInventoryItemBoxSet(BYTE * TempMap, int itempos, int xl, int yl, BYTE set_byte);
BYTE gObjTempInventoryRectCheck(BYTE * TempMap, int sx, int sy, int width, int height);
BYTE gObjTempInventoryInsertItem(LPOBJ lpObj, CItem item, BYTE * TempMap);
BOOL TradeItemInventoryPutTest(int aIndex);
BOOL TradeitemInventoryPut(int aIndex);
void gObjTradeOkButton(int aIndex);
BYTE LevelSmallConvert(int aIndex, int inventoryindex);
BYTE LevelSmallConvert(int level);
void gObjAttackDamageCalc(int aIndex);
void gObjMakePreviewCharSet(int aIndex);
void gObjViewportPaint(HWND hWnd, short aIndex);
void InitFrustrum();
void CreateFrustrum(int x, int y, int aIndex);
bool TestFrustrum2(int x, int y, int aIndex);
BOOL gObjCheckViewport(int aIndex, int x, int y);
void gObjViewportListCreate(short aIndex);
void gObjViewportClose(LPOBJ lpObj);
int ViewportAdd(int aIndex, int aAddIndex, int aType);
int ViewportAdd2(int aIndex, int aAddIndex, int aType);
void ViewportDel(short aIndex, int aDelIndex);
void gObjViewportAllDel(short aIndex);
void gObjViewportListDestroy(short aIndex);
void PShop_ViewportListRegenarate(short iIndex);
bool PShop_CheckInventoryEmpty(short aIndex);
void gObjStateSetCreate(int aIndex);
void gObjSetState();
void gObjSecondProc();
void gObjManaPotionFill(LPOBJ lpObj);
void gObjRestPotionFill(LPOBJ lpObj);
void gObjUseDrink(LPOBJ lpObj, int level);
int gObjCurMoveMake(BYTE * path, LPOBJ lpObj);
void gObjViewportListProtocolDestroy(LPOBJ lpObj);
void gObjViewportListProtocolCreate(LPOBJ lpObj);
void gObjViewportListProtocol(short aIndex);
void gObjSkillUseProc(LPOBJ lpObj);
void gObkSkillBeAttackProc(LPOBJ lpObj);
void gObjTeleportMagicUse(int aIndex, BYTE x, BYTE y);
BOOL gObjMoveGate(int aIndex, int gt);
void gObjTeleport(int aIndex, int map, BYTE x, BYTE y);
void gObjMoveDataLoadingOK(int aIndex);
CMagicInf * gObjGetMagic(int mIndex, LPOBJ lpObj);
CMagicInf * gObjGetMagicSearch(LPOBJ lpObj, BYTE skillnumber);
int gObjMagicManaUse(LPOBJ lpObj, CMagicInf * lpMagic);
int gObjMagicBPUse(LPOBJ lpObj, CMagicInf * lpMagic);
void gObjPosMagicAttack(LPOBJ lpObj, CMagicInf * lpMagic, int x, int y);
void gObjMagicAddEnergyCheckOnOff(int flag);
int gObjMagicAdd(LPOBJ lpObj, BYTE Type, BYTE Index, BYTE Level, BYTE * SkillNumber);
int gObjMagicAdd(LPOBJ lpObj, BYTE aSkill, BYTE Level);
int gObjMonsterMagicAdd(LPOBJ lpObj, BYTE aSkill, BYTE Level);
BOOL gObjMagicEnergyCheck(LPOBJ lpObj , BYTE aSkill);
BOOL gObjItemLevelUp(LPOBJ lpObj, int source, int target);
BOOL gObjItemRandomLevelUp(LPOBJ lpObj, int source, int target);
BOOL gObjItemRandomOption3Up(LPOBJ lpObj, int source, int target);
void gObjAbilityReSet(LPOBJ lpObj);
void gObjGuildWarEndSend(LPOBJ lpObj, BYTE Result1, BYTE Result2);
BOOL gObjTargetGuildWarCheck(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjGuildWarEndSend(LPGUILD_INFO_STRUCT lpGuild1, LPGUILD_INFO_STRUCT lpGuild2, BYTE Result1, BYTE Result2);
void gObjGuildWarEnd(LPGUILD_INFO_STRUCT lpGuild, LPGUILD_INFO_STRUCT lpTargetGuild);
BOOL gObjGuildWarProc(LPGUILD_INFO_STRUCT lpGuild1, LPGUILD_INFO_STRUCT lpGuild2, int score);
BOOL gObjGuildWarCheck(LPOBJ lpObj, LPOBJ lpTargetObj);
BOOL gObjGuildWarMasterClose(LPOBJ lpObj);
BOOL gObjGuildWatItemGive(LPGUILD_INFO_STRUCT lpWinGuild, LPGUILD_INFO_STRUCT lpLoseGuild);
BOOL gObjGetPkTime(LPOBJ lpObj, int * hour, int * min);
BOOL gObjMonsterCall(int aIndex, int MonsterType, int x, int y);
void gObjMonsterCallKill(int aIndex);
BOOL gObjCheckTeleportArea(int aIndex, BYTE x, BYTE y);
BOOL gObjCheckAttackAreaUsedPath(int aIndex, int TarObjIndex);
BOOL gObjCheckattackAreaUsedViewPort(int aIndex, int TarObjIndex);
int gObjCheckAttackArea(int aIndex, int TarObjIndex);
BOOL gUserFindDevilSquareInvitation(int aIndex);
BOOL gUserFindDevilSquareKeyEyes(int aIndex);
void gObjSendUserStatistic(int aIndex, int startlevel, int endlevel);
LPOBJ gObjFind(char * targetcharname);
BOOL gObjFind10EventChip(int aIndex);
BOOL gObjDelete10EventChip(int aIndex);
void gObjSetPosition(int aIndex, int x, int y);
void gObjGetItemCountInEquipment(int aIndex);
int gObjGetItemCountInEquipment(int aIndex, int itemtype, int itemindex, int itemlevel);
int gObjGetItemCountInInventory(int aIndex, int itemtype, int itemindex, int itemlevel);
int gObjGetItemCountInInventory(int aIndex, int itemnum);
int gObjGetManaItemPos(int aIndex);
void gObjDelteItemCountInInventory(int aIndex, int itemtype, int itemindex, int count);
void gObjGetStatPointState(int aIndex, short * AddPoint, short * MaxAddPoint);
BOOL gObjCheckStatPointUp(int aIndex);
BOOL gObjCheckStatPointDown(int aIndex);
void gObjUseCircle(int aIndex, int pos);
void gObjCalcMaxLifePower(int aIndex);
void gObjDelayLifeCheck(int aIndex);
BOOL gObjDuelCheck(LPOBJ lpObj);
BOOL gObjDuelCheck(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjResetDuel(LPOBJ lpObj);
void gObjSendDuelEnd(LPOBJ lpObj);
void gObjCheckAllUserDuelStop();
void gObjNProtectGGCheckSum(int aIndex);
void SkillFrustrum(BYTE bangle, int aIndex);
BOOL SkillTestFrustrum(int aIndex, int x, int y);
BOOL gObjCheckMaxZen(int aIndex, int nAddZen);
void MakeRandomSetItem(int aIndex);
void MakeRewardSetItem(int aIndex, BYTE xDropX, BYTE cDropY, int iRewardType);
void gObjRecall(int aIndex, int mapnumber, int x, int y);
void gObjSetExpPetItem(int aIndex, int exp);
BOOL gObjGetRandomItemDropLocation(int iMapNumber, BYTE *cX, BYTE * cY, int iRangeX, int iRangeY, int iLoopCount);
BOOL gObjGetRandomFreeLocation(int iMapNumber, BYTE *cX, BYTE * cY, int iRangeX, int iRangeY, int iLoopCount);
int gObjCheckAttackTypeMagic(int iSkill);
int gObjGetGuildUnionNumber(LPOBJ lpObj);
void gObjGetGuildUnionName(LPOBJ lpObj, char* szUnionName, int iUnionNameLen);
BOOL gObjCheckRival(LPOBJ lpObj, LPOBJ lpTargetObj);
int gObjGetRelationShip(LPOBJ lpObj, LPOBJ lpTargetObj);
void gObjNotifyUpdateUnionV1(LPOBJ lpObj);
void gObjNotifyUpdateUnionV2(LPOBJ lpObj);
void gObjUnionUpdateProc(int iIndex);
void gObjNotifyUseWeaponV1(LPOBJ lpOwnerObj, LPOBJ lpWeaponObj, int iTargetX, int iTargetY);
void gObjNotifyUseWeaponDamage(LPOBJ lpWeaponObj, int iTargetX, int iTargetY);
void gObjUseBlessAndSoulPotion(int aIndex, int iItemLevel);
void gObjWeaponDurDownInCastle(LPOBJ lpObj, LPOBJ lpTargetObj, int iDecValue);
void MsgOutput(int aIndex, char* msg, ...) ;void gProcessAutoRecuperation(LPOBJ lpObj);
-
Re: [Release]Mu Online Sources
the .h does not go with the season 3 quest code, you must define and call offsets for that it uses, only 5 things i counted so far, not really working on this atm.
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
Hi All Who Want Help Me ... I Nedd It Fast Please Dude!!!
I Want Put This Code In My Main.exe & In My GameServer Please Much ... !!!
This Is My GameServer
GameServer [Here]
This Is My Main
Main [Here]
This Is The Resource Code
Resource Code [Here]
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
Can I add code in mygsfun.dll in 99b?
-
Re: [Release]Mu Online Sources
can some1 give me the link fro VC++ 6.0? thank alot... im a newbie but im tryin hard =) ragezone forums is best to learn things with all the help from u guys... thanks alot..
-
Re: [Release]Mu Online Sources
i need .h file to add comand =(
-
Re: [Release]Mu Online Sources
if you will take time to learn C++, I am sure you can whip up a .h file for your DLL. Offsets for Luciano Beta 41 and original 1.001.6 GS can be found by simple searching, just need to program in C++, or if you prefer ASM. If you really come down to it, look for online tutorials for dlls on the internet to get a general idea of how to lay it out.
-
Re: [Release]Mu Online Sources
-
Re: [Release]Mu Online Sources
both codes are toast, i try since 2 weeks to compile them without any succes, missing offsets and over 150 spelling mistakes/coding mistakes...
can please anyone correct this code and make some unicode- offsets for all versions?
-
Re: [Release]Mu Online Sources
Quote:
Originally Posted by
L0ЯD
Season 3 wings mix code
go coderzfactory home page and type @ web browser showthread.php?t=3110
Why you don't want to give here ?? :?:
-
Re: [Release] Mu Online Sources
hi, im trying to create the dll for /post code, but i cant.
if somebody can help me add me to MSN: demian_1411@hotmail.com, or give me a little tutorial...
thnx:rolleyes:
-
Re: [Release] Mu Online Sources
lol you are the best :) ! 20/10 :}
-
Re: [Release] Mu Online Sources
why don't you simply goto where they are and find them...as well ALL these codes done properly are located there...nice to see you using our stuff in a good way for once L0rd
-
Re: [Release] Mu Online Sources
Quote:
hi, im trying to create the dll for /post code, but i cant.
if somebody can help me add me to MSN:
demian_1411@hotmail.com, or give me a little tutorial...
thnx
ROFL!!!! People if you don't know how to create dlll and other stuff no one will tell you how to do it! Just learn Visual Studio, read tuts, and research...:closedeyes:
-
Re: [Release] Mu Online Sources
I am tryng to create in Visual C++ 6.0.
I Add the code for /Post, but i have errors.
-
Re: [Release] Mu Online Sources
is not irrogance my but i have a source codes of SCF season3 episodio1 and 2 but i cant public this because bet0x close this or i am baned T_T ...
-
Re: [Release] Mu Online Sources
-
Re: [Release] Mu Online Sources
Anyone have GS 99b Unpacked?
Because for hook a DLL, i need 99b GS Unpacked.
-
Re: [Release] Mu Online Sources
-
re: [Release] Mu Online Sources
who is have complete file dll gameserver 1.00.18 ( Exteam Season 3.1) share me please :((