EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   player.pl--spawn Boss (https://www.eqemulator.org/forums/showthread.php?t=36233)

javewow 01-08-2013 09:51 PM

player.pl--spawn Boss
 
player.pl


Is that all right ? HELP!


sub EVENT_ITEM
{
if($castspell{7652} == 1)#player cast Fireworks
{

quest::spawn2(218068,0,0,$x,$y,$z,$h); #spawn BOSS
}
}

c0ncrete 01-08-2013 10:34 PM

please use CODE tags when you post code.

is this supposed to happen when someone hands a player an item? i'm not sure that EVENT_IETM is valid outside an npc script.

where is %castspell defined?

lerxst2112 01-08-2013 10:46 PM

You probably want EVENT_CAST. The spell id is in the $spell_id variable.

javewow 01-08-2013 11:10 PM

1---if players in this ZONE --loot item="Fireworks Rack"

2:---then in this cast---"Fireworks Rack"

3:---- if player cast finishing

4:---- At this time spawn-> Boss out



Such as of WOW GAme Boss

How to set up, please help to tell me


Very grateful

c0ncrete 01-08-2013 11:50 PM

if you're wanting for it to occur when a player uses a click effect, use EVENT_CLICK_CAST.

note that you will need to have the client cast a spell in the event with $client->CastSpell() or they won't be able to do anything else.

it won't show you the spell that is cast (in the case of the fireworks rack, it's "Use Ability", according to ZAM) in the event, but it will show you the itemID that was clicked.

c0ncrete 01-09-2013 12:12 AM

oops. my bad.

i meant EVENT_ITEM_CLICK_CAST...

and it needs to be in an item script named something like quests\items\script_<scriptfileid>.pl instead of player.pl

<scriptfileid> is set in the database for that item's entry.

javewow 01-09-2013 02:30 AM

PEQ\quests\items crate new pl

For example

script_51778.pl (51778=item:Fireworks Rack

Content:



sub EVENT_ITEM_CLICK
{
if($itemid == 51778 ) # Fireworks Rack
{
if($client->CastSpell(7652))
{

quest::spawn2(218068,0,0,$x,$y,$z,$h);
}
}



Right?? HELP ! I don't understand

ghanja 01-09-2013 02:53 AM

Quote:

Originally Posted by javewow (Post 216103)
PEQ\quests\items crate new pl

For example

script_51778.pl (51778=item:Fireworks Rack

Content:



sub EVENT_ITEM_CLICK
{
if($itemid == 51778 ) # Fireworks Rack
{
if($client->CastSpell(7652))
{

quest::spawn2(218068,0,0,$x,$y,$z,$h);
}
}



Right?? HELP ! I don't understand

1. Please use [ CODE] blocks (it's the # icon when making a reply)
2. Please stop using [ COLOR], instead refer to #1
3. Due to language barrier, perhaps post your entire script (IF you use the CODE blocks). Because even if you don't understand the answers given and those answering don't understand your English, they WILL understand Perl -- thus your chances for an accurate (to what you want) answer will increase exponentially.

Those are my suggestions to make it easier on everyone.

c0ncrete 01-09-2013 03:40 AM

i may have misunderstood your original intentions due to the fact that you were using EVENT_ITEM in your first post. without fully understanding what it is you are trying to do, it's extremely difficult to give you correct information.

if you are just looking to verify that a spell has been cast by the client, then EVENT_CAST is what you want to use, as lerxst2112 previously suggested.

javewow 01-09-2013 10:50 AM

The picture shows


HELP!


http://www.hxchassis.com/img/xx.jpg

ghanja 01-09-2013 01:03 PM

http://i390.photobucket.com/albums/o...stratedmz8.gif

sorvani 01-09-2013 01:35 PM

Try this.
also please notice the use of the [CODE] tag.
Code:

sub EVENT_CAST {
  if($spell_id == 7652) {
    quest::spawn2(218068,0,0,$x,$y,$z,$h);
  }
}


javewow 01-09-2013 09:28 PM

Quote:

Originally Posted by sorvani (Post 216114)
Try this.
also please notice the use of the [CODE] tag.
Code:

sub EVENT_CAST {
  if($spell_id == 7652) {
    quest::spawn2(218068,0,0,$x,$y,$z,$h);
  }
}


Use your methods do not spawn

I will not

Code:

sub EVENT_ITEM_CLICK_CAST {
        my %transmute = ();
        $transmute[69231] = 5137;

              if($spell_id == 5137) {
    quest::spawn2(218068,0,0,$x,$y,$z,$h);
  }
}


c0ncrete 01-09-2013 09:43 PM

you're not using EVENT_ITEM_CLICK_CAST right.

the transmute stuff is not necessary. it's specific to one item.

you're using variables that likely aren't defined in the type of script and event you have them in. you will have to get values for x, y, z, and h.

again... $itemid is defined in EVENT_ITEM_CLICK_CAST, not $spell_id.

check your logs. they will generally tell you when you have issues in your scripts.

javewow 01-09-2013 10:01 PM

Quote:

Originally Posted by c0ncrete (Post 216127)
you're not using EVENT_ITEM_CLICK_CAST right.

the transmute stuff is not necessary. it's specific to one item.

you're using variables that likely aren't defined in the type of script and event you have them in. you will have to get values for x, y, z, and h.

again... $itemid is defined in EVENT_ITEM_CLICK_CAST, not $spell_id.

check your logs. they will generally tell you when you have issues in your scripts.

I can't understand

new ->script_69231.pl

Code:

sub EVENT_ITEM_CLICK_CAST {
        my %transmute = ();
        $transmute[69231] = 5137;

              if($itemid && $transmute[$itemid]) {
                $client->NukeItem($itemid);
                $client->CastSpell($transmute[$itemid], 0, 1, 0, 0);
                $client->spawn2(469003,0,0,2.0,-2.0,4.47,100);
  }
}

Can't run not Spawn


All times are GMT -4. The time now is 08:51 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.