• This is a read only backup of the old Emudevs forum. If you want to have anything removed, please message me on Discord: KittyKaev

[SOLVED] trying to add patches get this error

Status
Not open for further replies.

Shaorin

Respected Member
ok. this is for my 4 years old core so KEEP that in mind^^ they scripted diff back then:

error:
"C:\Program Files (x86)\Git\bin\git.exe" am --3way --signoff "E:/BotCore-master/Latest_Patches/VIPS_accounts.patch"
Patch format detection failed.
Done

patch:
# User M.hack3r@yahoo.com
# Date 1303860119 -14400
# Node ID a7316466a49285bdcf6a36f89e5055a080f1b204
# Parent d4cdfd0078ddb4e42d12034048b6d7166537b473

diff -r d4cdfd0078dd -r a7316466a492 sql/extras/auth_VIPAccount.sql
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sql/extras/auth_VIPAccount.sql Wed Apr 27 03:21:59 2011 +0400
@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS `account_premium` (
+ `id` int(11) NOT NULL default '0' COMMENT 'Account id',
+ `setdate` bigint(40) NOT NULL default '0',
+ `unsetdate` bigint(40) NOT NULL default '0',
+ `premium_type` tinyint(4) unsigned NOT NULL default '1',
+ `active` tinyint(4) NOT NULL default '1',
+ PRIMARY KEY (`id`,`setdate`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Premium Accounts';
\ No newline at end of file
diff -r d4cdfd0078dd -r a7316466a492 src/server/authserver/Server/AuthSocket.cpp
--- a/src/server/authserver/Server/AuthSocket.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/authserver/Server/AuthSocket.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -349,6 +349,9 @@
// Verify that this IP is not in the ip_banned table
LoginDatabase.Execute(LoginDatabase.GetPreparedStatement(LOGIN_SET_EXPIREDIPBANS));

+ LoginDatabase.Execute(
+ LoginDatabase.GetPreparedStatement(LOGIN_SET_ACCOUNT_PREMIUM)
+ );
const std::string& ip_address = socket().get_remote_address();
PreparedStatement *stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_IPBANNED);
stmt->setString(0, ip_address);
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/Entities/Player/Player.cpp
--- a/src/server/game/Entities/Player/Player.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/Entities/Player/Player.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -7125,7 +7125,8 @@
{
XP = uint32(sObjectMgr->GetBaseXP(p->area_level)*sWorld->getRate(RATE_XP_EXPLORE));
}
-
+ if(GetSession()->IsPremium())
+ XP *= sWorld->getRate(RATE_XP_EXPLORE_PREMIUM);
GiveXP(XP, NULL);
SendExplorationExperience(area,XP);
}
@@ -15195,6 +15196,9 @@
for (Unit::AuraEffectList::const_iterator i = ModXPPctAuras.begin(); i != ModXPPctAuras.end(); ++i)
AddPctN(XP, (*i)->GetAmount());

+ if (GetSession()->IsPremium())
+ XP *= sWorld->getRate(RATE_XP_QUEST_PREMIUM);
+
int32 moneyRew = 0;
if (getLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
GiveXP(XP, NULL);
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/Miscellaneous/Formulas.h
--- a/src/server/game/Miscellaneous/Formulas.h Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/Miscellaneous/Formulas.h Wed Apr 27 03:21:59 2011 +0400
@@ -178,7 +178,9 @@
gain *= 2;
}

- gain = uint32(gain * sWorld->getRate(RATE_XP_KILL));
+ float premium_rate = pl->GetSession()->IsPremium() ? sWorld->getRate(RATE_XP_KILL_PREMIUM) : 1.0f;
+
+ return uint32(gain*sWorld->getRate(RATE_XP_KILL)*premium_rate);
}

sScriptMgr->OnGainCalculation(gain, pl, u);
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/Server/WorldSession.cpp
--- a/src/server/game/Server/WorldSession.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/Server/WorldSession.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -88,9 +88,9 @@
}

