ArcEmu: Npc Drop 1 Random Out Of 3 Specific Items? - 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

Npc Drop 1 Random Out Of 3 Specific Items?

#1 User is offline   Rogues Studios 

  • Newbie
  • Group: Members
  • Posts: 8
  • Joined: 04-April 11
  • Gender:Male
  • Server OS:Windows

Posted 29 August 2012 - 05:17 PM

I'm trying to make my bosses drop 1 random item out of 3 specific items. (they should be the same drop chance on all, and there should always drop 1 item (not more and not less).

I've tried searching for solutions and I've tested a lot of possible solutions but none of them seems to work.

If someone know a way or could come with some ideas it would be great :)
0

#2 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 30 August 2012 - 12:24 AM

View PostRogues Studios, on 29 August 2012 - 05:17 PM, said:

I'm trying to make my bosses drop 1 random item out of 3 specific items. (they should be the same drop chance on all, and there should always drop 1 item (not more and not less).

I've tried searching for solutions and I've tested a lot of possible solutions but none of them seems to work.

If someone know a way or could come with some ideas it would be great :)

I think you have to script it. Because 3 items with a drop chance of 33% works different. Can be that it drops f.ex. all 3 items at one time. And than no items for 2 times.
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#3 User is offline   Rogues Studios 

  • Newbie
  • Group: Members
  • Posts: 8
  • Joined: 04-April 11
  • Gender:Male
  • Server OS:Windows

Posted 30 August 2012 - 01:10 AM

yeah, i've tried with math.random(1,3) and then set 1, 2, 3 for Unit:AddLoot but it doesn't seem to work
0

#4 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 30 August 2012 - 04:24 AM

That was also my first thought.

Can you post the whole (or a demo) script please ?
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#5 User is offline   Rogues Studios 

  • Newbie
  • Group: Members
  • Posts: 8
  • Joined: 04-April 11
  • Gender:Male
  • Server OS:Windows

Posted 30 August 2012 - 07:16 AM

View PostMagnifikator, on 30 August 2012 - 04:24 AM, said:

That was also my first thought.

Can you post the whole (or a demo) script please ?


local Vari


function Varian_chat(Unit, Event)
	Vari = Unit
end

function Varian_OnDeath(Unit, Event, Player)
	Vari:RemoveEvents()
	Vari:RemoveAllAuras()
	Vari:GetGameObjectNearestCoords(68.650154, 10.991482, 18.677334, 600008):Despawn(0, 0)
	Vari:GetGameObjectNearestCoords(374.420410, -17.827187, 31.494452, 600008):Despawn(0, 0)
	loot=math.random(1,3)
	if loot == 1 then
	Vari:AddLoot(100118, 1, 1, true)
	end
	if loot == 2 then
	Vari:AddLoot(100123, 1, 1, true)
	end
	if loot == 3 then
	Vari:AddLoot(100128, 1, 1, true)
	end
end

RegisterUnitEvent(101004, 18, "Varian_chat")
RegisterUnitEvent(101004, 4, Varian_OnDeath)


I have also tried to change it so it adds the loot on spawn but it still didn't work.
0

#6 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 30 August 2012 - 07:33 AM

That's a strange script.

Why not use something like that ? (not tested)

But maybe you should add loot at EnterCombat. If the NPC is dead maybe it's already too late to add loot.


function Varian_OnDeath(pUnit, Event, pPlayer)

print("TEST") -- just to test ;-)

        pUnit:RemoveEvents()
        pUnit:RemoveAllAuras()
        pUnit:GetGameObjectNearestCoords(68.650154, 10.991482, 18.677334, 600008):Despawn(0, 0)
        pUnit:GetGameObjectNearestCoords(374.420410, -17.827187, 31.494452, 600008):Despawn(0, 0)

        local loot = math.random(3)

        if ( loot == 1 ) then
          pUnit:AddLoot(100118, 1, 1, true)
        elseif ( loot == 2 ) then
          pUnit:AddLoot(100123, 1, 1, true)
        elseif ( loot == 3 ) then
          pUnit:AddLoot(100128, 1, 1, true)
        end
end

RegisterUnitEvent(101004, 4, Varian_OnDeath)

Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#7 User is offline   Rogues Studios 

  • Newbie
  • Group: Members
  • Posts: 8
  • Joined: 04-April 11
  • Gender:Male
  • Server OS:Windows

Posted 30 August 2012 - 07:44 AM

View PostMagnifikator, on 30 August 2012 - 07:33 AM, said:

That's a strange script.

Why not use something like that ? (not tested)

But maybe you should add loot at EnterCombat. If the NPC is dead maybe it's already too late to add loot.


function Varian_OnDeath(pUnit, Event, pPlayer)

print("TEST") -- just to test ;-)

        pUnit:RemoveEvents()
        pUnit:RemoveAllAuras()
        pUnit:GetGameObjectNearestCoords(68.650154, 10.991482, 18.677334, 600008):Despawn(0, 0)
        pUnit:GetGameObjectNearestCoords(374.420410, -17.827187, 31.494452, 600008):Despawn(0, 0)

        local loot = math.random(3)

        if ( loot == 1 ) then
          pUnit:AddLoot(100118, 1, 1, true)
        elseif ( loot == 2 ) then
          pUnit:AddLoot(100123, 1, 1, true)
        elseif ( loot == 3 ) then
          pUnit:AddLoot(100128, 1, 1, true)
        end
end

RegisterUnitEvent(101004, 4, Varian_OnDeath)



well the reason i'm using vari instead of Unit is because i got many different Units (often mixed up in the same functions) :)

Tried it. It showed the message but no loot were added and no error message came
0

#8 User is offline   Magnifikator 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 398
  • Joined: 05-October 11
  • Gender:Male
  • Location:Switzerland
  • Server OS:Windows

Posted 30 August 2012 - 07:55 AM

You can name you unit object as you want: Unit, pUnit, OldBread.

I use the suffix p to remember myself that it's an object.

Strange on your previous script was that you are using an external variable Vari and set the object into that.

This variable works in a global context and can produce several heavy errors. Think about what happens if f.ex at same time 2 different spawned NPC of the same id are acting. Both are using the same variable.

To identify your spawned NPC you should use the value of the function parameter pUnit only.


For the loot I have to check it myself later. Never used that command.
Try out the LoE ArcEmu World database. Please visit dev.LandOfElves.net.

Posted Image


0

#9 User is offline   Rogues Studios 

  • Newbie
  • Group: Members
  • Posts: 8
  • Joined: 04-April 11
  • Gender:Male
  • Server OS:Windows

Posted 30 August 2012 - 08:29 AM

I normally also use pUnit but on mobs that only will be spawned one of at a time i make them like that =p
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