Difference between revisions of "KarmaSystem"

From Legends of Aria Admin and Modding Wiki
Jump to: navigation, search
(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 

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