EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   The "Mercenary failed to spawn!" error (https://www.eqemulator.org/forums/showthread.php?t=37086)

CruelCahal 07-21-2013 05:45 PM

The "Mercenary failed to spawn!" error
 
Is this just me, having this problem? Since before the Lua switch, they were working and I don't know if you dev guys know about it, are addressing it, have no problems with it, or whether it's just me.
I know the liasons are set at class_id "1" now and that the merc hire window doesn't even pop up unless reset back to the old "71" value, then that's when the error message comes up.
Recent compiles + daily peq build = error
Recent compiles + my old SVN-based PEQ = error
Pre-Lua compile + my old SVN-based PEQ = no error

I found this in an old post:

Quote:

In the meantime, here's a list of valid merc status update IDs. The packet is used on the client and server, whereas the client sends different data than the server packet. It's not just used for hiring as you can see below:

// [OPCode: 0x5e78 (OP_MercenaryHire?)] On Live as of April 2 2012
/*
Valid response IDs:

0 - Hire me! (Assign Merc after sending this.)
1 - Insufficient money message.
2 - Mercenary-To-Hire does not exist in the server's DB.
3 - Mercenary failed to spawn. (this actually tells us the mercenary should spawn BEFORE recieving this packet.)
4 - Mercenaries not allowed in raids.
5 - You already have a mercenary request pending
6 - You must dismiss the mercenary before hiring a new one.
7 - You must dismiss your suspended one before hiring a new one.
8 - Group is full.
9 - Error creating mercenary
10 - Replacing mercenary(?!)
11 - Your mercenary has quit! You ran out of money to pay for your mercenary!
12 - Your mercenary waived an upkeep cost of %d plat, and %d gold and your mercenary upkeep cost timer has been reset to %s. <-- these values are for GM resets of mercenaries and are generated from the client's
mercenary info. NOT from the packet.
13 - Your mercenary is about to be quit due to insufficient funds! <--- Sent before the mercenary quits, unsure of time sent before.
14 - There is no mercenary liason nearby! <-- hacking attempt check if no mercenary merchant is in the zone!
15 - You are too far away from the liason! <-- Liason exists as type in the zone, but client is too far away. (position update happened)
16 - You do not meet the requirements for that mercenary! <-- For example, if a mercenary is 'unlocked' in some way, send this if they do not have the mercenary unlock.
*/
If it's an opcode issue, I have no clue whether it's my fault or not, I'm not a coder like you guys.
I'm sorry to be a pest, but I really prefer mercs to bots and I miss having them.

bad_captain 07-21-2013 08:50 PM

I've been quite busy for a while, but have just updated to the latest code, so I will see if I can recreate this, and/or see why it doesn't work.

CruelCahal 07-22-2013 06:29 PM

I'd appreciate it bad_captain. If it's just a snag on your guys' end, then I'll just be patient and hold out.

Randymarsh9 07-27-2013 04:01 PM

I rebuilt using the latest source code today, and I am getting this error. When you choose a merc and click hire, nothing happens except the message "Mercenary failed to spawn"

Randymarsh9 07-29-2013 07:11 PM

Just to add in a little more information, I also updated my server to have the newest quests and ensured all .sqls were sourced in from the latest code.

sorvani 07-29-2013 11:23 PM

If you have updated and use the current daily dump there is no SQL to run. Well unless someone committed something today as I have not checked.

Randymarsh9 07-30-2013 05:12 PM

I have a custom server, so I don't use the daily database dumps. Mercenaries were working for me a while ago, but I didn't update my source code for a long time, and then when I did, they no longer worked.

sorvani 07-30-2013 09:57 PM

Then you need torun a diff on your database vs the current /release version

Randymarsh9 07-30-2013 10:43 PM

I must have been mistaken, I thought it used to be to update your database, you just applied the .sqls from the newest source and occasionally there'd be a new database available from the SVN repo that would have updates. I downloaded the database from the PEQ website and it has multiple new tables that I don't have. How does one go about updating their database now if it's not through the source or DB repo?

sorvani 07-31-2013 02:12 AM

Most of those tables a should be related to the login server and if you do not run your own, then it is not relevant.

The dump is different because it truly is a dump of the PEQ database minus the character tables. The original DB source was a much more manual process to retrieve cleaned tables and create a new DB file that was exported.

In general the process has not changed. Source in the initial DB and then source in changes from the github folder as need. If you to source in from old stuff, then you will have to look into manually checking things..

tarwyn 07-31-2013 04:04 AM

I would like to add that I am experiencing the same problem with Mercenaries and my database is up to date with the latest PEQ DB revision 2506. Mercenaries were working for me in the beginning of May, and since have stopped working.

EDIT:
I'll go and see if the PEQ daily dump fixes the mercenary problem; I was under the impression that SVN would be kept up-to-date - apparently I was wrong on that.

tarwyn 07-31-2013 04:46 AM

So after replacing my DB with the 07-30 daily dump, I am now no longer able to obtain a Merc at all since none of the merc vendors seem to react anymore.

What am I missing?

Robregen 07-31-2013 11:16 AM

Quote:

none of the merc vendors seem to react anymore.
this is mentioned in the beginning of the thread

Quote:

the liasons are set at class_id "1" now and that the merc hire window doesn't even pop up unless reset back to the old "71" value

tarwyn 07-31-2013 01:51 PM

Thanks, that was exactly what I was missing. I've fixed it now and can select mercs to buy, but I am still getting "Mercenary failed to spawn!" after clicking on <Hire>.

This is with PEQ Daily DB dump 07-30 + latest EQEmu Server - 07-18 - via GIT.

NatedogEZ 08-01-2013 01:52 AM

Same here Tarwyn --- and any player that logged off with a Merc will crash the zone they try to log into.

I had to just disable Mercs.

Randymarsh9 08-04-2013 11:24 AM

I loaded up PoK in its own zone.exe so that I could read the log for the zone as stuff happened. When you try to spawn a mercenary, it prints out "Error loading NPCs from database. Bad query: #1054: Unknown column 'vwMercNpcTypes.special_abilities' in 'field list.'" That's not surprising since the table vwMercNpcTypes doesn't exist in my database. Is there any way to get those tables since I cannot find them in the source?

sorvani 08-04-2013 11:52 AM

Better question, do mercs even need special abilities?

This is a very recent change and you can modify the SQL that was used to convert npc_types to convert the merc table.

Edit: Reading your post again, that is a view not a table. The relevant table is merc_stats. That table need converted the same as the npc_types was.then the code that uses that table will need modified the same as the rest of the attack code was modified.

Robregen 08-04-2013 12:07 PM

you would need to source in source_views.sql that comes along in the daily dump. That would create the views.

Randymarsh9 08-04-2013 12:53 PM

I added in the field "special_abilities" to merc_stats. I didn't bother populating it with anything because every entry in the specialattks field was empty. After adding special_abilties, I modified vwMercNpcTypes to also include special_abilities from the merc_stats table. After doing that, I was able to spawn a mercenary without being given any errors. I don't know how stable of a fix that is, but it appears to be working.

sorvani 08-04-2013 02:49 PM

Instead of adding the column, you should rename the column and change the type to match npc_types. If they at wall empty then that is even less to worry about. Maybe it was added for customization down the road.

Once I get home tonight I will change it on my server and then post a SQL once I confirm it.

NatedogEZ 08-04-2013 03:38 PM

That seemed to work for me as well Randymarsh. Thanks :)

