1
CMSWebs / Re: CMS ExTeamWeb Liberada
« Posteado: August 13, 2019, 04:23:26 PM »
funciona em qual tipo de hospedagem?
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Agregue estas lineas en serverinfo.cpp
arriba
#include "CustomDeathMessage.h"
y debajo de
in void CServerInfo::ReadCustomInfo() // OK
Agregue
gCustomDeathMessage.Load(gPath.GetFullPath("Custom\\CustomDeathMessage.txt"));
ObjectManager.cpp
#include "CustomDeathMessage.h"
Debajo de
GCUserDieSend(lpTarget,lpTarget->Index,skill,lpObj->Index);
Agregue
if(lpObj->Type == OBJECT_MONSTER) {
gCustomDeathMessage.GetDeathText(lpTarget,lpObj, lpObj->Class);
}Code: [Select]#pragma once
#include "Protocol.h"
#include "User.h"
struct CUSTOMDEATHMESSAGE_INFO
{
int Index;
char Text[128];
};
class CustomDeathMessage
{
public:
CustomDeathMessage();
virtual ~CustomDeathMessage();
void Load(char* path);
void GetDeathText(LPOBJ lpTarget, LPOBJ lpObj, int index);
bool GetInfo(int index,CUSTOMDEATHMESSAGE_INFO* lpInfo);
private:
std::map<int,CUSTOMDEATHMESSAGE_INFO> m_CustomDeathMessage;
};
extern CustomDeathMessage gCustomDeathMessage;
CustomDeathMessage.cppCode: [Select]// CustomDeathMessage.cpp: implementation of the CGate class.//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CommandManager.h"
#include "CustomDeathMessage.h"
#include "Log.h"
#include "MemScript.h"
#include "Message.h"
#include "Notice.h"
#include "Util.h"
CustomDeathMessage gCustomDeathMessage;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CustomDeathMessage::CustomDeathMessage() // OK
{
this->m_CustomDeathMessage.clear();
}
CustomDeathMessage::~CustomDeathMessage() // OK
{
}
void CustomDeathMessage::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_CustomDeathMessage.clear();
try
{
while(true)
{
if(lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if(strcmp("end",lpMemScript->GetString()) == 0)
{
break;
}
CUSTOMDEATHMESSAGE_INFO info;
info.Index = lpMemScript->GetNumber();
strcpy_s(info.Text,lpMemScript->GetAsString());
this->m_CustomDeathMessage.insert(std::pair<int,CUSTOMDEATHMESSAGE_INFO>(info.Index,info));
}
}
catch(...)
{
ErrorMessageBox(lpMemScript->GetLastError());
}
delete lpMemScript;
}
void CustomDeathMessage::GetDeathText(LPOBJ lpTarget, LPOBJ lpObj, int index) // OK
{
CUSTOMDEATHMESSAGE_INFO CustomDM;
if(this->GetInfo(index,&CustomDM) == 0)
{
return;
}
GCChatTargetSend(lpTarget,lpObj->Index,CustomDM.Text);
}
bool CustomDeathMessage::GetInfo(int index,CUSTOMDEATHMESSAGE_INFO* lpInfo) // OK
{
std::map<int,CUSTOMDEATHMESSAGE_INFO>::iterator it = this->m_CustomDeathMessage.find(index);
if(it == this->m_CustomDeathMessage.end())
{
return 0;
}
else
{
(*lpInfo) = it->second;
return 1;
}
}
Agregar txt creado en Data/Custom:
CustomDeathMessage.txt