PDA

View Full Version : Perl Plugins/Mods & Wiki Updates


Akkadius
04-19-2014, 06:02 AM
Spent the full past two days going through every single Perl plugin and cleaning it up for ease of public consumption. The Plugins repository has been fully updated and cleaned up completely. Many plugins have been updated and full examples ready to make it easy for people to reference.

All plugins have been updated and fully documented: HERE (Perl Plugin Master Reference) (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference)

New Plugins/Mods


LoadMysql (https://eqemupluginsrepo.googlecode.com/svn/trunk/MySQL.pl)
Installing Perl DBI/DBD::Mysql (http://wiki.eqemulator.org/p?Installing_Perl_DBI_and_other_Modules&frm=Perl_Plugins_Master_Reference)
Multiple Quest Global System (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#pluginsetmglobalna me-value-options-duration-index)
Perl Expedition & Shared Task System (http://wiki.eqemulator.org/p?The_Expedition_and_Shared_Tasks_(Perl_Version)&frm=Perl_Plugins_Master_Reference)
Marquee Messages (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#pluginmmquotmessag equot)
U_MP3 (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference&frm=Main#pluginu-mp3)
Realtime Door Manipulation (http://wiki.eqemulator.org/p?Placing_Doors&frm=Perl_Plugins_Master_Reference)
DiaWind (http://wiki.eqemulator.org/p?The_DiaWind_Plugin&frm=Main--Perl_Plugins_Master_Reference)
Constants (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference&frm=--Main--Perl_Plugins_Master_Reference#pluginskillskillid) By Kingly Krab
REV (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#pluginreventity-variable-name)
SEV (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#pluginreventity-variable-name)
CheckDist (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#plugincheckdistent ity-distance)
CheckDistBetween2Ents (http://wiki.eqemulator.org/p?Perl_Plugins_Master_Reference#plugincheckdistbet ween2entsentity1-entity2-distance)


Happy developing

Mariomario
05-17-2014, 07:59 PM
Looking for a little help with the marquee messaging. Attempting to use the plugin gave failed results so I attempted to make sure it was in the client_message.pl under the plugin folder. It wasn't so I added the needed code in.

I have found that the error seems to be coming from the SendMarqueeMessage function regardless. It is definitely within my source under the client.cpp


void Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg)
{
if(duration == 0 || msg.length() == 0) {
return;
}

EQApplicationPacket outapp(OP_Marquee, sizeof(ClientMarqueeMessage_Struct) + msg.length());
ClientMarqueeMessage_Struct *cms = (ClientMarqueeMessage_Struct*)outapp.pBuffer;

cms->type = type;
cms->unk04 = 10;
cms->priority = priority;
cms->fade_in_time = fade_in;
cms->fade_out_time = fade_out;
cms->duration = duration;
strcpy(cms->msg, msg.c_str());

QueuePacket(&outapp);
}

Even using something as simple as below will result in only the NPC sending the first Test message and nothing after. Is there something wrong with the marquee message function in my source or am I just over looking something extremely simple?


sub EVENT_SAY
{
$client->Message(15,"Test");

$client->SendMarqueeMessage(15, 510, 1, 100, 3000, "Testing");

$client->Message(15,"Test2");
}

Akkadius
05-17-2014, 10:29 PM
Looking for a little help with the marquee messaging. Attempting to use the plugin gave failed results so I attempted to make sure it was in the client_message.pl under the plugin folder. It wasn't so I added the needed code in.

I have found that the error seems to be coming from the SendMarqueeMessage function regardless. It is definitely within my source under the client.cpp


void Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg)
{
if(duration == 0 || msg.length() == 0) {
return;
}

EQApplicationPacket outapp(OP_Marquee, sizeof(ClientMarqueeMessage_Struct) + msg.length());
ClientMarqueeMessage_Struct *cms = (ClientMarqueeMessage_Struct*)outapp.pBuffer;

cms->type = type;
cms->unk04 = 10;
cms->priority = priority;
cms->fade_in_time = fade_in;
cms->fade_out_time = fade_out;
cms->duration = duration;
strcpy(cms->msg, msg.c_str());

QueuePacket(&outapp);
}

Even using something as simple as below will result in only the NPC sending the first Test message and nothing after. Is there something wrong with the marquee message function in my source or am I just over looking something extremely simple?


sub EVENT_SAY
{
$client->Message(15,"Test");

$client->SendMarqueeMessage(15, 510, 1, 100, 3000, "Testing");

$client->Message(15,"Test2");
}

You need to have all of the current opcodes, latest source and latest plugins repo and you can simply use marquee messages as simply as:

plugin::MM("Message"); or use manual arguments with $client->SendMarqueeMessage();