Robregen 08-04-2013 04:48 PM

only thing I noticed missing on my end is stance info in the stance window.

sorvani 08-04-2013 08:30 PM

ok made this to help anyone having problems.
I ran these on a clean DB from this morning's /release. When I went to hire a merc there was nothing listed. I'll try and look into that later because the merc tables are populated.
Merc SPecial Abilities: http://pastebin.com/6gpx9RGM
Fix the View: http://pastebin.com/dXfrkFmd
Update Liaisons: http://pastebin.com/s7i5vWLk

CruelCahal 08-11-2013 10:10 AM

Just got around to checking this thread again and I'm glad to see I'm not the only one who likes mercs and that you guys were looking into it.
I sourced in the .sqls you provided, sorvani, and mercs spawn now for me too. I haven't given them a run through to see if that have any issues, but they are at least available now and appear to be behaving properly so far. Thank you guys, for your efforts.

bad_captain 08-15-2013 09:36 PM

I just tested this and was also able to get mercs to spawn for me. I will try to get the sql sourced in this weekend.

I also had the correct data show up at the merchant, so that works. I'm not sure what problem you may be having, sorvani.

sorvani 08-15-2013 09:49 PM

Me either and I have not had the free time to look into it.

rencro 08-16-2013 12:09 PM

After applying Sorvani's code everything worked, but when I went to work on my backup server and applied everything I got nothing, I had forgotten to set mercs = true in the rule values, sometimes its the silly stuff...

joligario 10-11-2013 12:47 PM

Do mercs usually have special abilities like double hit?

bad_captain 10-11-2013 11:58 PM

Code:

[Mon Feb 25 00:46:15 2013] [DPS Melee Merc] pierces A jord militis for 27 points of damage.
[Mon Feb 25 00:46:15 2013] [DPS Melee Merc] pierces A jord militis for 15 points of damage.
[Mon Feb 25 00:46:15 2013] [DPS Melee Merc] pierces A jord militis for 49 points of damage.
[Mon Feb 25 00:46:15 2013] [DPS Melee Merc] pierces A jord militis for 15 points of damage.

I have logs with many rounds with 4 attacks. I'm not sure if they get any other types, but I know they can more than double.

joligario 10-11-2013 11:59 PM

Ok, so then it makes sense to leave special abilities in the code.

bad_captain 10-12-2013 01:00 AM

The failed to spawn error should now be resolved, as i committed Sorvani's sql.

As for the special abilities, I'm not sure mercs are actually using the fields in the DB, I mostly kept them in for customization.


All times are GMT -4. The time now is 06:36 AM.

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