Countdown
#81
When i use this. The player don't lose one level only a little bit xp.
cRoot:Get():ForEachPlayer(function(Player)
  	 	Player:DeltaExperience(-cPlayer:XpForLevel(1));
	end)
Reply
Thanks given by:
#82
I'm pretty sure this is because the experience for levels is not linear - try this instead, where currentLevel is the current level of the player.

cRoot:Get():ForEachPlayer(function(Player)
        Player:DeltaExperience(-(cPlayer:XpForLevel(currentLevel) - cPlayer:XpForLevel(currentLevel - 1)));
    end)
Reply
Thanks given by:
#83
(01-16-2014, 12:07 AM)daniel0916 Wrote: 2. How can i copy a folder with lua?

If you still need this. In my new Execute I have 3 example scripts, one off them contains a CopyFolder function.
Reply
Thanks given by:
#84
(01-16-2014, 05:30 AM)STR_Warrior Wrote:
(01-16-2014, 12:07 AM)daniel0916 Wrote: 2. How can i copy a folder with lua?

If you still need this. In my new Execute I have 3 example scripts, one off them contains a CopyFolder function.

Maybe. But i don't think because i can disable chunk saving in the world.ini..
I use the PlayerSpawn Hook and there is:
local onlineplayers = cRoot:Get():GetServer():GetNumPlayers();
0

And i tried to start a new schedule when the old schedule is at 0 but this don't work. MCServer crash without a error..
Reply
Thanks given by:
#85
Okay, i tried it now again but i can't start a new schedule from the end of the old.
MCServer will be cancelled.
The message from ubuntu is in german but translated it should be: Canceled (Written dump)
Reply
Thanks given by:
#86
I think it crashes because the table gets editted while you are proccessing it. You'l have to find a way around it.
Reply
Thanks given by:
#87
I made now 2 tables. It's working but sometimes the first scheduler stops at any time.. But often it's working.
Reply
Thanks given by:
#88
I'm guessing you only changed the OnScheduleTick function. Could I see that code?
Reply
Thanks given by:
#89
(01-17-2014, 02:27 AM)STR_Warrior Wrote: I'm guessing you only changed the OnScheduleTick function. Could I see that code?

I made 2 hooks for Lobby and Start.
Code:
function AddLobbySchedule(Function, Parameters, Ticks)
  table.insert(LobbyScheduleTable, {Function, Parameters, Ticks})
end
 
function OnLobbyScheduleTick(Time)
    for Idx, ScheduleTask in pairs(LobbyScheduleTable) do
        LobbyScheduleTable[Idx][3] = LobbyScheduleTable[Idx][3] - 1 -- Countdown
         
        if ScheduleTask[3] < 1 then
            ScheduleTask[1](ScheduleTask[2])
            LobbyScheduleTable[Idx] = nil
        end
    end
end

function AddStartSchedule(Function, Parameters, Ticks)
  table.insert(StartScheduleTable, {Function, Parameters, Ticks})
end
 
function OnStartScheduleTick(Time)
    for Idx, ScheduleTask in pairs(StartScheduleTable) do
        StartScheduleTable[Idx][3] = StartScheduleTable[Idx][3] - 1 -- Countdown
         
        if ScheduleTask[3] < 1 then
            ScheduleTask[1](ScheduleTask[2])
            StartScheduleTable[Idx] = nil
        end
    end
end

cPluginManager.AddHook(cPluginManager.HOOK_TICK, OnLobbyScheduleTick);
	cPluginManager.AddHook(cPluginManager.HOOK_TICK, OnStartScheduleTick);
Reply
Thanks given by:
#90
But then.. What's the difference? Wink
Reply
Thanks given by:




Users browsing this thread: 3 Guest(s)