Try to find the serial jumping https://forum.ragezone.com/cache.php...%2F2ut6l4g.jpgbut I still look the same where vercion that 's my game server I can not help me test
Printable View
Try to find the serial jumping https://forum.ragezone.com/cache.php...%2F2ut6l4g.jpgbut I still look the same where vercion that 's my game server I can not help me test
where did u guys find a working s8.3 main? can you direct me to that pls?
@ftewegw1 Those are S8.2 mains.
S8.3 won't work. Webzentards changed opcodes again. It's not worth it to decrypt and re-do most of the stuff as the update features 0 new features apart from icon changes and mu bot interface updates.
@michi28 you could tell me how to remove this trait?
http://i.imgur.com/kdqy43F.jpg
Haven't looked at the code that well yet. Still waiting for ftewegw1 to setup a repo.
If anyone else is interested in collaborating on a public repository and contributing fixes (even the tiny ones help), message me @ Skype (Wortexqq)
To get WcoinP when sell the jewelry to the shop?..
What should I do coding?
PKReset NPC Source
PKReset.h
PKReset.cppCode:#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;
// -------------------------------------------------------------------------------
To initiate: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;
}
// -------------------------------------------------------------------------------
find g_BuffSkillEffect.Load();
add this below : g_PKClear.Load();
goodluck :)
@jackbot Use message box style for those messages
Equals this in Ex7+ styleCode:if( !this->SearchItem(lpUser, i) )
{
GCServerMsgStringSend("You have not required items to PK Clear", lpUser->m_Index, 1);
return false;
}
Code:if( !this->SearchItem(lpUser, i) )
{
this->GC_MessageBox(lpUser, "You have not required items to PK Clear");
return false;
}
https://forum.ragezone.com/attachmen...d=152901&stc=1
https://forum.ragezone.com/attachmen...d=152902&stc=1
Jewels Of Bless Full Work :)
the last source of michi28 of this post:
https://forum.ragezone.com/f197/ztea...9/#post8470879
with none of jevels can not lift ITEM ...
where I remove the limit pk thanx
Hello friend, just a doubt need to compile the files?
https://uploaddeimagens.com.br/imagens/ggg-jpg--29
I do not understand C ++, you would not have to share your files? I thank you.
- - - Updated - - -
[QUOTE=michi28;8470879]here I share zgs sources and gs compiled but the folder Exdata
Link: zGameServer
- - - Updated - - -
Hello friend, I follow the post repack season 8+ sources, would have as you pass me your folder MuServer? Now the possible fix???
Sorry for the English, I thank you, hug
[QUOTE=sokabenga;8472107]Hello friend, just a doubt need to compile the files?
https://forum.ragezone.com/cache.php...%2Fggg-jpg--29
I do not understand C ++, you would not have to share your files? I thank you.
- - - Updated - - -
I compiled to just those files and jevels not work ... I did not know much about c ++ .... there somewhere error which I can not find ...
I think it got a little old source where jevels work and somewhere to fix elementalsystem only it did not work options of Ertel from rank 2 to rank 5, they can not rise to lvl 10 ..
Michi mail any communicator ? somethink ?
- - - Updated - - -
Michi28 Mail, or somethink to can speak phone or whatup app