From 03e29802cdde309f3734ab7b6dd17ab60b9a359f Mon Sep 17 00:00:00 2001 From: "nielsbreu@gmail.com" Date: Sun, 24 Mar 2013 15:44:44 +0000 Subject: Updated core plugin. Added limited world. Configurable through webadmin. Added a Manage server page in webadmin where you can reload/restart/stop the server. You can add players to groups with the webadmin. without the player have to relog first You can change someone's group in-game with a command, without the player have to relog first Hardcore mode Improved death messages git-svn-id: http://mc-server.googlecode.com/svn/trunk@1306 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- MCServer/Plugins/Core/onkilling.lua | 99 ++++++++++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 18 deletions(-) (limited to 'MCServer/Plugins/Core/onkilling.lua') diff --git a/MCServer/Plugins/Core/onkilling.lua b/MCServer/Plugins/Core/onkilling.lua index 19bf0ea9d..b3361355f 100644 --- a/MCServer/Plugins/Core/onkilling.lua +++ b/MCServer/Plugins/Core/onkilling.lua @@ -1,24 +1,87 @@ function OnKilling(Victim, Killer) - if (Killer == nil) then - local KilledPlayer = tolua.cast(Victim, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false + if Victim:IsPlayer() == true then + Server = cRoot:Get():GetServer() + if Killer == nil then + if Victim:IsOnFire() then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " burned away." ) + CheckHardcore(Victim) + return false + end + if Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 10 or Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 11 then + Server:SendMessage( cChatColor.Red .. Victim:GetName() .. " tried to swim in lava" ) + CheckHardcore(Victim) + return false + end + else + if Killer:IsPlayer() == true then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by " .. Killer:GetName() ) + CheckHardcore(Victim) + return false + elseif Killer:IsMob() == true then + if Killer:IsA("cZombie") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is eaten by a zombie") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cSkeleton") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a skeleton" ) + CheckHardcore(Victim) + return false + elseif Killer:IsA("cCreeper") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a creeper") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cSpider") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a spider") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cCaveSpider") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a cavespider") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cBlaze") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a blaze") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cEnderman") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is slain by a enderman") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cSilverfish") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a silverfish") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cSlime") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a slime") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cWitch") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a witch") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cZombiepigman") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is slain by a zombiepigman") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cMagmacube") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a magmacube") + CheckHardcore(Victim) + return false + elseif Killer:IsA("cWolf") then + Server:SendMessage( cChatColor.Red .. "Player " .. Victim:GetName() .. " is killed by a wolf") + CheckHardcore(Victim) + return false + end + end end + Server:SendMessage( cChatColor.Red .. Victim:GetName() .. " Died") + end +end - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " died" ) - else - local KilledPlayer = tolua.cast(Victim, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false - end - local KillerPlayer = tolua.cast(Killer, "cPlayer") - if( not KillerPlayer:IsA("cPlayer") or KillerPlayer == nil ) then - return false +function CheckHardcore(Victim) + if HardCore == "true" then + if Victim:IsPlayer() == true then + local KilledPlayer = tolua.cast(Victim, "cPlayer") + BanPlayer(KilledPlayer:GetName(), "You Died") end - - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " was killed by " .. KillerPlayer:GetName() .. "!" ) end - return false end \ No newline at end of file -- cgit v1.2.3