Difference between revisions of "KarmaSystem"
(→GetKarma) |
(→SetKarma) |
||
Line 97: | Line 97: | ||
=== SetKarma === | === SetKarma === | ||
'' | '' | ||
+ | -- Set a mobiles karma to an exact amount, does not adjust. | ||
+ | -- @param mobile(mobileObj) | ||
+ | -- @param amount(number) The exact number to set their Karma too | ||
+ | -- @return none | ||
+ | function SetKarma(mobile, amount) | ||
+ | if ( mobile == nil ) then | ||
+ | LuaDebugCallStack("[Karma] Nil mobile provided to SetKarma()") | ||
+ | return | ||
+ | end | ||
+ | mobile:SetObjVar("Karma", amount) | ||
+ | end | ||
'' | '' | ||
+ | |||
=== WithinKarmaArea === | === WithinKarmaArea === | ||
'' | '' | ||
'' | '' |
Revision as of 09:14, 27 January 2018
welcome this will discuss the contents of the globals\helpers\conflict.lua this documentation is correct as of version 6.0 PRECB1 Release
Contents
- 1 Karma Functions
- 1.1 AdjustKarma
- 1.2 AlterKarmaAction
- 1.3 CheckKarmaBeneficialAction
- 1.4 CheckKarmaLoot
- 1.5 ColorizeMobileName
- 1.6 ColorizePlayerName
- 1.7 DailyLogin
- 1.8 ExectueKarmaAction
- 1.9 GetKarma
- 1.10 GetKarmaLevel
- 1.11 GetKarmaStringAmount
- 1.12 KarmaPunishAllAggressorsForMurder
- 1.13 SetKarma
- 1.14 WithinKarmaArea
Karma Functions
AdjustKarma
-- Adjust the karma for a mobile, a system message pertaining to the change is sent. -- @param mobile(mobileObj) -- @param amount(number) The amount to adjust by. -- @return none
function AdjustKarma(mobile, amount) if ( amount == 0 or amount == nil ) then return end local karma = GetKarma(mobile) -- cache the karma level so we can check if it changed. local karmaLevel = GetKarmaLevel(karma) karma = math.floor(karma + amount + 0.5) SetKarma(mobile, karma) if ( amount > 0 ) then mobile:SystemMessage("You have gained"..GetKarmaStringAmount(amount).."karma.", "info") else mobile:SystemMessage("You have lost"..GetKarmaStringAmount(math.abs(amount)).."karma.", "info") end if ( karmaLevel.Name ~= GetKarmaLevel(karma).Name ) then -- Karma was changed, update the name and whatever else, maybe a message? mobile:SendMessage("UpdateName") end end
AlterKarmaAction
-- convenience function to alter a karma action's amount before applying it -- @param karmaAction Lua table karma action -- @param newAmount(number) -- @return the altered karma action
function AlterKarmaAction(karmaAction, newAmount) karmaAction = deepcopy(karmaAction) karmaAction.Adjust = newAmount return karmaAction end
CheckKarmaBeneficialAction
CheckKarmaLoot
ColorizeMobileName
ColorizePlayerName
DailyLogin
ExectueKarmaAction
GetKarma
-- Get the Karma for a mobile -- @param mobile(mobileObj) -- @return Amount of Karma the mobile has(number), 0 if Karma is not set
function GetKarma(mobile) if ( mobile == nil ) then LuaDebugCallStack("[Karma] Nil mobile provided to GetKarma()") return end return mobile:GetObjVar("Karma") or 0 end
GetKarmaLevel
GetKarmaStringAmount
KarmaPunishAllAggressorsForMurder
SetKarma
-- Set a mobiles karma to an exact amount, does not adjust. -- @param mobile(mobileObj) -- @param amount(number) The exact number to set their Karma too -- @return none
function SetKarma(mobile, amount) if ( mobile == nil ) then LuaDebugCallStack("[Karma] Nil mobile provided to SetKarma()") return end mobile:SetObjVar("Karma", amount) end
WithinKarmaArea