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

ghanja 01-09-2013 10:04 PM

PM's go unanswered. So. What is your native language?

c0ncrete 01-09-2013 10:17 PM

Quote:

Originally Posted by javewow (Post 216132)
I can't understand

clearly.

Quote:

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
because you are doing it wrong.

as i've said before...

1) you do not need %transmute. stop using it.

2) the script name should be script_<scriptfileid>.pl

EXAMPLE:
Code:

mysql> select id, name, clickeffect, scriptfileid from items where name = "Fireworks Rack";
+-------+----------------+-------------+--------------+
| id    | name          | clickeffect | scriptfileid |
+-------+----------------+-------------+--------------+
| 51778 | Fireworks Rack |        7652 |            0 |
+-------+----------------+-------------+--------------+
1 row in set (0.30 sec)

the item you are using doesn't have a script associated with it. assign one in the database and name your script accordingly.

i have no idea where you are getting the numbers 69231 or 5137. if you don't explain everything you are doing and where you are getting the information from, we can only guess at how to help you resolve your issue.

javewow 01-09-2013 10:29 PM

Before, I use "Fireworks Rack" is error

Behind me to "Firework: Dancing Lights"

Firework: Dancing Lights ID = 69231 spellID=5137

I want to click can summon -> Spawn NPC

But Pl error Can't succeed

c0ncrete 01-09-2013 10:40 PM

if you'd do it the way i've instructed, it will work.

javewow 01-09-2013 10:48 PM

How to "Firework: Dancing Lights" increase "scriptfileid" ?

c0ncrete 01-09-2013 10:57 PM

a spell isn't an item...
so it doesn't have an entry in the items table in the database...
so it won't have an associated scriptfileid field...

javewow 01-09-2013 10:59 PM

Quote:

Originally Posted by c0ncrete (Post 216147)
if you'd do it the way i've instructed, it will work.

Thank you I understand

I do try

--------------------------------------------
Update items set scriptfileid = "xxxxxx" where id=69231;

------------------------------------------
Now change to

Code:

mysql> select id, name, clickeffect, scriptfileid from items where name = "Firework: Dancing Lights";
+-------+--------------------------+-------------+--------------+
| id    | name                    | clickeffect | scriptfileid |
+-------+--------------------------+-------------+--------------+
| 69231 | Firework: Dancing Lights |        5137 |        32767 |
+-------+--------------------------+-------------+--------------+
1 row in set

mysql>

save->script_32767.pl

c0ncrete 01-09-2013 11:03 PM

yes, then name the quest file script_32767.pl and forget everything about %transmute and $spell_id. you're just looking for the item click.

javewow 01-09-2013 11:08 PM

Just testing a grammar


Still have problems
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 spawn

Ask you to give a pl

c0ncrete 01-09-2013 11:15 PM

Quote:

Originally Posted by javewow (Post 216160)
Just testing a grammar


Still have problems
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 spawn

Ask you to give a pl

quest::spawn2(npc_type,grid,guildwarset,x,y,z,head ing)

javewow 01-09-2013 11:21 PM

Quote:

Originally Posted by c0ncrete (Post 216161)
quest::spawn2(npc_type,grid,guildwarset,x,y,z,head ing)

The success

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);
                quest::spawn2(469003,0,0,2.0,-2.0,4.47,100);
  }
}


Thank you very much! Learn from you the

c0ncrete 01-09-2013 11:24 PM

YAY! GREEN FOR GO!


All times are GMT -4. The time now is 10:01 AM.

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