ArcEmu: Problems With Npcflags And Gossip Npc - 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
  • You cannot start a new topic
  • You cannot reply to this topic

Problems With Npcflags And Gossip Npc

#1 User is offline   purup 

  • Newbie
  • Group: Members
  • Posts: 2
  • Joined: 17-September 13
  • Gender:Male
  • Location:Denmark
  • Server OS:Windows

Posted 17 September 2013 - 09:09 AM

Hey all

First off, I am kind of new to this whole thing, so if this topic is in the wrong section, please don't butcher me ;)

Well, my problem is that whenever I creat a custom NPC with the npcflag 1 for gossip I can't interact with it properly. The first i notice is that the cursor disapears when ever i hover over the NPC instead of changing into the typical speech bubble icon when you want to interact with a gossip NPC.
When i right click on the NPC it faces me as if I had interacted with it, but no window comes up.
I have tested this futhermore, with a lua gossip script that gives you gold when ever you click on the gossip menu (script down below) and odly enough i get the gold, as if i had pressed the menu.
Lua gossip script

local NPCID=90000

function MackGossipNPC(pUnit, event, pPlayer)
pUnit:GossipCreateMenu(1, pPlayer, 0)
pUnit:GossipMenuAddItem(1 ,"Sure, whatever", 1, 0)
pUnit:GossipSendMenu(pPlayer)
end

function GossipOnSelect(Unit,Event,pPlayer,id,intid)
if (intid==1) then
pPlayer:DealGoldMerit(1000000)
pUnit:GossipCreateMenu(1, pPlayer, 0)
pUnit:GossipMenuAddItem(1, "Thanks", 2, 0)
pUnit:GossipSendMenu(pPlayer)
end

if (intid==2) then
pPlayer:GossipComplete()
end
end

RegisterUnitGossipEvent(NPCID,1,"MackGossipNPC")
RegisterUnitGossipEvent(NPCID,2,"GossipOnSelect")

It is kind of two problems in one, since the problem with the cursor icon happens for all npcflags i use (vendor, banker auctioneer, you name it)
Ps. Lua scripts are activated and are loaded by world
0

#2 User is offline   Satanail 

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

Posted 18 September 2013 - 11:35 AM

Hello.
First about the cursor problem: You did the npc in question by directly filling in the columns in your sql server's creature_names and creature_proto right? When you do this, the creature_names will not accept the new data unless you have something in the columns "name", "subname" and "info_str". The thing you did wrong here is to put something invalid in "info_str". This causes the error with missing cursor, because this column contains the info about the cursor icon when you point at the npc. This overrides the npc flags cursor so you don't get anything when you point at the npc. Go to your database and delete anything that might be there. Then restart server and don't forget to delete your wow Cache before logging in so that the changes can take effect for your client. Here you can find more info about the column i am talking about: http://www.arcemu.or.../Creature_names (the same goes for "subname" if the creature does not have a subname).
And about the second issue:
When you have only one gossip option, the core automatically runs that option without displaying any gossip menu. You must add something else there so that you can get the menu. Something like this:
function MackGossipNPC(pUnit, event, pPlayer)
pUnit:GossipCreateMenu(1, pPlayer, 0)
pUnit:GossipMenuAddItem(1 ,"Sure, whatever", 1, 0)
pUnit:GossipMenuAddItem(0 ,"No thanks.", 2, 0)
pUnit:GossipSendMenu(pPlayer)
end

You already have option for menu with id 2, so this is all you need to change in your script.
Edit:
When you use "if" for multiple things like the gossip menu selection, try to use one "if", followed by "elseif" for the different menu options. Something like this:
if (intid==1) then
   pPlayer:DealGoldMerit(1000000)
   pUnit:GossipCreateMenu(1, pPlayer, 0)
   pUnit:GossipMenuAddItem(1, "Thanks", 2, 0)
   pUnit:GossipSendMenu(pPlayer)
elseif (intid==2) then
   pPlayer:GossipComplete()
end


Rather than putting many if / end for every single option. The player can only select one option per hook triggering, so this way the script is a lot better.
2

#3 User is offline   purup 

  • Newbie
  • Group: Members
  • Posts: 2
  • Joined: 17-September 13
  • Gender:Male
  • Location:Denmark
  • Server OS:Windows

Posted 18 September 2013 - 02:48 PM

Hey

Thanks for the quick and very helpful reply. I was able to solve the problems right away.
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