Скачать исходники Reset System - Инструкция по установке

Автор BloodDemoH, 2014 Апр. 03, 19:48

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] установкаскачать исходники reset system mu online releaseфайлы resetsystem.cppresetsystem.hstructure.h

BloodDemoH

Выкладываю вам исходные файлы Ресет Системы от Денжер
если тема создана не в том разделе прошу прощение и перенести тему в нужный раздел

[ResetSystem.cpp]
Спойлер
#include "StdAfx.h"
#include "ResetSystem.h"
#include "SQL.h"
#include "StdAfx.h"
#include "NewQuery.h"
#include "Log.h"
#include "Functions.h"
#include "Structure.h"
cReset gReset;

void cReset::Init()
{
this->Enable = GetPrivateProfileInt("Common","Enable",0,RESET_DIR);
this->ShowReset = GetPrivateProfileInt("Common","ShowReset",0,RESET_DIR);

this->DKPoints = GetPrivateProfileInt("ResetSystem","DKPoints",500,RESET_DIR);
this->DWPoints = GetPrivateProfileInt("ResetSystem","DWPoints",600,RESET_DIR);
this->ELFPoints = GetPrivateProfileInt("ResetSystem","ELFPoints",600,RESET_DIR);
this->MGPoints = GetPrivateProfileInt("ResetSystem","MGPoints",600,RESET_DIR);
this->DLPoints = GetPrivateProfileInt("ResetSystem","DLPoints",500,RESET_DIR);
this->DLCommand = GetPrivateProfileInt("ResetSystem","DLCommand",0,RESET_DIR);
this->AddCommand = GetPrivateProfileInt("ResetSystem","AddCommand",0,RESET_DIR);

for(int i=0;i<MAX_TABLE;i++)
{
this->Table[this->Count].sReset        = 0;
this->Table[this->Count].sLevel        = 0;
this->Table[this->Count].sZen        = 0;
this->Table[this->Count].sItemID    = 0;
this->Table[this->Count].sItemCount = 0;
this->Table[this->Count].sGem        = 0;
}




FILE * file = fopen(RESET_DIR,"r");

if(file == NULL)
{
MessageBoxA(0,"ResetSystem.cfg Load Error","CRITICAL ERROR",0);
this->Enable = false;
return;
}

char Buff[256];
int Flag = 0;
this->Count = 0;

while(!feof(file))
{
if(this->Count == MAX_TABLE) break;
fgets(Buff,256,file);
if(g_Funtions.IsBadFileLine(Buff, Flag)) continue;
if(Flag == 1)
{
int n[6];
sscanf(Buff,"%d %d %d %d %d %d",&n
  • ,&n[1],&n[2],&n[3],&n[4],&n[5]);
this->Table[this->Count].sReset        = n
  • ;
this->Table[this->Count].sLevel        = n[1];
this->Table[this->Count].sZen        = n[2];
this->Table[this->Count].sItemID    = n[3];
this->Table[this->Count].sItemCount = n[4];
this->Table[this->Count].sGem        = n[5];
this->Count++;
}
}
fclose(file);
}

void cReset::Connect(int aIndex)
{
if(!this->Enable) return;

OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);

///MySQL.Execute("SELECT Resets FROM Character WHERE Name = '%s'", gObj->Name);
int Resets = g_GameStruct[aIndex].m_Resets;

if(this->ShowReset)
{
g_Log.Messages.outMsg(aIndex, MC_GREEN, "[SYSTEM] Resets: %d", Resets);
}
}

void cReset::Command(int aIndex,LPBYTE Protocol)
{
if(!this->Enable) return;

OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);

char CommandReset[] = "/reset";

if(!memcmp(&Protocol[13],CommandReset,strlen(CommandReset)))
{
this->CheckReset(aIndex);
}

if(gObj->Authority == 8 || gObj->Authority == 32)
{
char CommandRestartReset[] = "/restartreset";

if(!memcmp(&Protocol[13],CommandRestartReset,strlen(CommandRestartReset)))
{
this->Init();
}
}
}

void cReset::CheckReset(int aIndex)
{
for(int i=0;i<this->Count;i++)
{
if(this->Table.sReset == (g_GameStruct[aIndex].m_Resets + 1))
{
this->MainReset(aIndex,i);
return;
}
}
g_Log.Messages.outMsg(aIndex, MC_GREEN, "[SYSTEM] Resets Full");
}

void cReset::MainReset(int aIndex,int Num)
{
OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);

if(this->Table[Num].sLevel > gObj->Level)
{
g_Log.Messages.outMsg(aIndex, MC_GREEN, "[SYSTEM] Resets Need Level: %d",this->Table[Num].sLevel);
return;
}

