Countdown - Printable Version +- Cuberite Forum (https://forum.cuberite.org) +-- Forum: Plugins (https://forum.cuberite.org/forum-1.html) +--- Forum: Plugin Discussion (https://forum.cuberite.org/forum-8.html) +--- Thread: Countdown (/thread-1314.html) |
RE: Countdown - daniel0916 - 01-16-2014 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) RE: Countdown - bearbin - 01-16-2014 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) RE: Countdown - NiLSPACE - 01-16-2014 (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. RE: Countdown - daniel0916 - 01-16-2014 (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? 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.. RE: Countdown - daniel0916 - 01-17-2014 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) RE: Countdown - NiLSPACE - 01-17-2014 I think it crashes because the table gets editted while you are proccessing it. You'l have to find a way around it. RE: Countdown - daniel0916 - 01-17-2014 I made now 2 tables. It's working but sometimes the first scheduler stops at any time.. But often it's working. RE: Countdown - NiLSPACE - 01-17-2014 I'm guessing you only changed the OnScheduleTick function. Could I see that code? RE: Countdown - daniel0916 - 01-17-2014 (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); RE: Countdown - NiLSPACE - 01-17-2014 But then.. What's the difference? |