Arcemu 3.3.5 Hilfe bei Lua script

11/23/2013 13:55 nogra2#1
Moin,

habe gestern einen Lua script gefunden der Events startet was ich als ganz nettes Feature fand aber irgendwie will er ingame das event mit #event start
nicht starten weiß da jemand eine lösung?
Code:
if (MapMgr == nil) then return; end

-- Event Befehle --
local Start_Msg			= "#event start"
local End_Msg 			= "#event stop"
local Join_Msg			= "#event"




-- Do not edit below this line --

local EventActive 	= false
local Event2Active 	= false

local EventZone	= {}
local Event2Zone = {}

function OnChat(event, Player, message, type, language)
local players = GetPlayersInWorld()
-- Event System 1 --
	if (message == Start_Msg) then
		if (Player:CanUseCommand("e") == true) then
			if (EventActive == true) then
				Player:SendBroadcastMessage("Du musst das Aktuelle Event schliessen und dann Neu aufmachen um einen Checkpoint zu errichten.")	
				
				
			else
				EventActive = true
				table.insert(EventZone, Player:GetMapId())
				table.insert(EventZone, Player:GetX())
				table.insert(EventZone, Player:GetY())
				table.insert(EventZone, Player:GetZ())
				table.insert(EventZone, Player:GetZoneId())
				for k, v in pairs(players) do
					v:SendAreaTriggerMessage("|cffff0000[Event System]:|cff00FF00 Es wurde ein Event gestartet von |cffff0000"..Player:GetName().."|cff00FF00. Gebe |cffff0000"..Join_Msg.."|cff00FF00 ein um am Event teilzunehmen.")
                                   v:SendBroadcastMessage("|cffff0000[Event System]:|cff00FF00 Es wurde ein Event gestartet von |cffff0000"..Player:GetName().."|cff00FF00. Gebe |cffff0000"..Join_Msg.."|cff00FF00 ein um am Event teilzunehmen.")

				end
			end
		end
	return 0
	end
	
	if (message == End_Msg) then
		if (Player:CanUseCommand("gm") == true) then
			if (EventActive == false) then
				Player:SendBroadcastMessage("|cffff0000[Event System]:|cff00FF00 Es ist im Moment leider kein Event.")
			else
				EventActive = false
				EventZone = {}
				for k, v in pairs (players) do
					v:SendAreaTriggerMessage("|cffff0000[Event System]:|cff00FF00 Das Aktuelle Event wurde von |cffff0000"..Player:GetName().."|cff00FF00 beendet.")
                                   v:SendBroadcastMessage("|cffff0000[Event System]:|cff00FF00 Das Aktuelle Event wurde von |cffff0000"..Player:GetName().."|cff00FF00 beendet.")

				end
			end
else
		end
	return 0
	end
	
	if (message == Join_Msg) then
		if (Player:GetPlayerLevel() >= 1) then
			if (EventActive == true) then
				Player:Teleport(EventZone[1], EventZone[2], EventZone[3], EventZone[4])
			else
				Player:SendBroadcastMessage("Es wird derzeit kein Event gemacht.")
			end
		else 
			Player:SendBroadcastMessage("Du musst Level 80 sein um am Event teilzunehmen.")
		end
	return 0
	end


				if (message == Revive_Msg) then
					player:CastSpell(50768) 
			end
end

RegisterServerHook(16, OnChat)
12/02/2013 13:26 Kaev <3#2
Lösch mal die Zeile "if (Player:CanUseCommand("e") == true) then" sowie das zugehörige "end".
Habe Player:CanUseCommand bis heute noch nicht gebraucht und weiß daher auch nicht so wirklich, was das e als Parameter dort soll. Ich denke einfach mal, dass das false zurück gibt und nicht true.

EDIT: Außerdem fehlt oben Revive_Msg, er fragt also einen nicht vorhandenen Text ab.
Und prüfe mal, ob der Server überhaupt das Script ausführt, indem du z.B. #event stop eingibst.
Dann sollte ja ein Text da sein, falls dies nicht zutrifft, lösche ebenfalls "if (MapMgr == nil) then return; end".

Ist aber alles nur Theorie, kann es gerade nicht testen.

~ Blub0011 / Kaev