/// WorldSession constructor
-WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter):
+WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, bool ispremium, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter):
m_muteTime(mute_time), m_timeOutTime(0), _player(NULL), m_Socket(sock),
-_security(sec), _accountId(id), m_expansion(expansion), _logoutTime(0),
+_security(sec), _ispremium(ispremium), _accountId(id), m_expansion(expansion), _logoutTime(0),
m_inQueue(false), m_playerLoading(false), m_playerLogout(false),
m_playerRecentlyLogout(false), m_playerSave(false),
m_sessionDbcLocale(sWorld->GetAvailableDbcLocale(locale)),
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/Server/WorldSession.h
--- a/src/server/game/Server/WorldSession.h Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/Server/WorldSession.h Wed Apr 27 03:21:59 2011 +0400
@@ -182,7 +182,7 @@
{
friend class CharacterHandler;
public:
- WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter);
+ WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, bool ispremium, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter);
~WorldSession();
//Playerbot mod
void AddPlayerBot(uint64 guid);
@@ -217,6 +217,7 @@
void SendClientCacheVersion(uint32 version);

AccountTypes GetSecurity() const { return _security; }
+ bool IsPremium() const { return _ispremium; }
uint32 GetAccountId() const { return _accountId; }
Player* GetPlayer() const { return _player; }
char const* GetPlayerName() const;
@@ -909,6 +910,7 @@
AccountTypes _security;
uint32 _accountId;
uint8 m_expansion;
+ bool _ispremium;

time_t _logoutTime;
bool m_inQueue; // session wait in auth.queue
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/Server/WorldSocket.cpp
--- a/src/server/game/Server/WorldSocket.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/Server/WorldSocket.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -777,6 +777,7 @@
//uint8 expansion = 0;
LocaleConstant locale;
std::string account;
+ bool isPremium = false;
SHA1Hash sha1;
BigNumber v, s, g, N;
WorldPacket packet, SendAddonPacked;
@@ -932,6 +933,16 @@
return -1;
}

+ QueryResult premresult =
+ LoginDatabase.PQuery ("SELECT 1 "
+ "FROM account_premium "
+ "WHERE id = '%u' "
+ "AND active = 1",
+ id);
+ if (premresult) // if account premium
+ {
+ isPremium = true;
+ }
// Check locked state for server
AccountTypes allowedAccountType = sWorld->GetPlayerSecurityLimit();
sLog->outDebug(LOG_FILTER_NETWORKIO, "Allowed Level: %u Player Level %u", allowedAccountType, AccountTypes(security));
@@ -987,7 +998,7 @@
safe_account.c_str());

// NOTE ATM the socket is single-threaded, have this in mind ...
- ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale, recruiter), -1);
+ ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), isPremium, expansion, mutetime, locale, recruiter), -1);

m_Crypt.Init(&K);

