provocating
04-15-2012, 12:08 PM
This was one of them in East Commons.
#Battlestaff Fuzzietoe 22210
INSERT INTO `npc_types` (id, name, lastname, level, race, class, bodytype, hp, mana, gender, texture, helmtexture, size, hp_regen_rate, mana_regen_rate, loottable_id, merchant_id, alt_currency_id, npc_spells_id, npc_faction_id, adventure_template_id, trap_template, mindmg, maxdmg, attack_count, npcspecialattks, aggroradius, face, luclin_hairstyle, luclin_haircolor, luclin_eyecolor, luclin_eyecolor2, luclin_beardcolor, luclin_beard, drakkin_heritage, drakkin_tattoo, drakkin_details, armortint_id, armortint_red, armortint_green, armortint_blue, d_meele_texture1, d_meele_texture2, prim_melee_type, sec_melee_type, runspeed, MR, CR, DR, FR, PR, Corrup, see_invis, see_invis_undead, qglobal, AC, npc_aggro, spawn_limit, attack_speed, findable, STR, STA, DEX, AGI, _INT, WIS, CHA, see_hide, see_improved_hide, trackable, isbot, exclude, ATK, Accuracy, slow_mitigation, version, maxlevel, scalerate, private_corpse, unique_spawn_by_name, underwater) VALUES ('22210', 'Battlestaff_Fuzzietoe', '', '65', '11', '41', '1', '4476', '0', '0', '2', '0', '5', '0', '0', '0', '346724', '0', '0', '0', '0', '0', '54', '110', '-1', '', '70', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '28', '28', '1.25', '9', '9', '9', '9', '9', '9', '0', '0', '0', '614', '0', '0', '-7.37742', '0', '137', '137', '137', '137', '137', '137', '137', '0', '0', '1', '0', '1', '0', '0', '0', '0', '0', '100', '0', '0', '0');
INSERT INTO `spawngroup` (`id`, `name`, `spawn_limit`, `dist`, `max_x`, `min_x`, `max_y`, `min_y`, `delay`) VALUES (200005, 'ecommons_200005', 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `spawn2` (`id`, `spawngroupID`, `zone`, `version`, `x`, `y`, `z`, `heading`, `respawntime`, `variance`, `pathgrid`, `_condition`, `cond_value`, `enabled`, `animation`) VALUES (300005, 200005, 'ecommons', 0, 888.600000, -1056.700000, -3.2, 233.8, 1200, 0, 0, 0, 1, 1, 0);
INSERT INTO `spawnentry` (`spawngroupID`, `npcID`, `chance`) VALUES (200005, 22210, 100);
INSERT INTO `merchantlist` (`merchantid`, `slot`, `item`, `faction_required`, `level_required`, `alt_currency_cost`) VALUES (346724, 1, 13006, -100, 0, 0);
Battlestaff_Fuzzietoe.pl
#!/usr/bin/perl -w
use DBI;
$db_login='eqemu';
$db_password='pass';
$db_host='127.0.0.1';
$db_database='peq';
# 1 warrior, 2 cleric, 4 paladin, 8 ranger, 16 sk, 32, druid, 64 monk, 128 bard, 256, rogue,
# 512 shaman, 1024 necro, 2048 wiz, 4096 mage, 8192 enchant, 16384 beast, 32768 beserk
$target_class=0;
$min_vendor_count=20;
$max_vendor_count=100;
@random_result_set=();
$size=0;
$announce_time=600; #Random announce time offset.
$reload_items_time=14400; #Random reload time offset. (3600=one hour, 14400=four hours, 86400=one day)
$initial_stock_delay=12; #NPC is not always up on slow loading zones.
$dbh=DBI->connect('DBI:mysql:' . $db_database . ';host=' . $db_host, $db_login, $db_password
) || die "Could not connect to database: $DBI::errstr";
$sth = $dbh->prepare('SELECT id FROM items WHERE nodrop=1 and norent=1 and questitemflag=0 and stacksize=1 AND price>0 AND classes > ' . $target_class );
$sth->execute();
while (@row=$sth->fetchrow_array){
push (@random_result_set, $row[0]);
}
$size=@random_result_set;
$vendor_item_count=$min_vendor_count+int(rand($max _vendor_count-$min_vendor_count));
sub EVENT_SPAWN
{
quest::settimer("initial_stock", $initial_stock_delay);
quest::settimer("reload_items", int(rand($reload_items_time)+3600)); #Timer for item inventory reload.
quest::settimer("announce", int(rand($announce_time)+240)); #Random announcements.
}
sub EVENT_TIMER
{
if($timer eq "initial_stock")
{
LOAD_VENDOR();
quest::stoptimer("initial_stock");
}
if($timer eq "reload_items")
{
LOAD_VENDOR();
}
if($timer eq "announce")
{
if(@random_result_set>0)
{
$rand=int(rand(6));
if ($rand==0) {quest::shout(sprintf("%s%s%s%s%s%s%s","New vendor up in the east commons tunnel check these items for sale (" . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
elsif ($rand==1) {quest::shout(sprintf("%s%s%s%s%s%s%s","Check out my wares just inside the east commons tunnel (" . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
elsif ($rand==2) {quest::shout(sprintf("%s%s%s%s%s%s%s","Lowest prices in Norath !!! Check out my " . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1)) . ", " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
elsif ($rand==3) {quest::shout(sprintf("%s%s%s%s%s%s%s","WTS " . ANNOUNCE(int(rand($vendor_item_count)+1)) . " and " . ANNOUNCE(int(rand($vendor_item_count)+1)) . " and " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
elsif ($rand==4) {quest::shout(sprintf("%s%s","Selling " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
elsif ($rand==5) {quest::shout(sprintf("%s%s","Come visit Battlestaff Fuzzietoe at the entrance to the East Commons tunnel, great prices on items like this " . ANNOUNCE(int(rand($vendor_item_count)+1))));}
}
$npc->SetAppearance(int(rand(2)));
}
if($timer eq "initial_load_vendor")
{
#quest::shout('end load');
LOAD_VENDOR();
#quest::shout('end load2');
quest::stoptimer("initial_load_vendor");
}
}
sub ANNOUNCE
{
sprintf("%c%06X%s%s%c",0x12,$random_result_set[$_[0]],"00000000000000000000000000000000000000000000",quest::itemname($random_result_set[$_[0]]),0x12);
}
sub LOAD_VENDOR
{
quest::merchantclear($npc->GetNPCTypeID());
fisher_yates_shuffle( \@random_result_set);
#Iterate through current items, add them.
for ($i=0; $i<=$vendor_item_count; $i++)
{
#quest::emote("Adding item " . $random_result_set[$i]);
quest::MerchantSetItem($npc->GetNPCTypeID(), $random_result_set[$i], 1);
}
}
sub fisher_yates_shuffle
{
my $array=shift;
my $i=@$array;
while ( --$i )
{
my $j = int rand( $i+1 );
@$array[$i,$j]=@$array[$j,$i];
}
}
$dbh ->disconnect();
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc.