Jump to content
  • Advertisement
Sign in to follow this  
Joshua Kinzel

Trouble Getting .ai File to Function Correctly

This topic is 1000 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

This code is a controller for territory war on my private server but for some reason its not ending or dropping the alliance that is holding it when it start i have been able to get it to end when the time is up but it still will not drop the alliance holding territory when it starts like it should ill post the original code i got with the files then ill post the code ive altered...

 

Original:

 

local starttime={ }
local battletime={ }
local timer={ }
local protect_time=0


function checktimer(index)
    battletime=os.time()-starttime[index]
    if battletime>=timer[index] then
        return true
    else
        return false
    end
end

function starttimer(index,lastfor)
    starttime[index]=os.time()
    timer[index]=lastfor
end

function restarttimer(index)
    starttime[index]=os.time()
end
--211?????212??????,213???????????214?????????,750x2?????751x2????????€?752????????
--21106????????21107????????€?21108????????€?
function Main(ai)
    local id=ai:TemplateID()
    local server=ai:ServerID()
    if id==21106 then
        if server==8 then
            if ai:GetGlobalData(211)>1000 then ai:SetGlobalData(211,1000) end
            if ai:GetGlobalData(211)<0 then ai:SetGlobalData(211,0) end
            ai:SetGlobalData(214,0)
            while 1 do
                local domain        =    ai:GetGlobalData(211)
                local domainmoney    =    ai:GetGlobalData(212)
                local domainbattle    =    ai:GetGlobalData(214)
                local time=os.date("%H:%M")
                if domain<=0 and domainbattle==0 and protect_time<=0 then
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Territory of Gallio Kingdom is open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                elseif domain >= 100000000 and protect_time<=0 then
                    protect_time=4*3600-600               --4??????
                end
                ai:Sleep(15)
                --????????????
                if protect_time>30  then protect_time=protect_time-30 end    --?????????30,???????????0??
                if protect_time==30 then ai:Sleep(30);protect_time=0;ai:SetGlobalData(211,1000);ai:Say("$AThe Territory of Gallio Kingdom is no longer under system protection!") end        --?????????300,??0?????????????????€???000?€???,??????????????
                --18:00????€??20:00??????
                if time=="18:00" and domainbattle==0 and (os.date("%w")=="2" or os.date("%w")=="4" or os.date("%w")=="6" or os.date("%w")=="0")then    --18:00??????????€???????
                    protect_time=0
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Gallio Global Agent has set the Territory open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                elseif time=="20:00" and domainbattle==1 and (os.date("%w")=="2" or os.date("%w")=="4" or os.date("%w")=="6" or os.date("%w")=="0") then        --20:00????€????????????
                    ai:ActiveSpawner(750,false)
                    ai:SetPKRegion(744,false)
                    ai:SetGlobalData(211,2000000000)
                    ai:SetGlobalData(214,0)
                    ai:Say("$AThe Territory War of Gallio Kingdom has been closed by the Local Agent!")
                    ai:TerritoryBattleEnd(2)
                end
                --????????????????????
                if ai:GetOccupyFaction(2)==0 and domainbattle==0 then
                    protect_time=0
                    ai:SetGlobalData(211,0)
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Gallio Global Agent has set the Territory open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                end
                --???????????????
                if time=="08:01" or time=="12:01" or time=="16:01" or time=="20:01" or time=="00:01" then
                    ai:SetGlobalData(213,0)
                end
                --??13?????15,?€??€??4,??000?€??
                local temp1=ai:GetGlobalData(213)
                local temp2=math.floor(temp1/10000)
                if temp1>=40000 then
                    ai:SetGlobalData(215,4)
                else
                    ai:SetGlobalData(215,temp2)
                end
                ai:Sleep(15)
            end
        else
            ai:ActiveSpawner(752,false)
        end
    elseif id==21107 then
        ai:ActiveSpawner(751,false)
        ai:Sleep(5)
        ai:CastSkill(ai:GetSelf(),489,1)
    elseif id==21108 then
        ai:Sleep(590)
        ai:ActiveSpawner(750,false)
    end
end

function OnDeath(ai,idAttacker)
    local id=ai:TemplateID()
    local server=ai:ServerID()
    if id==21107 then
        ai:SetGlobalData(212,0)
        ai:SetGlobalData(213,0)
        ai:ActiveSpawner(751,true)
    elseif id==21108 then
        ai:SetPKRegion(744,false)
        ai:ActiveSpawner(750,false)
        ai:SetGlobalData(211,2000000000)
        ai:SetGlobalData(214,0)
        ai:TerritoryBattleEnd(2)
    end
end

function Battle(ai)
end

function OnReborn(ai)
end

function OnStartCombat(ai)
end

function OnEndCombat(ai)
end

function OnPathEnd(ai,pathid)
end

function OnGreeting(ai,who,faction)
end


function OnSkillAttacked(ai,who,master,skill_id)
end

function OnScriptEvent(aiObj, who, param1, pararm2)
end
 

Altered:

 

local starttime={ }
local battletime={ }
local timer={ }
local protect_time=0


function checktimer(index)
    battletime=os.time()-starttime[index]
    if battletime>=timer[index] then
        return true
    else
        return false
    end
end

function starttimer(index,lastfor)
    starttime[index]=os.time()
    timer[index]=lastfor
end

function restarttimer(index)
    starttime[index]=os.time()
end
--211?????212??????,213???????????214?????????,750x2?????751x2????????€?752????????
--21106????????21107????????€?21108????????€?
function Main(ai)
    local id=ai:TemplateID()
    local server=ai:ServerID()
    if id==21106 then
        if server==8 then
            if ai:GetGlobalData(211)>1000 then ai:SetGlobalData(211,1000) end
            if ai:GetGlobalData(211)<0 then ai:SetGlobalData(211,0) end
            ai:SetGlobalData(214,0)
            while 1 do
                local domain        =    ai:GetGlobalData(211)
                local domainmoney    =    ai:GetGlobalData(212)
                local domainbattle    =    ai:GetGlobalData(214)
                local time=os.date("%H:%M")
                if domain<=0 and domainbattle==0 and protect_time<=0 then
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Territory of Gallio Kingdom is open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                elseif domain >= 100000000 and protect_time<=0 then
                    protect_time=4*3600-600               --4??????
                end
                ai:Sleep(15)
                --????????????
                if protect_time>30  then protect_time=protect_time-30 end    --?????????30,???????????0??
                if protect_time==30 then ai:Sleep(30);protect_time=0;ai:SetGlobalData(211,1000);ai:Say("$AThe Territory of Gallio Kingdom is no longer under system protection!") end        --?????????300,??0?????????????????€???000?€???,??????????????
                --18:00????€??20:00??????
                if time=="18:00" and domainbattle==0 and (os.date("%w")=="2" or os.date("%w")=="4" or os.date("%w")=="6" or os.date("%w")=="0")then    --18:00?????????????????
                    protect_time=0
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Gallio Global Agent has set the Territory open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                elseif time=="20:00" and domainbattle==1 and (os.date("%w")=="2" or os.date("%w")=="4" or os.date("%w")=="6" or os.date("%w")=="0") then        --20:00????€????????????
                    ai:ActiveSpawner(750,false)
                    ai:SetPKRegion(744,false)
                    ai:SetGlobalData(211,0)
                    ai:SetGlobalData(214,0)
                    domainbattle=0
                    ai:Say("$AThe Territory War of Gallio Kingdom has been closed by the Local Agent!")
                    ai:TerritoryBattleEnd(2)
                end
                --????????????????????
                if ai:GetOccupyFaction(2)==0 and domainbattle==0 then
                    protect_time=1
                    ai:SetGlobalData(211,100000000)
                    ai:ActiveSpawner(750,true)
                    ai:Say("$AThe Gallio Global Agent has set the Territory open for a Territory War!")
                    ai:SetGlobalData(214,1)
                    domainbattle=1
                    ai:SetPKRegion(744,true)
                end
                --???????????????
                if time=="08:01" or time=="12:01" or time=="16:01" or time=="20:01" or time=="00:01" then
                    ai:SetGlobalData(213,0)
                end
                --??13?????15,?€??€??4,??000?€??
                local temp1=ai:GetGlobalData(213)
                local temp2=math.floor(temp1/10000)
                if temp1>=40000 then
                    ai:SetGlobalData(215,4)
                else
                    ai:SetGlobalData(215,temp2)
                end
                ai:Sleep(15)
            end
        else
            ai:ActiveSpawner(752,false)
        end
    elseif id==21107 then
        ai:ActiveSpawner(751,false)
        ai:Sleep(5)
        ai:CastSkill(ai:GetSelf(),489,1)
    elseif id==21108 then
        ai:Sleep(590)
        ai:ActiveSpawner(750,false)
    end
end

function OnDeath(ai,idAttacker)
    local id=ai:TemplateID()
    local server=ai:ServerID()
    if id==21107 then
        ai:SetGlobalData(212,0)
        ai:SetGlobalData(213,0)
        ai:ActiveSpawner(751,true)
    elseif id==21108 then
        ai:SetPKRegion(744,false)
        ai:ActiveSpawner(750,false)
        ai:SetGlobalData(211,2000000000)
        ai:SetGlobalData(214,0)
        ai:TerritoryBattleEnd(2)
    end
end

function Battle(ai)
end

function OnReborn(ai)
end

function OnStartCombat(ai)
end

function OnEndCombat(ai)
end

function OnPathEnd(ai,pathid)
end

function OnGreeting(ai,who,faction)
end


function OnSkillAttacked(ai,who,master,skill_id)
end

function OnScriptEvent(aiObj, who, param1, pararm2)
end
 

 

any help would be much appreciated it will end but it dosnt stay ended an also for some reason when it starts it should release the territory holding alliance but it dosnt..

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!