La source tiene varios problemas que hay que solucionar, pero en si el que esta dañando toda esta source es en el cargado / llamado de la informacion, ya que si usan la source asi como esta no les dara nada de nada y el problema esta en
o asi lo tienen marcado en esta source, entonces esto lleva que al final esta source no cumpla ninguna funcion
Tambien hay otro error en en el cargado / llamado de la informacion y vuelve a esta en
este error esta debajo del otro y simplemente no cumple ninguna funcion o almenos a mi.
de la siguiente manera, ahora el unico error que tengo es que siempre que entro me da los items, pero eso pasa porque no tiene el cargado / llamado de la informacion bien.
#include "stdafx.h"
//#include "GameServer.h"
//#include "GameMain.h"
#include "Util.h"
#include "User.h"
#include "GiftForNew.h"
//#include "CashShop.h"
#include "MemScript.h"
//#include "Notice.h"
#include "DSProtocol.h"
#include "ItemManager.h"
#include "ServerInfo.h"
CGift gGiftNew;
CGift::CGift() // OK
{
this->Init();
}
CGift::~CGift() // OK
{
}
void CGift::Init() // OK
{
memset(this->m_GiftInfo,0,sizeof(this->m_GiftInfo));
}
void CGift::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->Init();
try
{
while(true)
{
if(lpMemScript->GetToken() == TOKEN_END)
{
break;
}
if(strcmp("end",lpMemScript->GetString()) == 0)
{
break;
}
GIFT_INFO info;
info.Class = lpMemScript->GetNumber();
info.SetID = lpMemScript->GetAsNumber();
info.Level = lpMemScript->GetAsNumber();
info.Luck = lpMemScript->GetAsNumber();
info.Option = lpMemScript->GetAsNumber();
info.Excellent = lpMemScript->GetAsNumber();
info.Time = lpMemScript->GetAsNumber();
this->SetInfo(info);
}
}
catch(...)
{
ErrorMessageBox(lpMemScript->GetLastError());
}
delete lpMemScript;
}
void CGift::SetInfo(GIFT_INFO info) // OK
{
if(CHECK_RANGE(info.Class,MAX_CLASS) == 0)
{
return;
}
this->m_GiftInfo[info.Class] = info;
}
void CGift::GiftItem(LPOBJ lpObj)
{
/* if(gServerInfo.m_TheGift == 0)
{
return;
}*/
if(lpObj->TheGift >= 1)
{
return;
}
lpObj->TheGift += 1;
GDSaveTheGiftData(lpObj->Index);
int Days = this->m_GiftInfo[lpObj->Class].Time;
time_t t = time(NULL);
localtime(&t);
DWORD iTime = (DWORD)t + Days * 86400;
GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(7,this->m_GiftInfo[lpObj->Class].SetID),this->m_GiftInfo[lpObj->Class].Level,0,0,this->m_GiftInfo[lpObj->Class].Luck,this->m_GiftInfo[lpObj->Class].Option,-1,this->m_GiftInfo[lpObj->Class].Excellent,0,0,0,0,0xFF,iTime);
GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(8,this->m_GiftInfo[lpObj->Class].SetID),this->m_GiftInfo[lpObj->Class].Level,0,0,this->m_GiftInfo[lpObj->Class].Luck,this->m_GiftInfo[lpObj->Class].Option,-1,this->m_GiftInfo[lpObj->Class].Excellent,0,0,0,0,0xFF,iTime);
GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(9,this->m_GiftInfo[lpObj->Class].SetID),this->m_GiftInfo[lpObj->Class].Level,0,0,this->m_GiftInfo[lpObj->Class].Luck,this->m_GiftInfo[lpObj->Class].Option,-1,this->m_GiftInfo[lpObj->Class].Excellent,0,0,0,0,0xFF,iTime);
GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(10,this->m_GiftInfo[lpObj->Class].SetID),this->m_GiftInfo[lpObj->Class].Level,0,0,this->m_GiftInfo[lpObj->Class].Luck,this->m_GiftInfo[lpObj->Class].Option,-1,this->m_GiftInfo[lpObj->Class].Excellent,0,0,0,0,0xFF,iTime);
GDCreateItemSend(lpObj->Index,0xEB,0,0,GET_ITEM(11,this->m_GiftInfo[lpObj->Class].SetID),this->m_GiftInfo[lpObj->Class].Level,0,0,this->m_GiftInfo[lpObj->Class].Luck,this->m_GiftInfo[lpObj->Class].Option,-1,this->m_GiftInfo[lpObj->Class].Excellent,0,0,0,0,0xFF,iTime);
}
Alguien que sepa mucho mas que yo sobre esto que pueda echame una mano se lo agradeceria... musica