ArcEmu: Duel Lua Script - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1

Duel Lua Script

#1 User is offline   jfrantz 

  • Newbie
  • Group: Members
  • Posts: 2
  • Joined: 01-May 11
  • Gender:Male
  • Location:North Carolina
  • Server OS:Linux

Posted 29 April 2013 - 04:37 PM

Hello all, I am not a very avid LUA scripter but I am working on a lua script that when you start a duel, it makes your health 100%. When I launched my server it says...

[04-29-2013][17:08][Arcemu]LuaEngine: scripts/duel.lua failed.(could not run)


Here is the code of my script...

wombat = player:GetDuelState()
if wombat == 1 then
function SetHealth (pUnit, Event)
pUnit:SetHealthPct(100)
end
end



Any help appreciated.
0

#2 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 29 April 2013 - 09:17 PM

Your script seems syntactically wrong to me, and also you haven't registered to any event.
I suggest you read a Lua book, and then look for examples on the wiki.
"The demand for free goods is infinite."
0

#3 User is offline   Satanail 

  • Enthusiast
  • PipPipPip
  • Group: Members
  • Posts: 150
  • Joined: 11-March 12
  • Gender:Male
  • Location:Absurdistan
  • Server OS:Windows

Posted 30 April 2013 - 03:28 PM

You return the duel state with player: "wombat = player:GetDuelState()" but then you try to set the health percent for some pUnit: "pUnit:SetHealthPct(100)". There is no need to have a second function in your script (at least i think you have a second function this piece of code is in right?) I have something similar might help you achieve what you want:
local RES_AURA = 70108
local POWER_TYPE_MANA = 0
local POWER_TYPE_FOCUS = 2
local POWER_TYPE_ENERGY = 3

function OnLoadArbiter(pGameObject)
pGameObject:RegisterAIUpdateEvent(1000)
end

function AIUpdate(pGameObject)
if(pGameObject == nil)then
	pGameObject:RemoveAIUpdateEvent()
end
for k,v in pairs(pGameObject:GetInRangePlayers())do
	wombat = v:GetDuelState()
	if(wombat == 1 and not v:HasAura(RES_AURA) and v:IsAlive())then
		v:SetHealthPct(100)
		if(v:GetPowerType(POWER_TYPE_MANA))then
			local MAXMANA = v:GetMaxPower(0)
			v:SetPower(MAXMANA, 0)
		end
		if(v:GetPowerType(POWER_TYPE_ENERGY))then
			local MAXENERGY = v:GetMaxPower(0)
			v:SetPower(MAXENERGY, 0)
		end
		if(v:GetPowerType(POWER_TYPE_FOCUS))then
			local MAXFOCUS = v:GetMaxPower(0)
			v:SetPower(MAXFOCUS, 0)
		end
		v:ClearAllCooldowns()
		v:AddAura(RES_AURA,0)
	end
end
end

function DuelFinished(event, pWinner, pLoser)
if(pWinner ~= nil and pWinner:HasAura(RES_AURA))then
	pWinner:RemoveAura(RES_AURA)
end
if(pLoser ~= nil and pLoser:HasAura(RES_AURA))then
	pLoser:RemoveAura(RES_AURA)
end
end

RegisterServerHook(30, DuelFinished)
RegisterGameObjectEvent(21680,2,OnLoadArbiter)
RegisterGameObjectEvent(21680,5,AIUpdate)

Now, there is no proper server hook to catch a duel challenge or duel in progress, so i had to script the duel flag to handle the health and mana/energy regen and CD reset, when a player accepts the duel challenge. It adds an invisible aura to all players around in that duel state that don't have such aura already on and sets the health and power type (in case of mana or energy) to full. The aura is required in order to control when the stats are set and cooldowns cleared. We don't want this to happen every second during duel now do we. :P
After the duel finishes, the aura is removed with the help of server hook id 30 that is triggered when a duel finishes.
1

#4 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 30 April 2013 - 05:50 PM

Such hook can always be implemented if one wants :)
"The demand for free goods is infinite."
1

Share this topic:


Page 1 of 1


Fast Reply

  

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users