
Originally Posted by
zodiacddos
Share complete please
GetMainInfo
CustomEarthQuake.h
Código:
#pragma once
#define MAX_EARTH_QUAKE 512
struct HORSE_EARTH_QUAKE
{
int Index;
int ItemIndex;
int EffectCode;
int UseRGB;
int ColorR;
int ColorG;
int ColorB;
int EffectSize;
int SkillEarthQuake1;
int SkillEarthQuake2;
};
class cCEarthQuake
{
public:
cCEarthQuake();
virtual ~cCEarthQuake();
void Init();
void Load(char* path);
void SetInfo(HORSE_EARTH_QUAKE info);
public:
HORSE_EARTH_QUAKE m_EarthQuake [MAX_EARTH_QUAKE];
}; extern cCEarthQuake gCustomEarthQuake;
CustomEarthQuake.cpp
Código:
#include "StdAfx.h"
#include "EarthQuake.h"
#include "MemScript.h"
cCEarthQuake gCustomEarthQuake;
cCEarthQuake::cCEarthQuake()
{
this->Init();
}
cCEarthQuake::~cCEarthQuake()
{
}
void cCEarthQuake::Init()
{
for(int n=0;n < MAX_EARTH_QUAKE;n++)
{
this->m_EarthQuake[n].Index = -1;
};
}
void cCEarthQuake::Load(char* path)
{
CMemScript* lpMemScript = new CMemScript;
if(lpMemScript == 0){
printf(MEM_SCRIPT_ALLOC_ERROR,path);
return;
}
if(lpMemScript->SetBuffer(path) == 0)
{
printf(lpMemScript->GetLastError());
delete lpMemScript;
return;
}
this->Init();
try
{
while(true)
{
if(lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if(strcmp("end",lpMemScript->GetString()) == 0)
{
break;
}
HORSE_EARTH_QUAKE info;
memset(&info,0,sizeof(info));
static int CustomItemIndexCount = 0;
info.Index = CustomItemIndexCount++;
info.ItemIndex = lpMemScript->GetNumber();
info.EffectCode = lpMemScript->GetAsNumber();
info.UseRGB = lpMemScript->GetAsNumber();
info.ColorR = lpMemScript->GetAsFloatNumber();
info.ColorG = lpMemScript->GetAsFloatNumber();
info.ColorB = lpMemScript->GetAsFloatNumber();
info.EffectSize = lpMemScript->GetAsNumber();
info.SkillEarthQuake1 = lpMemScript->GetAsNumber();
info.SkillEarthQuake2 = lpMemScript->GetAsNumber();
this->SetInfo(info);
}
}
catch(...)
{
printf(lpMemScript->GetLastError());
}
delete lpMemScript;
}
void cCEarthQuake::SetInfo(HORSE_EARTH_QUAKE info)
{
if(info.Index < 0 || info.Index >= MAX_EARTH_QUAKE)
{
return;
}
this->m_EarthQuake[info.Index] = info;
}
GetMainInfo.cpp
ATENÇÃO! NÃO COPIAR SIMPLESMENTE ESSAS LINHAS ABAIXO E COLAR NO SEU CPP, ANALISE PRIMEIRO SEU CÓDIGO E ADICIONE ESSAS LINHAS NOS SEUS DEVIDOS LUGARES.
Código:
#include "EarthQuake.h"
DWORD CustomEffectEarthQuake;
HORSE_EARTH_QUAKE m_EarthQuake[MAX_EARTH_QUAKE];
info.CustomEffectEarthQuake = GetPrivateProfileInt("Custom","CustomEffectEarthQuake",0,".\\MainInfo.ini");
gCustomEarthQuake.Load("CustomEarthQuake.txt");
memcpy(info.m_EarthQuake, gCustomEarthQuake.m_EarthQuake, sizeof(info.m_EarthQuake));