Jump to content
Marko

Simple .buff command

Recommended Posts

function buff(event, player, message, Type, lang)
if(message:lower() == "buff")then
player:AddAura(48074, player)
player:AddAura(35912, player)
player:AddAura(38734, player)
player:AddAura(65075, player)
player:AddAura(65077, player)
player:AddAura(43223, player)
player:AddAura(15366, player)
player:AddAura(36880, player)
player:AddAura(36880, player)
player:AddAura(16609, player)
player:AddAura(48073, player)
player:AddAura(48469, player)
player:AddAura(26035, player)
player:SendBroadcastMessage("You have been Buffed!")
end
end

RegisterPlayerEvent(42, buff)

You can use this simple script and add any spells as buffs you want. Can also change here whatever broadcast message you want when player gets buffed, and can even change the default .buff command to something else. 

Enjoy :)  

The original code i have found long time ago somewhere on Emudevs forums which are lost now. Ofc i edited the code slightly and you can too, to fit your needs. 

  • Like 3

Share this post


Link to post
Share on other sites

Feel free to post any examples and edits you make :)  I'm sure peeps will like and use it. 

I'm not so expert with eluna as to make any advanced edits here, just basic stuff anyone can do :)

Share this post


Link to post
Share on other sites

nice job newbie ;) 

now lets see you learn how to take it from another newbie buff script and make it an advanced dynamic buff script. B|

oooh like make it so it will buff each class with a group of different buffs or every 10 levels a player gains access to more buff id's... 

Arrays/Tables are frak'n sooo easy in Lua once you understand how to store data and access the stored data when needed.  3d tables will be just an everyday thing :) 

check out my buff command in my VIP System. its setup to issue players buff's depending on VIP level, guild member or if they have an item in inventory.

 

When you stop learning you stop living ;)

Share this post


Link to post
Share on other sites

ok i made you an example using a simple 2D table to store the buff id's.

 

local command = "buff"; -- here we define "command" as local variable with a string value of "buff". I defined it as a `local` outside any functions so it is localized to this Lua file only.
local buff = {}; -- here i define the variable `buff` as an empty table (Without data).again i have defined it as a local outside any functions so it is localized to this Lua file only.

buff = {48074,35912,38734,65075,65077,43223,15366,36880,36880,16609,48073,48469,26035}; -- Here I will now store data in the table named `buff`. each id separated by a comma. each spot will be a unique address piece(1,2,3,4,5,6.....) accessed by using the full adress. so to puff a player with buff id '43223' i will use the command `player:AddAura(buff[6], player)` and the player will get buffed with 43223.

	
function buff(event, player, message, Type, lang)

	if(message:lower() == command)then -- here we chech every chat message (converting it to `lower`case) to see if it matches absolute(==) the string stored in the variable `command`.
		
		local entry_id; -- here i am defining a variable i will use ONLY inside this function so when its local inside a function it will be localized to only that function and you can make a new variable inside another function using the same name but different stored data.
		
			for entry_id = 1, #buff do -- here i am starting a loop. telling it that entry_id will be from 1 to the max size of the `buff` table (#buff).

				player:AddAura(buff[entry_id], player); -- now using the full address to pinpoint a location of stored data we will apply the data as a buff to the player.
			end -- end for when our current loop is complete and increase entry_id +1 or if entry_id value is the max size for the loop then end and exit the loop.
	
		player:SendBroadcastMessage("You have been Buffed!")
	end -- end for the end of our if statement.
end -- end of function end.

RegisterPlayerEvent(42, buff)

 

Edited by slp13at420
  • Like 2

Share this post


Link to post
Share on other sites

local BuffS = {}; --Spell Id's

function Buff(event, player, message, Type, lang)
    if(message:lower() == "Buff")then    
        for _, v in ipairs(buffS)do
            player:AddAura(v, player)
            end
        player:SendBroadcastMessage("You Are Buffed !")
            end
        end
end


RegisterPlayerEvent(42, Buff)

  • Like 1

Share this post


Link to post
Share on other sites
14 minutes ago, dves said:

What is this: for _, v in pairs(buffs) do 

It loops through the elements in buffs table.
_ is the key and v is the value from the table.

_ is often used to indicate that the variable is not used.

https://repl.it/HLJ3/0
http://www.lua.org/manual/5.2/manual.html#3.3.5
http://www.lua.org/manual/5.2/manual.html#pdf-ipairs
http://www.lua.org/manual/5.2/manual.html#pdf-pairs

  • Like 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use