[HELP]Gold/Lumber Rate
Posted: June 9th, 2013, 6:51 pm
How to make custom commands to set gold/lumber rate for player?
I create one integer variable with name Gold_Check then I set Gold_Check[triggerplayer...]=triggerplayer... current gold. As you said make trigger running everytime, I don't know what events I should choose. If I choose event every seconds, it's can't be use with triggerplayer.haxorico wrote:Ill explain the way I made for gold rate and you can mske it into lumber.
Make an integer variable holding the current amount of gold (make sn array if you want it for more than one player)
Make a trigger running everytime the gold amount changes.
Compare the new gold amount to the old gold amount.
If you see the gold increased, add more gold to the triggering player.
Make sure you disable the trigger before you add the gold so the trigger won't run infinitely. And turn it on when it's finished.
Code: Select all
globals
integer array VmFai
trigger array u7g_tmTp7
endglobals
function GoldConD takes player u7g_pp9,integer u7g_ii7,integer u7g_ss9 returns nothing
local integer u7g_ft7=VmFai[u7g_ii7+55]*(u7g_ss9-VmFai[u7g_ii7+79])
local integer u7g_goldwhee=u7g_ss9+u7g_ft7*3/20
call SetPlayerState(u7g_pp9,PLAYER_STATE_RESOURCE_GOLD,u7g_goldwhee)
endfunction
function Sg_Gold_hi7 takes nothing returns boolean
local playerstate u7g_bb9=PLAYER_STATE_RESOURCE_GOLD
local player u7g_pp9=GetTriggerPlayer()
local integer u7g_ii7=GetPlayerId(u7g_pp9)
local integer u7g_ss9=GetPlayerState(u7g_pp9,u7g_bb9)
if u7g_ss9>VmFai[u7g_ii7+79]then
if u7g_ss9-VmFai[u7g_ii7+79]>1then
call DisableTrigger(GetTriggeringTrigger())
call GoldConD(u7g_pp9,u7g_ii7,u7g_ss9)
set u7g_ss9=GetPlayerState(u7g_pp9,u7g_bb9)
call EnableTrigger(GetTriggeringTrigger())
endif
endif
set VmFai[u7g_ii7+79]=u7g_ss9
set u7g_pp9=null
set u7g_bb9=null
return false
endfunction
function Sg_Gold_Selection_Actions takes nothing returns nothing
local integer u7g_id5=GetPlayerId(GetTriggerPlayer())+48
local integer u7g_mnG=13
loop
exitwhen u7g_mnG>17
set u7g_tmTp7[u7g_id5]=CreateTrigger()
call TriggerAddCondition(u7g_tmTp7[u7g_id5],Condition(function Sg_Gold_hi7))
set VmFai[GetPlayerId(GetTriggerPlayer())+79]=GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)
call TriggerRegisterPlayerStateEvent(u7g_tmTp7[u7g_id5],GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD,GREATER_THAN_OR_EQUAL,0)
set VmFai[GetPlayerId(GetTriggerPlayer())+55]=u7g_mnG-12
set u7g_mnG=u7g_mnG+1
endloop
endfunction
Code: Select all
tag
B) Reading from sgguy cp (and fai) is rather difficult for me as the variables have weird names so I will need to get home to read it properly.