ArcEmu: Companion Pets - 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

Labels

Make sure when posting a help or release topic you put [c++] or [lua] BEFORE your topic title!
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Companion Pets

#1 User is offline   Blood Knight Entertainment 

  • Occasional Poster
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 04-February 09
  • Gender:Male

Posted 26 April 2014 - 12:30 PM

Is there an Lua for Custom Companion pets.
if so could someone make a small script for it :)
So it would follow the player like a blizzlike pet.
And May it despawn when the player wants to do it.
0

#2 User is offline   Satanail 

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

Posted 26 April 2014 - 04:54 PM

View PostBlood Knight Entertainment, on 26 April 2014 - 12:30 PM, said:

Is there an Lua for Custom Companion pets.
if so could someone make a small script for it :)
So it would follow the player like a blizzlike pet.
And May it despawn when the player wants to do it.


You mean something like this?
local NPC_CHICKEN = 88999

function OnLoad(pUnit)
pUnit:SetNPCFlags(1)
end

function OnGossip(pUnit, event, pPlayer)
pUnit:GossipCreateMenu(100, pPlayer, 0)
local follow = pUnit:GetUnitToFollow()
if(follow == nil)then
	pUnit:GossipMenuAddItem(7, "Get the chicken!", 1, 0)
elseif(follow)then
local namef = follow:GetName()
local namep = pPlayer:GetName()
	if(follow:IsPlayer())then
		if(namef == namep)then
			pUnit:GossipMenuAddItem(7, "Dismiss the chicken!", 2, 0)
		end
	end
end
pUnit:GossipMenuAddItem(7, "Exit menu.", 3, 0)
pUnit:GossipSendMenu(pPlayer)
end

function OnSelect(pUnit, event, pPlayer, id, intid, code)
if(intid == 1)then
	pUnit:SetFaction(pPlayer:GetFaction())
	pUnit:SetUnitToFollow(pPlayer, 1, 0)
	pUnit:SetUInt32Value(59,2)
	pUnit:DisableCombat(true)
	pPlayer:GossipComplete()
elseif(intid == 2)then
	pUnit:SetFaction(35)
	pUnit:SetUInt32Value(59,0)
	pUnit:DisableCombat(false)
	pUnit:Despawn(0,1)
	pPlayer:GossipComplete()
elseif(intid == 3)then
	pPlayer:GossipComplete()
end
end

RegisterUnitEvent(NPC_CHICKEN,18,OnLoad)
RegisterUnitGossipEvent(NPC_CHICKEN,1,OnGossip)
RegisterUnitGossipEvent(NPC_CHICKEN,2,OnSelect)

0

#3 User is offline   Blood Knight Entertainment 

  • Occasional Poster
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 04-February 09
  • Gender:Male

Posted 27 April 2014 - 07:11 AM

View PostSatanail, on 26 April 2014 - 04:54 PM, said:

You mean something like this?
local NPC_CHICKEN = 88999

function OnLoad(pUnit)
pUnit:SetNPCFlags(1)
end

function OnGossip(pUnit, event, pPlayer)
pUnit:GossipCreateMenu(100, pPlayer, 0)
local follow = pUnit:GetUnitToFollow()
if(follow == nil)then
	pUnit:GossipMenuAddItem(7, "Get the chicken!", 1, 0)
elseif(follow)then
local namef = follow:GetName()
local namep = pPlayer:GetName()
	if(follow:IsPlayer())then
		if(namef == namep)then
			pUnit:GossipMenuAddItem(7, "Dismiss the chicken!", 2, 0)
		end
	end
end
pUnit:GossipMenuAddItem(7, "Exit menu.", 3, 0)
pUnit:GossipSendMenu(pPlayer)
end

function OnSelect(pUnit, event, pPlayer, id, intid, code)
if(intid == 1)then
	pUnit:SetFaction(pPlayer:GetFaction())
	pUnit:SetUnitToFollow(pPlayer, 1, 0)
	pUnit:SetUInt32Value(59,2)
	pUnit:DisableCombat(true)
	pPlayer:GossipComplete()
elseif(intid == 2)then
	pUnit:SetFaction(35)
	pUnit:SetUInt32Value(59,0)
	pUnit:DisableCombat(false)
	pUnit:Despawn(0,1)
	pPlayer:GossipComplete()
elseif(intid == 3)then
	pPlayer:GossipComplete()
end
end

RegisterUnitEvent(NPC_CHICKEN,18,OnLoad)
RegisterUnitGossipEvent(NPC_CHICKEN,1,OnGossip)
RegisterUnitGossipEvent(NPC_CHICKEN,2,OnSelect)


Not exactly i was hoping for it to spawn and Despawn from an item due to custom spells not functional but still follow player.
http://wowhead.com/item=85513
0

#4 User is offline   Satanail 

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

Posted 27 April 2014 - 03:22 PM

Hm. This means that you must edit the DBC's and is pretty much non related to lua. I'm also not sure if something like a server side spell can be created in arcemu but am sure this thing can not be done in lua. Probably the only way you can do this in lua is to do something like this.
local ITEM_ID = 23567
local NPC_CHICKEN = 88999

function ItemUse(pItem, event, pPlayer)
local summon = false
for k,v in pairs(pPlayer:GetInRangeUnits())do
	if(v:IsCreature() and v:GetEntry() == NPC_CHICKEN)then
		local follow = v:GetUnitToFollow()
		if(follow)then
			if(follow:IsPlayer())then
				local namef = follow:GetName()
				local namep = pPlayer:GetName()
				if(namef == namep)then
					v:RemoveEvents()
					v:Despawn(0,1)
					summon = true
				end
			end
		end
	end
end
if(summon == false)then
	PerformIngameSpawn(1,NPC_CHICKEN,pPlayer:GetMapId(),pPlayer:GetX(),pPlayer:GetY(),pPlayer:GetZ(),pPlayer:GetO(),35,0)
end
end

function OnLoad(pUnit)
local plr = pUnit:GetClosestPlayer()
if(plr)then
	pUnit:SetFaction(plr:GetFaction())
	pUnit:SetUnitToFollow(plr,1,0)
	pUnit:SetUInt32Value(59,2)
	pUnit:DisableCombat(true)
end
end

RegisterItemGossipEvent(ITEM_ID,1,ItemUse)
RegisterUnitEvent(NPC_CHICKEN,18,OnLoad)

The item must have a gossip spell, like the ones for teleporters and etc. Can't figure anything else short of dbc editing.
0

#5 User is offline   Blood Knight Entertainment 

  • Occasional Poster
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 04-February 09
  • Gender:Male

Posted 27 April 2014 - 05:17 PM

Edit: Fixed it :3
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

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