diff -r d4cdfd0078dd -r a7316466a492 src/server/game/World/World.cpp
--- a/src/server/game/World/World.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/World/World.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -452,9 +452,13 @@
rate_values[RATE_DROP_ITEM_REFERENCED] = sConfig->GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f);
rate_values[RATE_DROP_ITEM_REFERENCED_AMOUNT] = sConfig->GetFloatDefault("Rate.Drop.Item.ReferencedAmount", 1.0f);
rate_values[RATE_DROP_MONEY] = sConfig->GetFloatDefault("Rate.Drop.Money", 1.0f);
- rate_values[RATE_XP_KILL] = sConfig->GetFloatDefault("Rate.XP.Kill", 1.0f);
- rate_values[RATE_XP_QUEST] = sConfig->GetFloatDefault("Rate.XP.Quest", 1.0f);
- rate_values[RATE_XP_EXPLORE] = sConfig->GetFloatDefault("Rate.XP.Explore", 1.0f);
+ rate_values[RATE_XP_KILL] = sConfig->GetFloatDefault("Rate.XP.Kill", 1.0f);
+ rate_values[RATE_XP_KILL_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Kill.Premium", 1.0f);
+ rate_values[RATE_XP_QUEST] = sConfig->GetFloatDefault("Rate.XP.Quest", 1.0f);
+ rate_values[RATE_XP_QUEST_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Quest.Premium", 1.0f);
+ rate_values[RATE_XP_EXPLORE] = sConfig->GetFloatDefault("Rate.XP.Explore", 1.0f);
+ rate_values[RATE_XP_EXPLORE_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Explore.Premium", 1.0f);
+
rate_values[RATE_REPAIRCOST] = sConfig->GetFloatDefault("Rate.RepairCost", 1.0f);
if (rate_values[RATE_REPAIRCOST] < 0.0f)
{
diff -r d4cdfd0078dd -r a7316466a492 src/server/game/World/World.h
--- a/src/server/game/World/World.h Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/game/World/World.h Wed Apr 27 03:21:59 2011 +0400
@@ -333,8 +333,11 @@
RATE_DROP_ITEM_REFERENCED_AMOUNT,
RATE_DROP_MONEY,
RATE_XP_KILL,
+ RATE_XP_KILL_PREMIUM,
RATE_XP_QUEST,
+ RATE_XP_QUEST_PREMIUM,
RATE_XP_EXPLORE,
+ RATE_XP_EXPLORE_PREMIUM,
RATE_REPAIRCOST,
RATE_REPUTATION_GAIN,
RATE_REPUTATION_LOWLEVEL_KILL,
diff -r d4cdfd0078dd -r a7316466a492 src/server/shared/Database/Implementation/LoginDatabase.cpp
--- a/src/server/shared/Database/Implementation/LoginDatabase.cpp Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/shared/Database/Implementation/LoginDatabase.cpp Wed Apr 27 03:21:59 2011 +0400
@@ -42,4 +42,5 @@
PREPARE_STATEMENT(LOGIN_SET_IP_NOT_BANNED, "DELETE FROM ip_banned WHERE ip = ?", CONNECTION_ASYNC)
PREPARE_STATEMENT(LOGIN_SET_ACCOUNT_BANNED, "INSERT INTO account_banned VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, ?, ?, 1)", CONNECTION_ASYNC)
PREPARE_STATEMENT(LOGIN_SET_ACCOUNT_NOT_BANNED, "UPDATE account_banned SET active = 0 WHERE id = ? AND active != 0", CONNECTION_ASYNC)
+ PREPARE_STATEMENT(LOGIN_SET_ACCOUNT_PREMIUM, "UPDATE account_premium SET active = 0 WHERE unsetdate<=UNIX_TIMESTAMP() AND unsetdate<>setdate", CONNECTION_ASYNC)
}
diff -r d4cdfd0078dd -r a7316466a492 src/server/shared/Database/Implementation/LoginDatabase.h
--- a/src/server/shared/Database/Implementation/LoginDatabase.h Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/shared/Database/Implementation/LoginDatabase.h Wed Apr 27 03:21:59 2011 +0400
@@ -62,6 +62,7 @@
LOGIN_SET_IP_NOT_BANNED,
LOGIN_SET_ACCOUNT_BANNED,
LOGIN_SET_ACCOUNT_NOT_BANNED,
+ LOGIN_SET_ACCOUNT_PREMIUM,

MAX_LOGINDATABASE_STATEMENTS,
};
diff -r d4cdfd0078dd -r a7316466a492 src/server/worldserver/worldserver.conf.dist
--- a/src/server/worldserver/worldserver.conf.dist Wed Apr 27 02:46:43 2011 +0400
+++ b/src/server/worldserver/worldserver.conf.dist Wed Apr 27 03:21:59 2011 +0400
@@ -2232,10 +2232,18 @@
# Default: 1 - (Rate.XP.Kill)
# 1 - (Rate.XP.Quest)
# 1 - ( Rate.XP.Explore)
+# Rate.XP.Kill.Premium
+# Rate.XP.Quest.Premium
+# Rate.XP.Explore.Premium
+# XP rates Premium modifier
+# Default: 1

Rate.XP.Kill = 1
Rate.XP.Quest = 1
Rate.XP.Explore = 1
+Rate.XP.Kill.Premium = 1
+Rate.XP.Quest.Premium = 1
+Rate.XP.Explore.Premium = 1

#
# Rate.RepairCost
 

Tommy

Founder
You'll have to do it manually. I'll work with what I have because I don't have a 4 year old emulator source. I'll tell you where to add everything:

READ CAREFULLY!

Table query:

Code:
CREATE TABLE IF NOT EXISTS `account_premium` (
 `id` int(11) NOT NULL default '0' COMMENT 'Account id',
 `setdate` bigint(40) NOT NULL default '0',
 `unsetdate` bigint(40) NOT NULL default '0',
 `premium_type` tinyint(4) unsigned NOT NULL default '1',
 `active` tinyint(4) NOT NULL default '1',
 PRIMARY KEY (`id`,`setdate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Premium Accounts';

Inside of your worldserver.conf put this in it:

Code:
Rate.XP.Kill.Premium = 1
Rate.XP.Quest.Premium = 1
Rate.XP.Explore.Premium = 1

Inside of World.h, add:

Code:
   RATE_XP_KILL_PREMIUM,
   RATE_XP_QUEST_PREMIUM,
   RATE_XP_EXPLORE_PREMIUM,

in "enum Rates" above "MAX_RATES".

Inside of World.cpp, on line 452 add:

Code:
   rate_values[RATE_XP_KILL_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Kill.Premium", 1.0f);
   rate_values[RATE_XP_QUEST_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Quest.Premium", 1.0f);
   rate_values[RATE_XP_EXPLORE_PREMIUM] = sConfig->GetFloatDefault("Rate.XP.Explore.Premium", 1.0f);
Inside of /src/server/shared/Database/Implementation/LoginDatabase.h, above "MAX_LOGINDATABASE_STATEMENTS", add:

Code:
LOGIN_SET_ACCOUNT_PREMIUM,

Inside of /src/server/shared/Database/Implementation/LoginDatabase.cpp, add:

Code:
PREPARE_STATEMENT(LOGIN_SET_ACCOUNT_PREMIUM, "UPDATE account_premium SET active = 0 WHERE unsetdate<=UNIX_TIMESTAMP() AND unsetdate<>setdate", CONNECTION_ASYNC)

Inside of src/server/authserver/Server/AuthSocket.cpp, search for "// Verify that this IP is not in the ip_banned table". Below that add:

Code:
LoginDatabase.Execute(LoginDatabase.GetPreparedStatement(LOGIN_SET_ACCOUNT_PREMIUM));

Inside of Player.cpp, on line 7125 above "GiveXP(XP, NULL);", add:

Code:
if(GetSession()->IsPremium())
    XP *= sWorld->getRate(RATE_XP_EXPLORE_PREMIUM);

Inside of Player.cpp, on line 15196 add:

Code:
    if (GetSession()->IsPremium())
        XP *= sWorld->getRate(RATE_XP_QUEST_PREMIUM);

Inside of WorldSocket.cpp, on line 777 add:

Code:
bool isPremium = false;

Inside of WorldSocket.cpp, on line 933 add:

Code:
   QueryResult premresult = LoginDatabase.PQuery ("SELECT 1 FROM account_premium WHERE id = '%u' AND active = 1", id);
   if (premresult) // if account premium
       isPremium = true;

Inside of WorldSocket.cpp, on line 998, replace:

Code:
ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale, recruiter), -1);

with:

Code:
ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), isPremium, expansion, mutetime, locale, recruiter), -1);
 
Status
Not open for further replies.
Top