Code:
this->m_brush[0] = CreateSolidBrush(RGB(105,105,105));
this->m_brush[1] = CreateSolidBrush(RGB(110,240,120));
Printable View
you know how to able use camera on season 6 client?
some one know how to add system quest or any metod to add new quest to serv?
http://uploads.tapatalk-cdn.com/2016...46fb598fe8.jpg
Some one know how can i set sd make it low? In photo its 17k i want it to kake 10k or else
Sent from my iPhone using Tapatalk
Please tell me how to make files season 8 to work as SIMA license and will include it freezes (( what to do prompt please
so you want to add something that already?
- - - Updated - - -Code:memcpy(lpObj->Name,lpInfo->Name,sizeof(lpObj->Name));
lpObj->Level = lpInfo->Level;
lpObj->PhysiSpeed = lpInfo->AttackSpeed;
lpObj->PhysiDamageMin = lpInfo->DamageMin;
lpObj->PhysiDamageMax = lpInfo->DamageMax;
lpObj->Defense = lpInfo->Defense;
lpObj->MagicDefense = lpInfo->MagicDefense;
lpObj->AttackSuccessRate = lpInfo->AttackRate;
lpObj->DefenseSuccessRate = lpInfo->DefenseRate;
lpObj->Life = (float)lpInfo->Life;
lpObj->MaxLife = (float)lpInfo->Life;
lpObj->Mana = (float)lpInfo->Mana;
lpObj->MaxMana = (float)lpInfo->Mana;
lpObj->MoveRange = lpInfo->MoveRange;
lpObj->MoveSpeed = lpInfo->MoveSpeed;
lpObj->MaxRegenTime = lpInfo->RegenTime*1000;
lpObj->AttackRange = lpInfo->AttackRange;
lpObj->ViewRange = lpInfo->ViewRange;
lpObj->Attribute = lpInfo->Attribute;
lpObj->AttackType = lpInfo->AttackType;
lpObj->ItemRate = lpInfo->ItemRate;
lpObj->MoneyRate = lpInfo->MoneyRate;
lpObj->Resistance[0] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[0]);
lpObj->Resistance[1] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[1]);
lpObj->Resistance[2] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[2]);
lpObj->Resistance[3] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[3]);
lpObj->Resistance[4] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[4]);
lpObj->Resistance[5] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[5]);
lpObj->Resistance[6] = ((lpInfo->Resistance[0]>255)?255:lpInfo->Resistance[6]);
lpObj->ScriptMaxLife = (float)lpInfo->ScriptLife;
lpObj->BasicAI = lpInfo->AINumber;
lpObj->CurrentAI = lpInfo->AINumber;
lpObj->CurrentAIState = 0;
lpObj->LastAIRunTime = 0;
lpObj->GroupNumber = 0;
lpObj->SubGroupNumber = 0;
lpObj->GroupMemberGuid = -1;
lpObj->RegenType = 0;
lpObj->Agro.ResetAll();
#if(GAMESERVER_UPDATE>=701)
lpObj->ElementalAttribute = ((lpInfo->ElementalAttribute==6)?((GetLargeRand()%5)+1):lpInfo->ElementalAttribute);
lpObj->ElementalPattern = lpInfo->ElementalPattern;
lpObj->ElementalDefense = lpInfo->ElementalDefense;
lpObj->ElementalDamageMin = lpInfo->ElementalDamageMin;
lpObj->ElementalDamageMax = lpInfo->ElementalDamageMax;
lpObj->ElementalAttackSuccessRate = lpInfo->ElementalAttackRate;
lpObj->ElementalDefenseSuccessRate = lpInfo->ElementalDefenseRate;
#endif
Try change values in GameServerInfo - Character.ini?
Search in ObjectManager.hQuote:
;==================================================
; Character SD Recovery Settings
;==================================================
DWSDRecoveryRate = 4
DKSDRecoveryRate = 4
FESDRecoveryRate = 4
MGSDRecoveryRate = 4
DLSDRecoveryRate = 4
SUSDRecoveryRate = 4
RFSDRecoveryRate = 4
- - - Updated - - -Code:if(((lpObj->SDRecoveryCount++)%5) == 0)
{
if(lpObj->Shield != (lpObj->MaxShield+lpObj->AddShield))
{
if(lpObj->SDRecoveryType != 0 || gMap[lpObj->Map].CheckAttr(lpObj->X,lpObj->Y,1) != 0)
{
int rate = gServerInfo.m_SDRecoveryRate[lpObj->Class];
rate += (((GetTickCount()-lpObj->SDAutoRecuperationTime)>5000)?5:0);
rate += lpObj->SDRecoveryRate;
rate += lpObj->EffectOption.AddSDRecoveryRate;
int value = (int)(((lpObj->MaxShield+lpObj->AddShield)*rate)/100);
value += lpObj->SDRecovery;
value += lpObj->EffectOption.AddSDRecovery;
if((lpObj->Shield+value) > (lpObj->MaxShield+lpObj->AddShield))
{
lpObj->Shield = lpObj->MaxShield+lpObj->AddShield;
}
else
{
lpObj->Shield += value;
}
SDChange = 1;
}
}
}
Fix PlusStatPoint OK! in S6/S8
TEST
Quote:
;==================================================
; Level Up Settings
;==================================================
MaxLevelUp = 1
MaxLevelUpEvent = 1
MaxLevelUpQuest = 1
MaxStatPoint_AL0 = 65000
MaxStatPoint_AL1 = 65000
MaxStatPoint_AL2 = 65000
MaxStatPoint_AL3 = 65000
DWLevelUpPoint = 5
DKLevelUpPoint = 5
FELevelUpPoint = 5
MGLevelUpPoint = 7
DLLevelUpPoint = 7
SULevelUpPoint = 5
RFLevelUpPoint = 7
PlusStatPoint = 5
5 Base point Class + 5 Plus Point = 10 Point x LVL
I want to add this VISUAL to the server Michi28 Was did it on zteam ex802
This is what i mean this visuals on all mobs and also npc and that gens visual on all maps on character.
http://img506.yukle.tc/thumbs/77112222.png
Some one help me plyz to add to add Ex-Quest.
Ghive some error at User.h and Quest_PGW.cpp
Query DB
User.hPHP Code:[alter table [Character] add [ExQuest_num] int not null default(0)
alter table [Character] add [ExQuest_kill] int not null default(0)
alter table [Character] add [ExQuest_start] int not null default(0)
alter table [Character] add [Ex_FreePoints] int not null default(0)
alter table [MEMB_INFO] add [CashPoint] int not null default(0)
Quest_PGW.hPHP Code:struct Ex_User
{
//FreePoints
int Ex_FreePoints;
//Quest System
int ExQuest_num;
int ExQuest_kill;
int ExQuest_start;
//Time
int ExTimeTick;
//Reset
int Resets;
int GResets;
//Vip System
int VipStatus;
int VipTimeTick;
int VipTimeEnd;
};
extern Ex_User ExUser[OBJECT_MAX];
Quest_PGW.cppPHP Code:class Q_PGW
{
public:
void Q_Load();
void Q_Num();
void Q_CreateStruct(int aIndex);
void Q_NPC (int aIndex,int aNPC);
void KilledMob(int aIndex);
bool Presents(int aIndex,int Present,int Gifts);
bool IsBadFileLine(char *FileLine, int &Flag);
struct
{
int Mob;
int Coun;
int proc;
int rew;
int gift;
char msg[100];
char msg2[100];
} Number[1000];
int Count;
}; extern Q_PGW Qest_PGW;
Wath missing or waht is the problme?PHP Code:#include "Quest_PGW.h"
#include "StdAfx.h"
#include "Experience.h"
#include "USER.h"
#include "Message.h"
#include "Defines.h"
#include "AddFunctions.h"
#include "ExCore.h"
#include "Logs.h"
Q_PGW Qest_PGW;
int EnableExQuest = GetPrivateProfileInt("Common","Enable",0,"..\\Settings\\ExQuest.ini");
bool Q_PGW::IsBadFileLine(char *FileLine, int &Flag)
{
if(Flag == 0)
{
if(isdigit(FileLine[0]))
{
Flag = FileLine[0] - 48;
return true;
}
}
else if(Flag < 0 || Flag > 9)
{
Flag = 0;
}
if(!strncmp(FileLine, "end", 3))
{
Flag = 0;
return true;
}
if(FileLine[0] == '/' || FileLine[0] == '\n')
return true;
for(UINT i = 0; i < strlen(FileLine); i++)
{
if(isalnum(FileLine[i]))
return false;
}
return true;
}
//====================================================
void Q_PGW::Q_Num()
{
for(int i(0);i<1000;i++)
{
Number[i].Mob = 0;
Number[i].Coun = 0;
Number[i].proc = 0;
Number[i].rew = 0;
Number[i].gift = 0;
Number[i].msg[0] = NULL;
Number[i].msg2[0] = NULL;
}
}
void Q_PGW::Q_Load()
{
if(!EnableExQuest)
return;
Q_Num();
FILE *file;
file = fopen("..\\Settings\\ExQuest.ini","r");
if(file == NULL)
{
MessageBoxA(0,"Settings\\ExQuest.ini Load Error","CRITICAL ERROR",0);
ExitProcess(1);
return;
}
char Buff[256];
int Flag = 0;
Count = 0;
while(!feof(file)) // Проверяем есть ли строка в документе
{
fgets(Buff,256,file);//Функция читает текущую строку
if(IsBadFileLine(Buff, Flag)) //Вспомогательная функция
continue;
if(Flag == 1)
{
int n[10];
char mes[100];
char mes2[100];
//gets(mes);
sscanf(Buff,"%d %d %d %d %d \"%[^\"]\" \"%[^\"]\"",&n[0],&n[1],&n[2],&n[3],&n[4],&mes,&mes2);
Number[Count].Mob = n[0];
Number[Count].Coun = n[1];
Number[Count].proc = n[2];
Number[Count].rew = n[3];
Number[Count].gift = n[4];
sprintf(Number[Count].msg,"%s",mes);
sprintf(Number[Count].msg2,"%s",mes2);
Count++;
}
}
fclose(file);
}
void Q_PGW::Q_CreateStruct(int aIndex)
{
if(!EnableExQuest)
return;
OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex); // int Q_PGW_num;
/* Путь великого воина #end */// int Ex_FreePoints;
/* Путь великого воина #kill */// int Q_PGW_kill;
/* Путь великого воина #start */// int Q_PGW_start;
if(!MySQL.Execute("SELECT ExQuest_num FROM Character WHERE Name='%s'",gObj->Name))
{
ErrorConnectDataBase(aIndex);
CriticalExError(aIndex);
return;
}
ExUser[aIndex].ExQuest_num = MySQL.GetInt();
//-------------------------------------------------------------------------
//if(!MySQL.Execute("SELECT ExQuest_kill FROM Character WHERE Name='%s'",gObj->Name))
//{
// ErrorConnectDataBase(aIndex);
// CriticalExError(aIndex);
// return;
//}
//ExUser[aIndex].ExQuest_kill = MySQL.GetInt();
ExUser[aIndex].ExQuest_kill = 0;
//-------------------------------------------------------------------------
if(!MySQL.Execute("SELECT ExQuest_start FROM Character WHERE Name='%s'",gObj->Name))
{
ErrorConnectDataBase(aIndex);
CriticalExError(aIndex);
return;
}
ExUser[aIndex].ExQuest_start = MySQL.GetInt();
//-------------------------------------------------------------------------
if(!MySQL.Execute("SELECT Ex_FreePoints FROM Character WHERE Name='%s'",gObj->Name))
{
ErrorConnectDataBase(aIndex);
CriticalExError(aIndex);
return;
}
ExUser[aIndex].Ex_FreePoints = MySQL.GetInt();
//-------------------------------------------------------------------------
Log.ExQuestLog("[Q_CreateStruct][%s]ExQuest_num: %d,ExQuest_kill: %d,ExQuest_start: %d,Ex_FreePoints: %d",gObj->Name,
ExUser[aIndex].ExQuest_num,ExUser[aIndex].ExQuest_kill,ExUser[aIndex].ExQuest_st
art,ExUser[aIndex].Ex_FreePoints);
}
void Q_PGW::Q_NPC (int aIndex,int aNPC)
{
if(!EnableExQuest)
return;
int ExQNPC = GetPrivateProfileInt("Common","NPC",0,"..\\Settings\\ExQuest.ini");
int ExQNPCM = GetPrivateProfileInt("Common","NPC_Map",0,"..\\Settings\\ExQuest.ini");
int ExQNPCX = GetPrivateProfileInt("Common","NPC_X",0,"..\\Settings\\ExQuest.ini");
int ExQNPCY = GetPrivateProfileInt("Common","NPC_Y",0,"..\\Settings\\ExQuest.ini");
OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
OBJECTSTRUCT *gObjNPC = (OBJECTSTRUCT*) OBJECT_POINTER (aNPC);
//371 120 141
if ((gObjNPC->Class == ExQNPC) && (gObjNPC->MapNumber == ExQNPCM) && (gObjNPC->X == ExQNPCX) && (gObjNPC->Y == ExQNPCY))
{
//MySQL.Execute("SELECT ExQuest_num FROM Character WHERE Name='%s'",gObj->Name);
//int ExQuest_num = MySQL.GetInt();
//Проверяем не закончен ли квест
if(ExUser[aIndex].ExQuest_num < Count)
{
//MySQL.Execute("SELECT ExQuest_start FROM Character WHERE Name='%s'",gObj->Name);
//int ExQuest_start = MySQL.GetInt();
//MySQL.Execute("SELECT ExQuest_kill FROM Character WHERE Name='%s'",gObj->Name);
//int ExQuest_kill = MySQL.GetInt();
//Проверяем начат ли уже квест
if(ExUser[aIndex].ExQuest_start == 0)
{
Log.ExQuestLog("[Q_NPC][%s] Взял задание № %d ",gObj->Name,ExUser[aIndex].ExQuest_num+1);
ChatTargetSendNogs(gObjNPC,"Удачной охоты!",aIndex);
ExUser[aIndex].ExQuest_start = 1;
MySQL.Execute("UPDATE Character SET ExQuest_start = 1 WHERE Name='%s'",gObj->Name);
MessageChat(aIndex,"@[ExQuest] Задание №%d",ExUser[aIndex].ExQuest_num+1);
MessageChat(aIndex,"@[ExQuest] %s",Number[ExUser[aIndex].ExQuest_num].msg);
MessageChat(aIndex,"@[ExQuest] %s [%d/%d]",Number[ExUser[aIndex].ExQuest_num].msg2,ExUser[aIndex].ExQuest_kill,Number
[ExUser[aIndex].ExQuest_num].Coun);
}
//Если квест уже взят
else if (ExUser[aIndex].ExQuest_start == 1)
{
Log.ExQuestLog("[Q_NPC][%s] Если квест уже взят № %d ",gObj->Name,ExUser[aIndex].ExQuest_num+1);
//Если квест выполнен
if(ExUser[aIndex].ExQuest_kill == Number[ExUser[aIndex].ExQuest_num].Coun)
{
int ExQuest_gift = Presents(aIndex,Number[ExUser[aIndex].ExQuest_num].rew,Number[ExUser[aIndex].ExQ
uest_num].gift); //Функция вознаграждения
if(ExQuest_gift == false)
{
ChatTargetSendNogs(gObjNPC,"Освободите место и вернитесь за подарком!",aIndex);
return;
}
ExUser[aIndex].ExQuest_start = 0;
ExUser[aIndex].ExQuest_num++;
ExUser[aIndex].ExQuest_kill = 0;
ChatTargetSendNogs(gObjNPC,"Поздравляю вы выполнили задание!",aIndex);
MySQL.Execute("UPDATE Character SET ExQuest_start = 0 WHERE Name='%s'",gObj->Name);
MySQL.Execute("UPDATE Character SET ExQuest_num = ExQuest_num + 1 WHERE Name='%s'",gObj->Name);
//MySQL.Execute("UPDATE Character SET ExQuest_kill = 0 WHERE Name='%s'",gObj->Name);
if(ExUser[aIndex].ExQuest_num == Count)
MessageChat(aIndex,"@[ExQuest] Finish");
}
//Если квест не выполнен
else
{
ChatTargetSendNogs(gObjNPC,"Ваше задание не закончено!",aIndex);
MessageChat(aIndex,"@[ExQuest] %s",Number[ExUser[aIndex].ExQuest_num].msg);
MessageChat(aIndex,"@[ExQuest] %s [%d/%d]",Number[ExUser[aIndex].ExQuest_num].msg2,ExUser[aIndex].ExQuest_kill,Number
[ExUser[aIndex].ExQuest_num].Coun);
}
}
}
else
{
Log.ExQuestLog("[Q_NPC][%s] Вы выполнили все задания!",gObj->Name);
ChatTargetSendNogs(gObjNPC,"Вы выполнили все задания!",aIndex);
MessageChat(aIndex,"@[ExQuest] Finish");
}
}
}
void Q_PGW::KilledMob(int aIndex)
{
if(!EnableExQuest)
return;
OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
int iRate = rand()%100+1;
//MySQL.Execute("SELECT ExQuest_num FROM Character WHERE Name='%s'",gObj->Name);
//int ExQuest_num = MySQL.GetInt();
if(Number[ExUser[aIndex].ExQuest_num].proc >= iRate)
{
//MySQL.Execute("SELECT ExQuest_kill FROM Character WHERE Name='%s'",gObj->Name);
//int ExQuest_kill = MySQL.GetInt();
if(ExUser[aIndex].ExQuest_kill < Number[ExUser[aIndex].ExQuest_num].Coun)
{
Log.ExQuestLog("[KilledMob][%s] Убил Квестового моба!",gObj->Name);
ExUser[aIndex].ExQuest_kill++;
//MySQL.Execute("UPDATE Character SET ExQuest_kill = ExQuest_kill + 1 WHERE Name='%s'",gObj->Name);
MessageChat(aIndex,"@[ExQuest] %s [%d/%d]",Number[ExUser[aIndex].ExQuest_num].msg2,ExUser[aIndex].ExQuest_kill,Number
[ExUser[aIndex].ExQuest_num].Coun);
if(ExUser[aIndex].ExQuest_kill == Number[ExUser[aIndex].ExQuest_num].Coun)
MessageChat(aIndex,"@[ExQuest] Задание выполнено!");
}
}
}
bool Q_PGW::Presents(int aIndex, int Present, int Gifts)
{
OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
//1- Зен, 2 - Gem, 3 - FreePoints, 4 - Items
Log.ExQuestLog("[Presents][%s] Получил приз: № %d в размере: %d!",gObj->Name,Present,Gifts);
if(Present == 1)
{
if((gObj->Money + Gifts) <= 2000000000)
{
gObj->Money += Gifts;
MessageChat(aIndex,"@[ExQuest] Вознаграждение Zen: %d",Gifts);
GCMoneySend(gObj->m_Index, gObj->Money);
}
else
{
MessageChat(aIndex,"@[ExQuest] Не достаточно места под зен");
return false;
}
}
else if(Present == 2)
{
MySQL.Execute("UPDATE MEMB_INFO SET CashPoint = CashPoint + %d WHERE memb___id='%s'",Gifts,gObj->AccountID);
MessageChat(aIndex,"@[ExQuest] Вознаграждение Gem: %d",Gifts);
}
else if(Present == 3)
{
ExUser[aIndex].Ex_FreePoints += Gifts;
gObj->LevelUpPoint += Gifts;
MySQL.Execute("UPDATE Character SET Ex_FreePoints = Ex_FreePoints + %d WHERE Name='%s'",Gifts,gObj->Name);
MessageChat(aIndex,"@[ExQuest] Вознаграждение Points: %d",Gifts);
LevelUpEffect (aIndex,1);
}
else if(Present == 4)
{
ItemSerialCreateSend(aIndex,gObj->MapNumber,gObj->X,gObj->Y,Gifts,0,0,0,0,0,aIndex,0,0);
MessageChat(aIndex,"@[ExQuest] Вознаграждение Items");
}
Firepatcher(aIndex, gObj->X, gObj->Y);
return true;
}
you cant just copy / paste stuff anywhere, to use that first you either make a connection to sql in your gs or make the dataservers request the data from the db and send it to the gs.
you refer to this?Quote:
I want to add this VISUAL to the server Michi28 Was did it on zteam ex802
This is what i mean this visuals on all mobs and also npc and that gens visual on all maps on character.
http://img506.yukle.tc/thumbs/77112222.png
http://fotos.subefotos.com/0fcffe733...e53f01ff2o.jpg
http://fotos.subefotos.com/9536a87c8...0dda8516ao.jpg
Does anyone know how to fix the extended warehouse full of Kris bug? They keep appearing there even if you took em out.
MHPClient.dll not work from the source!
Exactly that :ott::ott: And also gens Battle map visual for all maps then please share it with me i love you hahahaah
- - - Updated - - -
note: Can you put same effects which is on gens right now to the all npc and guard also pleaseee :PP