-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
PSalazar
Gens Quest Please
I tried some time ago to change the whole quest system to work with lua files like zTeam s6 and original wz gameserver but I had a lot of trouble with it. Then I realized everything already worked fine, it's just that the quest are not added on questinfo.txt and questprogress.txt and I haven't got time o figure out what exactly all the codes are supposed to mean on those files
-
re: [Release] zTeam Season 8 Episode 2 (Source)
anyone have a season 8 episode 3 client working with zteam ??????
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Problem with items Exe
I look the item exe get DC and any DC help but all setting reset
Please Help
https://forum.ragezone.com/cache.php...%2FiFecvw6.png
-
re: [Release] zTeam Season 8 Episode 2 (Source)
@michi28 element as you put all the mob and NPC could pass me the lines
-
re: [Release] zTeam Season 8 Episode 2 (Source)
people have verified this error if you have it.
They create a errtel. and when you believe reloguen have if still the same or are added ranking
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
jackbot
PKReset NPC Source
PKReset.h
Code:
#pragma once// -------------------------------------------------------------------------------
#include "user.h"
// -------------------------------------------------------------------------------
#define MAX_PKCLEAR_ITEM 10
// -------------------------------------------------------------------------------
struct PKCLEAR_ITEM_DATA
{
WORD ID;
BYTE MinLevel;
BYTE MaxLevel;
BYTE MinDur;
BYTE MaxDur;
};
// -------------------------------------------------------------------------------
class PKClear
{
public:
PKClear();
~PKClear();
// ----
void Init();
void Load();
void ReadData(char * File);
// ----
bool SearchItem(LPOBJ lpUser, BYTE QuestItemID);
bool DeleteItem(LPOBJ lpUser, BYTE QuestItemID);
bool CheckReq(LPOBJ lpUser);
// ----
bool Dialog(LPOBJ lpUser, LPOBJ lpNpc);
// ----
private:
WORD m_NpcID;
BYTE m_NpcMap;
BYTE m_NpcX;
BYTE m_NpcY;
BYTE m_ReqPK;
WORD m_ReqLevel;
WORD m_ReqReset;
DWORD m_Cost[4];
PKCLEAR_ITEM_DATA m_ItemData[MAX_PKCLEAR_ITEM];
BYTE m_ItemLoaded;
// ----
}; extern PKClear g_PKClear;
// -------------------------------------------------------------------------------
PKReset.cpp
Code:
#include "StdAfx.h"#include "PKReset.h"
#include "GameMain.h"
#include "..\include\ReadScript.h"
#include "..\common\winutil.h"
#include "logproc.h"
// -------------------------------------------------------------------------------
PKClear g_PKClear;
// -------------------------------------------------------------------------------
PKClear::PKClear()
{
this->Init();
}
// -------------------------------------------------------------------------------
PKClear::~PKClear()
{
}
// -------------------------------------------------------------------------------
void PKClear::Init()
{
this->m_NpcID = -1;
this->m_NpcMap = -1;
this->m_NpcX = 0;
this->m_NpcY = 0;
this->m_ReqPK = 4;
this->m_ReqLevel = 1;
this->m_ReqReset = 0;
this->m_ItemLoaded = 0;
ZeroMemory(this->m_ItemData, sizeof(this->m_ItemData));
ZeroMemory(this->m_Cost, sizeof(this->m_Cost));
}
// -------------------------------------------------------------------------------
void PKClear::Load()
{
this->Init();
this->ReadData(gDirPath.GetNewPath("Custom\\PKClear.txt"));
}
// -------------------------------------------------------------------------------
void PKClear::ReadData(char * File)
{
SMDToken Token;
SMDFile = fopen(File, "r");
// ----
if( !SMDFile )
{
MsgBox("[PKClear] %s file not found", File);
return;
}
// ----
int Category = -1;
// ----
while(true)
{
Token = GetToken();
// ----
if( Token == END )
{
break;
}
// ----
Category = TokenNumber;
// ----
while(true)
{
if( Category == 0 ) //-> NPC
{
Token = GetToken();
// ----
if( !strcmp("end", TokenString) )
{
break;
}
// ----
this->m_NpcID = TokenNumber;
// ----
Token = GetToken();
this->m_NpcMap = TokenNumber;
// ----
Token = GetToken();
this->m_NpcX = TokenNumber;
// ----
Token = GetToken();
this->m_NpcY = TokenNumber;
}
else if( Category == 1 ) //-> Requirements
{
Token = GetToken();
// ----
if( !strcmp("end", TokenString) )
{
break;
}
// ----
this->m_ReqPK = TokenNumber;
// ----
Token = GetToken();
this->m_ReqLevel = TokenNumber;
// ----
Token = GetToken();
this->m_ReqReset = TokenNumber;
}
else if( Category == 2 ) //-> Cost
{
Token = GetToken();
// ----
if( !strcmp("end", TokenString) )
{
break;
}
// ----
this->m_Cost[0] = TokenNumber;
// ----
Token = GetToken();
this->m_Cost[1] = TokenNumber;
// ----
Token = GetToken();
this->m_Cost[2] = TokenNumber;
// ----
Token = GetToken();
this->m_Cost[3] = TokenNumber;
}
else if( Category == 3 ) //-> Item list
{
Token = GetToken();
// ----
if( !strcmp("end", TokenString) )
{
break;
}
// ----
WORD ItemType = TokenNumber;
Token = GetToken();
WORD ItemIndex = TokenNumber;
this->m_ItemData[this->m_ItemLoaded].ID = ITEMGET(ItemType, ItemIndex);
// ----
Token = GetToken();
this->m_ItemData[this->m_ItemLoaded].MinLevel = TokenNumber;
// ----
Token = GetToken();
this->m_ItemData[this->m_ItemLoaded].MaxLevel = TokenNumber;
// ----
Token = GetToken();
this->m_ItemData[this->m_ItemLoaded].MinDur = TokenNumber;
// ----
Token = GetToken();
this->m_ItemData[this->m_ItemLoaded].MaxDur = TokenNumber;
// ----
this->m_ItemLoaded++;
}
}
}
// ----
fclose(SMDFile);
LogAddTD("[PKClear] %s file is loaded (Items: %d)", File, this->m_ItemLoaded);
}
// -------------------------------------------------------------------------------
bool PKClear::SearchItem(LPOBJ lpUser, BYTE QuestItemID)
{
WORD ItemID = this->m_ItemData[QuestItemID].ID;
// ----
for( int i = INVETORY_WEAR_SIZE; i < MAIN_INVENTORY_SIZE; i++ )
{
if( !lpUser->pInventory[i].IsItem() || lpUser->pInventory[i].m_Type != ItemID )
{
continue;
}
// ----
if( lpUser->pInventory[i].m_Level < this->m_ItemData[QuestItemID].MinLevel
|| lpUser->pInventory[i].m_Level > this->m_ItemData[QuestItemID].MaxLevel )
{
continue;
}
// ----
if( lpUser->pInventory[i].m_Durability < (float)this->m_ItemData[QuestItemID].MinDur
|| lpUser->pInventory[i].m_Durability > (float)this->m_ItemData[QuestItemID].MaxDur )
{
continue;
}
// ----
return true;
}
// ----
return false;
}
// -------------------------------------------------------------------------------
bool PKClear::DeleteItem(LPOBJ lpUser, BYTE QuestItemID)
{
WORD ItemID = this->m_ItemData[QuestItemID].ID;
// ----
for( int i = INVETORY_WEAR_SIZE; i < MAIN_INVENTORY_SIZE; i++ )
{
if( !lpUser->pInventory[i].IsItem() || lpUser->pInventory[i].m_Type != ItemID )
{
continue;
}
// ----
if( lpUser->pInventory[i].m_Level < this->m_ItemData[QuestItemID].MinLevel
|| lpUser->pInventory[i].m_Level > this->m_ItemData[QuestItemID].MaxLevel )
{
continue;
}
// ----
if( lpUser->pInventory[i].m_Durability < (float)this->m_ItemData[QuestItemID].MinDur
|| lpUser->pInventory[i].m_Durability > (float)this->m_ItemData[QuestItemID].MaxDur )
{
continue;
}
// ----
gObjInventoryDeleteItem(lpUser->m_Index, i);
GCInventoryItemDeleteSend(lpUser->m_Index, i, 1);
// ----
return true;
}
// ----
return false;
}
// -------------------------------------------------------------------------------
bool PKClear::CheckReq(LPOBJ lpUser)
{
if( lpUser->m_PK_Level <= this->m_ReqPK )
{
GCServerMsgStringSend("Your PK Level is small to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->Level < this->m_ReqLevel )
{
GCServerMsgStringSend("Your Level is small to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->Reset < this->m_ReqReset )
{
GCServerMsgStringSend("Your Reset is small to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->Money < this->m_Cost[0] )
{
GCServerMsgStringSend("You need more Zen to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->GameShop.WCoinC < this->m_Cost[1] )
{
GCServerMsgStringSend("You need more WCoinC to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->GameShop.WCoinP < this->m_Cost[2] )
{
GCServerMsgStringSend("You need more WCoinP to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
if( lpUser->GameShop.GoblinPoint < this->m_Cost[3] )
{
GCServerMsgStringSend("You need more GoblinPoint to PK Clear", lpUser->m_Index, 1);
return false;
}
// ----
for( int i = 0; i < this->m_ItemLoaded; i++ )
{
if( !this->SearchItem(lpUser, i) )
{
GCServerMsgStringSend("You have not required items to PK Clear", lpUser->m_Index, 1);
return false;
}
}
// ----
return true;
}
// -------------------------------------------------------------------------------
bool PKClear::Dialog(LPOBJ lpUser, LPOBJ lpNpc)
{
if( lpNpc->Class != this->m_NpcID
|| lpNpc->MapNumber != this->m_NpcMap
|| lpNpc->X != this->m_NpcX
|| lpNpc->Y != this->m_NpcY )
{
return false;
}
// ----
if( !this->CheckReq(lpUser) )
{
return false;
}
// ----
for( int i = 0; i < this->m_ItemLoaded; i++ )
{
this->DeleteItem(lpUser, i);
}
// ----
lpUser->Money -= this->m_Cost[0];
lpUser->GameShop.WCoinC -= this->m_Cost[1];
lpUser->GameShop.WCoinP -= this->m_Cost[2];
lpUser->GameShop.GoblinPoint -= this->m_Cost[3];
// ----
gGameShop.GDSavePoint(lpUser->m_Index);
GCMoneySend(lpUser->m_Index, lpUser->Money);
// ----
lpUser->m_PK_Count = 0;
lpUser->m_PK_Level = 3;
lpUser->m_PK_Time = 0;
// ----
if( lpUser->PartyNumber >= 0 )
{
gParty.UpdatePKUserInfo(lpUser->PartyNumber, lpUser->m_Index, lpUser->DBNumber, lpUser->m_PK_Level);
gParty.UpdatePKPartyPanalty(lpUser->PartyNumber);
}
// ----
GCPkLevelSend(lpUser->m_Index, lpUser->m_PK_Level);
GCServerMsgStringSend("Your PK status has been reseted", lpUser->m_Index, 1);
return true;
}
// -------------------------------------------------------------------------------
To initiate:
find
g_BuffSkillEffect.Load();
add this below : g_PKClear.Load();
goodluck :)
@jackbot please friend to help me to implement this code in the source, after adding and compile is showing me these errors below:
Quote:
1>PKReset.cpp(252): error C2039: 'Reset' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(264): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(264): error C2228: left of '.WCoinC' must have class/struct/union
1>PKReset.cpp(270): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(270): error C2228: left of '.WCoinP' must have class/struct/union
1>PKReset.cpp(276): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(276): error C2228: left of '.GoblinPoint' must have class/struct/union
1>PKReset.cpp(317): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(317): error C2228: left of '.WCoinC' must have class/struct/union
1>PKReset.cpp(318): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(318): error C2228: left of '.WCoinP' must have class/struct/union
1>PKReset.cpp(319): error C2039: 'GameShop' : is not a member of 'OBJECTSTRUCT'
1> c:\muserver\tuto\um fix na source do michi28\arquivos do michi mais a source dele atual fixada as jewels\zgameserver\gameserver\source\user.h(660) : see declaration of 'OBJECTSTRUCT'
1>PKReset.cpp(319): error C2228: left of '.GoblinPoint' must have class/struct/union
1>PKReset.cpp(321): error C2065: 'gGameShop' : undeclared identifier
1>PKReset.cpp(321): error C2228: left of '.GDSavePoint' must have class/struct/union
1> type is ''unknown-type''
1>PKReset.cpp(330): error C2039: 'UpdatePKUserInfo' : is not a member of 'PartyClass'
https://forum.ragezone.com/cache.php...%2FHi4CWIB.jpg
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Please send me main.exe uncompressed or unpacked? I need to install a new anthack dll.
-
re: [Release] zTeam Season 8 Episode 2 (Source)
how edit item with 2 option + 16option ?
ex: Grand soul + Luck + 16 Option + Damage Decramente + Max Life?
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
not work
Quote:
---------------------------
main.exe - Application Error
---------------------------
The application was unable to start correctly (0xc000007b). Click OK to close the application.
---------------------------
OK
---------------------------
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
rimocchino
not work
you have zclient.dll correct ? dll s8.3 ?
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
you have zclient.dll correct ? dll s8.3 ?
Hi mate, do you have anti-hack on client also server side?
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
MaskARRA
Hi mate, do you have anti-hack on client also server side?
nop, but as the will. as the testing server have what I do not look at the issue of security at least for now
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
nop, but as the will. as the testing server have what I do not look at the issue of security at least for now
well thanks, wanna ask something do you know how to get a WCoinP automatically in 1 Hour after the logout?
I try to modify this in WZ.DISCONNECT_MEMB but not work..
Quote:
USE [MuOnlineAug]
GO
/****** Object: StoredProcedure [dbo].[WZ_DISCONNECT_MEMB] Script Date: 08/06/2015 09:23:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
@memb_guid int
AS
Begin
set nocount on
Declare @find_id varchar(10)
Declare @MemberGuid int
Declare @ConnectStat tinyint
declare @OnlineHours real
declare @WCoinP int
Set @ConnectStat = 0
Set @find_id = 'NOT'
select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id
where I.memb_guid = @memb_guid
if( @find_id <> 'NOT' )
begin
SELECT @WCoinP= WCoinP FROM GameShop_Data where MemberGuid = @memb_guid
update MEMB_STAT set ConnectStat = @ConnectStat, DisConnectTM = getdate(), OnlineHours = @OnlineHours/10+(DATEDIFF(mi,ConnectTM,getdate()))
where memb___id = @memb_guid
SELECT @OnlineHours = OnlineHours FROM MEMB_STAT WHERE memb___id = @memb_guid
UPDATE [dbo].[GameShop_Data]
SET WCoinP=(@OnlineHours * 10)
WHERE MemberGuid = @memb_guid
end
end
This is my GameShop_Data
http://i.imgur.com/oTI400Z.jpg
This is my MEMB_STAT I added OnlineHours on column but not work.
http://i.imgur.com/o33b33T.jpg
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
MaskARRA
you say to RECEIVE wcoin every 1 hour?
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
you say to RECEIVE wcoin every 1 hour?
exactly mate..
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
MaskARRA
exactly mate..
why not try to script the webeffect .. configure to change wcoin hours online and ready
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
why not try to script the webeffect .. configure to change wcoin hours online and ready
I dont have Idea mate, well thank you.. :)
-
re: [Release] zTeam Season 8 Episode 2 (Source)
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
PSalazar
pentagrams & ertels can make by sql sript.,PSalazar mate how did you enable new pets? hope you can share you server files + client :8:
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
PSalazar
que bien. me alegro. che como pudiste ver el pet muun usandolo como pets normal. ya que yo intente agregarlo pero al colocarlo no se visualiza en el piso el feo del pet xd
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
que bien. me alegro. che como pudiste ver el pet muun usandolo como pets normal. ya que yo intente agregarlo pero al colocarlo no se visualiza en el piso el feo del pet xd
@michi28 Bueno olvide ese punto solo es el pet unicor le cambie la .bmd :D espero no me odien por eso jejeje
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
PSalazar
@
michi28 Bueno olvide ese punto solo es el pet unicor le cambie la .bmd :D espero no me odien por eso jejeje
ajajaja sorete -_- xD che y como solucionaste lo de los rank option? o mas bien como se suben tmb xd
-
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
michi28
you have zclient.dll correct ? dll s8.3 ?
no, I tried with zClient built from this share source
Quote:
Originally Posted by
PSalazar
you made it by command or ?
-
re: [Release] zTeam Season 8 Episode 2 (Source)
@michi28 con el mu market los subi >.<
-
1 Attachment(s)
re: [Release] zTeam Season 8 Episode 2 (Source)
Has anyone expanded the inventory? What the devil is this bug?
Attachment 152930