Initiate Mage
- Joined
- Sep 24, 2015
- Messages
- 97
- Reaction score
- 35
Re: Source [MUEMU]
Fix Master Skills Nova?
Fix Master Skills Nova?
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!Client:
Game Languages: Portuguese, english and Spanish
11 New Wings
12 New Weapons
25 New Sets
Anti-Hack MHP ativo
New Event King of MU
Several bugs fix in the source
Arquivos inclusos:
SOURCE INCLUDED
MUSERVER EASY VERSION
ODBC
COMPLETE SITE COMPATIBLE
DATABASE COMPATIBLE WITH THE SITE
DATABASE WITHOUT SITE
JOBS FOR RANKINGS, TOPS, MEDALS
FILES TO CONFIGURE CLIENT
MUEDITOR
TOOLS
SETUP FOR CLIENTE
Servidor:
Version Ex803
Shopping IN-GAME
Exp VIP 1000x
Exp FREE 900x
Max Level 400(+330 M.Level)
Max Status 64.900
Bug Bless OFF
Tipo Reset Acumulative
Level Reset 400
M.Reset Level 400
Ativa M.Reset 300 resets
Pentagram Mix 100%
Item Drop 85%
Pontos por master level 3
CHAOS MIX: 100%
@Luis_br - Addpoint commands are not working. :/ no addstr or addvit or addene.. etc.
ingles:
I can not open the website, locked in this image, it is already configured, please help me!
portugues:
Não consigo abrir o site, travado nessa imagem, já está configurado, por favor me ajude!
luis,
english:
How to fix this error?
portugues:
Como arrumar esse erro?
CREATE function [dbo].[fn_nivel_gm]
(
@acc varchar(10)
)
returns int
as
begin
declare @nivel int
set @nivel = (Select top 1 nivel_gm from character where accountid=@acc order by nivel_gm desc)
return @nivel
end
Luis, I thank you very much the contribution, I am checking it and I noticed a bug, when buying the SET Darkangel Elf crashes the GameServer
no luis has released version but not work illusion, nova etc etc and how what we Already have.someone still working on 803 version?
Could you, telll me exacly what bugs it have? I am thinking start working s8 source codes, add some customs maybe.
Uso tapatalk cual es el peo?
Will be many inconvenience if you share your corrent sources? Sorry if bother
Uso tapatalk cual es el peo?
// Gate.cpp: implementation of the CGate class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CommandManager.h"
#include "CustomMove.h"
#include "GensSystem.h"
#include "Log.h"
#include "Map.h"
#include "MapManager.h"
#include "MemScript.h"
#include "Message.h"
#include "Notice.h"
#include "Util.h"
CCustomMove gCustomMove;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCustomMove::CCustomMove() // OK
{
this->m_CustomMoveInfo.clear();
}
CCustomMove::~CCustomMove() // OK
{
}
void CCustomMove::Load(char* path) // OK
{
CMemScript* lpMemScript = new CMemScript;
if(lpMemScript == 0)
{
ErrorMessageBox(MEM_SCRIPT_ALLOC_ERROR,path);
return;
}
if(lpMemScript->SetBuffer(path) == 0)
{
ErrorMessageBox(lpMemScript->GetLastError());
delete lpMemScript;
return;
}
this->m_CustomMoveInfo.clear();
try
{
while(true)
{
if(lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if(strcmp("end",lpMemScript->GetString()) == 0)
{
break;
}
CUSTOMMOVE_INFO info;
info.Index = lpMemScript->GetNumber();
strcpy_s(info.Name,lpMemScript->GetAsString());
info.Map = lpMemScript->GetAsNumber();
info.X = lpMemScript->GetAsNumber();
info.Y = lpMemScript->GetAsNumber();
info.MinLevel = lpMemScript->GetAsNumber();
info.MaxLevel = lpMemScript->GetAsNumber();
info.MinReset = lpMemScript->GetAsNumber();
info.MaxReset = lpMemScript->GetAsNumber();
info.AccountLevel = lpMemScript->GetAsNumber();
info.PkMove = lpMemScript->GetAsNumber();
this->m_CustomMoveInfo.insert(std::pair<int,CUSTOMMOVE_INFO>(info.Index,info));
}
}
catch(...)
{
ErrorMessageBox(lpMemScript->GetLastError());
}
delete lpMemScript;
}
bool CCustomMove::GetInfo(int index,CUSTOMMOVE_INFO* lpInfo) // OK
{
std::map<int,CUSTOMMOVE_INFO>::iterator it = this->m_CustomMoveInfo.find(index);
if(it == this->m_CustomMoveInfo.end())
{
return 0;
}
else
{
(*lpInfo) = it->second;
return 1;
}
}
bool CCustomMove::GetInfoByName(char* message,CUSTOMMOVE_INFO* lpInfo) // OK
{
char command[32] = {0};
memset(command,0,sizeof(command));
gCommandManager.GetString(message,command,sizeof(command),0);
for(std::map<int,CUSTOMMOVE_INFO>::iterator it=this->m_CustomMoveInfo.begin();it != this->m_CustomMoveInfo.end();it++)
{
if(_stricmp(it->second.Name,command) == 0)
{
(*lpInfo) = it->second;
return 1;
}
}
return 0;
}
void CCustomMove::GetMove(LPOBJ lpObj,int index) // OK
{
CUSTOMMOVE_INFO CustomMoveInfo;
if(this->GetInfo(index,&CustomMoveInfo) == 0)
{
return;
}
if(CustomMoveInfo.MinLevel != -1 && lpObj->Level < CustomMoveInfo.MinLevel)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(224),CustomMoveInfo.MinLevel);
return;
}
if(CustomMoveInfo.MaxLevel != -1 && lpObj->Level > CustomMoveInfo.MaxLevel)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(230),CustomMoveInfo.MaxLevel);
return;
}
if(CustomMoveInfo.MinReset != -1 && lpObj->Reset < CustomMoveInfo.MinReset)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(231),CustomMoveInfo.MinReset);
return;
}
if(CustomMoveInfo.MaxReset != -1 && lpObj->Reset > CustomMoveInfo.MaxReset)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(232),CustomMoveInfo.MaxReset);
return;
}
if(lpObj->AccountLevel < CustomMoveInfo.AccountLevel)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(226));
return;
}
if(CustomMoveInfo.PkMove == 0 && lpObj->PKLevel >= 5)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(227));
return;
}
if(lpObj->Interface.use != 0 || lpObj->Teleport != 0 || lpObj->DieRegen != 0 || lpObj->PShopOpen != 0)
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(226));
return;
}
if(CustomMoveInfo.Map == MAP_ATLANS && (lpObj->Inventory[8].IsItem() != 0 && (lpObj->Inventory[8].m_Index == GET_ITEM(13,2) || lpObj->Inventory[8].m_Index == GET_ITEM(13,3)))) // Uniria,Dinorant
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(274));
return;
}
if((CustomMoveInfo.Map == MAP_ICARUS || CustomMoveInfo.Map == MAP_KANTURU3) && (lpObj->Inventory[7].IsItem() == 0 && lpObj->Inventory[8].m_Index != GET_ITEM(13,3) && lpObj->Inventory[8].m_Index != GET_ITEM(13,37))) // Dinorant,Fenrir
{
gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(228));
return;
}
gObjTeleport(lpObj->Index,CustomMoveInfo.Map,CustomMoveInfo.X,CustomMoveInfo.Y);
gLog.Output(LOG_COMMAND,"[CustomMove][%s][%s] - (MoveIndex: %d)",lpObj->Account,lpObj->Name,index);
}
// Move.h: interface for the CMove class.
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include "Protocol.h"
#include "User.h"
#define MAX_CUSTOMMOVE 20
struct CUSTOMMOVE_INFO
{
int Index;
char Name[32];
int Map;
int X;
int Y;
int MinLevel;
int MaxLevel;
int MinReset;
int MaxReset;
int AccountLevel;
int PkMove;
};
class CCustomMove
{
public:
CCustomMove();
virtual ~CCustomMove();
void Load(char* path);
void GetMove(LPOBJ lpObj,int index);
bool GetInfo(int index,CUSTOMMOVE_INFO* lpInfo);
bool GetInfoByName(char* message,CUSTOMMOVE_INFO* lpInfo);
private:
std::map<int,CUSTOMMOVE_INFO> m_CustomMoveInfo;
};
extern CCustomMove gCustomMove;
void CServerInfo::ReadMoveInfo() // OK
{
gGate.Load(gPath.GetFullPath("Move\\Gate.txt"));
gMove.Load(gPath.GetFullPath("Move\\Move.txt"));
[COLOR="#FF0000"] gCustomMove.Load(gPath.GetFullPath("Custom\\CustomMove.txt"));[/COLOR]
gMoveSummon.Load(gPath.GetFullPath("Move\\MoveSummon.txt"));
LogAdd(LOG_BLUE,"[ServerInfo] Move loaded successfully");
}
if(lpMsg->message[0] == '/')
{
if(gCommandManager.ManagementCore(&gObj[aIndex],lpMsg->message) == [COLOR="#FF0000"]1[/COLOR])
{
return;
}
else
{
[COLOR="#FF0000"] CUSTOMMOVE_INFO CustomMoveInfo;
if(gCustomMove.GetInfoByName(lpMsg->message,&CustomMoveInfo) != 0)
{
gCustomMove.GetMove(lpObj,CustomMoveInfo.Index);
}
[/COLOR]
return;
}
}
// MAX 20 CUSTOM MOVES by louis www.jogandomu.com.br
//INDEX Command Map X Y MinLevel MaxLevel MinReset MaxReset AccountLevel PKMove
1 "/pvp1" 0 211 212 20 400 * * 2 0
2 "/pvp2" 1 200 145 20 400 * * 0 1
3 "/pvp3" 2 215 216 20 400 * * 0 1
end
Luis_br , a xteam tem um sistema de script com arquivo lua que dá para fazer custons como essa que você fez, tipo você consegue codar nessa source esse sistema de script. Pois eu estou usando um server original que inclusive tenho esses moves custom que foi feito através do arquivo lua
Luis_br, xteam has a script system with lua file that gives to make custons like the one that you did, type you can codar in this source that system of script. Because I'm using an original server that I even have these custom moves that was done through the lua file
You should check the dataserver source. Anyway it may create a security breach since those characters may be used to exploit databases...thats why they are forbidden on the first place.Hello, someone knows allow characters like these [ ] - _ for the mu character creation?
Thanks!