if(this->Table[Num].sZen > gObj->Money)
{
g_Log.Messages.outMsg(aIndex, MC_GREEN, "[SYSTEM] Resets Need Money: %d",this->Table[Num].sZen);
return;
}

int ItemCount = 0;

for(int i = 12; i < 76; i++)
{
if(gObj->pInventory.m_Type == this->Table[Num].sItemID)
{
ItemCount++;
}
}

if(this->Table[Num].sItemCount > ItemCount)
{
g_Log.Messages.outMsg(aIndex, MC_GREEN, "[SYSTEM] Resets Need Item");
return;
}

gObj->Money -= this->Table[Num].sZen;
GCMoneySend(aIndex,gObj->Money);

int DeleteCont = 0;

for(int i = 12; i < 76; i++)
{
if(gObj->pInventory.m_Type == this->Table[Num].sItemID)
{
if(DeleteCont == this->Table[Num].sItemCount) break;
gObjInventoryDeleteItem(aIndex, i);
GCInventoryItemDeleteSend(aIndex, i, 1);
DeleteCont++;
}
}

//    this->uReset[aIndex]++;
g_GameStruct[aIndex].m_Resets++;
// ----
gObj->Level = 1;
gObj->Experience = 0;
gObj->Strength = 25;
gObj->Dexterity = 25;
gObj->Vitality = 25;
gObj->Energy = 25;

if(gObj->Class == 4)
{
if(this->DLCommand)
{
gObj->Leadership = g_GameStruct[aIndex].m_Resets * this->AddCommand;
}
}

switch(gObj->Class)
{
case 0: gObj->LevelUpPoint = g_GameStruct[aIndex].m_Resets * this->DWPoints; break;
case 1: gObj->LevelUpPoint = g_GameStruct[aIndex].m_Resets * this->DKPoints; break;
case 2: gObj->LevelUpPoint = g_GameStruct[aIndex].m_Resets * this->ELFPoints;break;
case 3: gObj->LevelUpPoint = g_GameStruct[aIndex].m_Resets * this->MGPoints; break;
case 4: gObj->LevelUpPoint = g_GameStruct[aIndex].m_Resets * this->DLPoints; break;
}
g_MuOnlineDB.ExecQuery("UPDATE Character SET Resets = Resets + 1  Where Name ='%s';", gObj->Name);
g_MuOnlineDB.Close();
// ----
gObjCloseSet(aIndex, 1);
// ----
g_MuOnlineDB.ExecQuery("UPDATE MEMB_INFO SET CashPoint = CashPoint + %d Where memb___id ='%s';",
this->Table[Num].sGem, gObj->AccountID);
g_MuOnlineDB.Close();
}
[свернуть]

[ResetSystem.h]
Спойлер
#ifndef _RESET_SYSTEM_
#define _RESET_SYSTEM_

#include "StdAfx.h"
#include "User.h"

#define MAX_TABLE 1000

#define RESET_DIR  "..//Custom//ResetSystem.cfg"

class cReset
{
public:
bool Enable;

bool ShowReset;

int DKPoints;
int DWPoints;
int ELFPoints;
int MGPoints;
int DLPoints;
int DLCommand;
int AddCommand;

int uReset[OBJECT_MAX];

int DKMassive;
struct
{
int sReset;
int sLevel;
int sZen;
int sItemID;
int sItemCount;
int sGem;
}Table[MAX_TABLE];

int Count;

void Init();
void Connect(int aIndex);
void Command(int aIndex,LPBYTE Protocol);
void CheckReset(int aIndex);
void MainReset(int aIndex,int Num);
private:

};
extern cReset gReset;

#endif
[свернуть]

[Structure.h]
Спойлер
int m_Resets;
[свернуть]

[ResetSystem.conf]
Спойлер
[Common]
Enable = 1
ShowReset = 1

[ResetSystem]
DKPoints        = 100
DWPoints        = 100
ELFPoints        = 100
MGPoints        = 100
DLPoints        = 100
DLCommand    = 1        ; 0 - не сбрасываются, 1 - сбрасываются
AddCommand    = 100

// Reset    Level    Zen            ItemID    ItemCount    Gem
1
1        100        100        100        100        100
[свернуть]

Если чего-то нехватает скажите добавлю


noizer

Привет
Пытаюсь настроить сезон 6
Пробема в том что после команды ресета не выдает поинтов ( на пример рес * 500 )
Не можешь подсказать на примере вышего как сохранять и внедрить в сервер изменения?

То есть:
C++ установлю
этот исходник возьму а дальше куда его пихать

Спасибо

Похожие темы (5)