removed SpendExperience and changed AddExperience to handle removing Xp
This commit is contained in:
parent
3595392937
commit
b72ced3164
@ -849,7 +849,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
function HandleAddExperience(a_Split, a_Player)
|
function HandleAddExperience(a_Split, a_Player)
|
||||||
a_Player:AddExperience(200);
|
a_Player:DelatExperience(200);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
** Lua binding: AllToLua
|
** Lua binding: AllToLua
|
||||||
** Generated automatically by tolua++-1.0.92 on 11/16/13 21:19:32.
|
** Generated automatically by tolua++-1.0.92 on 11/16/13 21:58:48.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
@ -7684,9 +7684,9 @@ static int tolua_AllToLua_cPlayer_SetCurrentExperience00(lua_State* tolua_S)
|
|||||||
}
|
}
|
||||||
#endif //#ifndef TOLUA_DISABLE
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
/* method: AddExperience of class cPlayer */
|
/* method: DeltaExperience of class cPlayer */
|
||||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cPlayer_AddExperience00
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_cPlayer_DeltaExperience00
|
||||||
static int tolua_AllToLua_cPlayer_AddExperience00(lua_State* tolua_S)
|
static int tolua_AllToLua_cPlayer_DeltaExperience00(lua_State* tolua_S)
|
||||||
{
|
{
|
||||||
#ifndef TOLUA_RELEASE
|
#ifndef TOLUA_RELEASE
|
||||||
tolua_Error tolua_err;
|
tolua_Error tolua_err;
|
||||||
@ -7702,51 +7702,17 @@ static int tolua_AllToLua_cPlayer_AddExperience00(lua_State* tolua_S)
|
|||||||
cPlayer* self = (cPlayer*) tolua_tousertype(tolua_S,1,0);
|
cPlayer* self = (cPlayer*) tolua_tousertype(tolua_S,1,0);
|
||||||
short a_Xp_delta = ((short) tolua_tonumber(tolua_S,2,0));
|
short a_Xp_delta = ((short) tolua_tonumber(tolua_S,2,0));
|
||||||
#ifndef TOLUA_RELEASE
|
#ifndef TOLUA_RELEASE
|
||||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'AddExperience'", NULL);
|
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'DeltaExperience'", NULL);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
short tolua_ret = (short) self->AddExperience(a_Xp_delta);
|
short tolua_ret = (short) self->DeltaExperience(a_Xp_delta);
|
||||||
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
#ifndef TOLUA_RELEASE
|
#ifndef TOLUA_RELEASE
|
||||||
tolua_lerror:
|
tolua_lerror:
|
||||||
tolua_error(tolua_S,"#ferror in function 'AddExperience'.",&tolua_err);
|
tolua_error(tolua_S,"#ferror in function 'DeltaExperience'.",&tolua_err);
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif //#ifndef TOLUA_DISABLE
|
|
||||||
|
|
||||||
/* method: SpendExperience of class cPlayer */
|
|
||||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cPlayer_SpendExperience00
|
|
||||||
static int tolua_AllToLua_cPlayer_SpendExperience00(lua_State* tolua_S)
|
|
||||||
{
|
|
||||||
#ifndef TOLUA_RELEASE
|
|
||||||
tolua_Error tolua_err;
|
|
||||||
if (
|
|
||||||
!tolua_isusertype(tolua_S,1,"cPlayer",0,&tolua_err) ||
|
|
||||||
!tolua_isnumber(tolua_S,2,0,&tolua_err) ||
|
|
||||||
!tolua_isnoobj(tolua_S,3,&tolua_err)
|
|
||||||
)
|
|
||||||
goto tolua_lerror;
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
cPlayer* self = (cPlayer*) tolua_tousertype(tolua_S,1,0);
|
|
||||||
short a_Xp_delta = ((short) tolua_tonumber(tolua_S,2,0));
|
|
||||||
#ifndef TOLUA_RELEASE
|
|
||||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'SpendExperience'", NULL);
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
short tolua_ret = (short) self->SpendExperience(a_Xp_delta);
|
|
||||||
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
#ifndef TOLUA_RELEASE
|
|
||||||
tolua_lerror:
|
|
||||||
tolua_error(tolua_S,"#ferror in function 'SpendExperience'.",&tolua_err);
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -30485,8 +30451,7 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
|
|||||||
tolua_constant(tolua_S,"DROWNING_TICKS",cPlayer::DROWNING_TICKS);
|
tolua_constant(tolua_S,"DROWNING_TICKS",cPlayer::DROWNING_TICKS);
|
||||||
tolua_constant(tolua_S,"MIN_EXPERIENCE",cPlayer::MIN_EXPERIENCE);
|
tolua_constant(tolua_S,"MIN_EXPERIENCE",cPlayer::MIN_EXPERIENCE);
|
||||||
tolua_function(tolua_S,"SetCurrentExperience",tolua_AllToLua_cPlayer_SetCurrentExperience00);
|
tolua_function(tolua_S,"SetCurrentExperience",tolua_AllToLua_cPlayer_SetCurrentExperience00);
|
||||||
tolua_function(tolua_S,"AddExperience",tolua_AllToLua_cPlayer_AddExperience00);
|
tolua_function(tolua_S,"DeltaExperience",tolua_AllToLua_cPlayer_DeltaExperience00);
|
||||||
tolua_function(tolua_S,"SpendExperience",tolua_AllToLua_cPlayer_SpendExperience00);
|
|
||||||
tolua_function(tolua_S,"GetXpLifetimeTotal",tolua_AllToLua_cPlayer_GetXpLifetimeTotal00);
|
tolua_function(tolua_S,"GetXpLifetimeTotal",tolua_AllToLua_cPlayer_GetXpLifetimeTotal00);
|
||||||
tolua_function(tolua_S,"GetCurrentXp",tolua_AllToLua_cPlayer_GetCurrentXp00);
|
tolua_function(tolua_S,"GetCurrentXp",tolua_AllToLua_cPlayer_GetCurrentXp00);
|
||||||
tolua_function(tolua_S,"GetXpLevel",tolua_AllToLua_cPlayer_GetXpLevel00);
|
tolua_function(tolua_S,"GetXpLevel",tolua_AllToLua_cPlayer_GetXpLevel00);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
** Lua binding: AllToLua
|
** Lua binding: AllToLua
|
||||||
** Generated automatically by tolua++-1.0.92 on 11/16/13 21:19:33.
|
** Generated automatically by tolua++-1.0.92 on 11/16/13 21:58:48.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Exported function */
|
/* Exported function */
|
||||||
|
@ -338,7 +338,7 @@ float cPlayer::GetXpPercentage()
|
|||||||
|
|
||||||
bool cPlayer::SetCurrentExperience(short int a_XpTotal)
|
bool cPlayer::SetCurrentExperience(short int a_XpTotal)
|
||||||
{
|
{
|
||||||
if(!(a_XpTotal >= 0) || (a_XpTotal > (SHRT_MAX - m_CurrentXp)))
|
if(!(a_XpTotal >= 0) || (a_XpTotal > (SHRT_MAX - m_LifetimeTotalXp)))
|
||||||
{
|
{
|
||||||
LOGWARNING("Tried to update experiece with an invalid Xp value: %d", a_XpTotal);
|
LOGWARNING("Tried to update experiece with an invalid Xp value: %d", a_XpTotal);
|
||||||
return false; //oops, they gave us a dodgey number
|
return false; //oops, they gave us a dodgey number
|
||||||
@ -356,12 +356,13 @@ bool cPlayer::SetCurrentExperience(short int a_XpTotal)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
short cPlayer::AddExperience(short a_Xp_delta)
|
short cPlayer::DeltaExperience(short a_Xp_delta)
|
||||||
{
|
{
|
||||||
if(a_Xp_delta < 0)
|
//ToDo: figure out a better name?...
|
||||||
|
if(a_Xp_delta > (SHRT_MAX - m_LifetimeTotalXp) || (m_CurrentXp + a_Xp_delta) < MIN_EXPERIENCE)
|
||||||
{
|
{
|
||||||
// Value was negative, abort and report
|
// Value was negative, abort and report
|
||||||
LOGWARNING("Attempt was made to increment Xp by %d, must be positive",
|
LOGWARNING("Attempt was made to increment Xp by %d, which was invalid",
|
||||||
a_Xp_delta);
|
a_Xp_delta);
|
||||||
return -1; // Should we instead just return the current Xp?
|
return -1; // Should we instead just return the current Xp?
|
||||||
}
|
}
|
||||||
@ -369,34 +370,12 @@ short cPlayer::AddExperience(short a_Xp_delta)
|
|||||||
m_CurrentXp += a_Xp_delta;
|
m_CurrentXp += a_Xp_delta;
|
||||||
|
|
||||||
// Update total for score calculation
|
// Update total for score calculation
|
||||||
m_LifetimeTotalXp += a_Xp_delta;
|
if(a_Xp_delta > 0)
|
||||||
|
|
||||||
LOGD("Player \"%s\" earnt %d experience, total is now: %d",
|
|
||||||
m_PlayerName.c_str(), a_Xp_delta, m_XpTotal);
|
|
||||||
|
|
||||||
// Set experience to be updated
|
|
||||||
m_bDirtyExperience = true;
|
|
||||||
|
|
||||||
return m_CurrentXp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
short cPlayer::SpendExperience(short a_Xp_delta)
|
|
||||||
{
|
|
||||||
if(a_Xp_delta < 0)
|
|
||||||
{
|
{
|
||||||
// Value was negative, abort and report
|
m_LifetimeTotalXp += a_Xp_delta;
|
||||||
LOGWARNING("Attempt was made to decrement Xp by %d, must be positive",
|
|
||||||
a_Xp_delta);
|
|
||||||
return -1; // Should we instead just return the current Xp?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_CurrentXp -= a_Xp_delta;
|
LOGD("Player \"%s\" earnt %d experience, total is now: %d",
|
||||||
|
|
||||||
LOGD("Player \"%s\" spent %d experience, total is now: %d",
|
|
||||||
m_PlayerName.c_str(), a_Xp_delta, m_XpTotal);
|
m_PlayerName.c_str(), a_Xp_delta, m_XpTotal);
|
||||||
|
|
||||||
// Set experience to be updated
|
// Set experience to be updated
|
||||||
|
@ -74,13 +74,10 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool SetCurrentExperience(short a_XpTotal);
|
bool SetCurrentExperience(short a_XpTotal);
|
||||||
|
|
||||||
/* Adds Xp, "should" not inc more than MAX_EXPERIENCE_ORB_SIZE unless you're a plugin being funny, *cough* cheating
|
/* changes Xp by Xp_delta, you "shouldn't" not inc more than MAX_EXPERIENCE_ORB_SIZE
|
||||||
Returns the new current experience, -1 on error
|
Returns the new current experience, -1 on error
|
||||||
*/
|
*/
|
||||||
short AddExperience(short a_Xp_delta);
|
short DeltaExperience(short a_Xp_delta);
|
||||||
|
|
||||||
/// "Spend" some experience - ie on enchanting, returns new currentXp
|
|
||||||
short SpendExperience(short a_Xp_delta);
|
|
||||||
|
|
||||||
/// Gets the experience total - XpTotal for score on death
|
/// Gets the experience total - XpTotal for score on death
|
||||||
inline short GetXpLifetimeTotal(void) { return m_LifetimeTotalXp; }
|
inline short GetXpLifetimeTotal(void) { return m_LifetimeTotalXp; }
|
||||||
|
Loading…
Reference in New Issue
Block a user