Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-10-2016, 12:55 PM
ponyboy_nd32
Fire Beetle
 
Join Date: Jun 2015
Posts: 4
Default Wizard Portals

I'm not sure if my issue is specific to bots or just a file issue. My wizard bot is having trouble with some port spells. Specifically the portals to Commonlands, North Ro, and South Ro are not working correctly.

For some context I have disabled all zones except classic zones using the min_status flag in the zones table. I am able to zone into each zone fine from adjacent zones. However when I issue a ^port command to my wizard for one of those zones I get a loading message for the correct zone but it instead loads me back into the current zone I was in when casting the port spell.

The reason I believe it might actually be a file issue is because when zoned into Commonlands from Nektulos, loaded the new version of Commonlands (I could see it visually for a few seconds) and then it loaded me into the EC tunnel of the old version of the zone. Zoning onto North Ro and South Ro are both using the older versions of the zone. I don't particularly care which version is actually used I just want the portal spells to work correctly for those zones.

I'm unable to determine if it's a bot issue or zone file issue as I get no message indicating what happened when porting. Any ideas?

Thanks!
Reply With Quote
  #2  
Old 06-10-2016, 01:30 PM
atrayas
Hill Giant
 
Join Date: Jun 2010
Posts: 105
Default

Have you checked the actual spells to ensure they are sending to the correct zone?
Reply With Quote
  #3  
Old 06-10-2016, 01:48 PM
ponyboy_nd32
Fire Beetle
 
Join Date: Jun 2015
Posts: 4
Default

I haven't, I assumed they were since it said "Loading <zone name>" in game and the message indicated the correct zone. Is it in the database that I would look for that?
Reply With Quote
  #4  
Old 06-10-2016, 07:58 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Teleport spells are going to send you to the zone they are coded for - revamp or not.


You are probably experiencing merging issues from two sources:

1) Teleport spell choice

2) Script enforcement of active zones


For the first, do a ^depart list and see if multiple similes show up for your destination choice. (Or, you may be choosing a spell that doesn't have
an equivalent for the older zone.)

To check the second, look in the quest folder for the 'newer' zone to see if there's a redirect script. I'm only aware of the Guild Lobby script, personally.


Pretty sure when I tested the commonlands one, it sent me to the new one and I stayed.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #5  
Old 06-10-2016, 09:42 PM
DanCanDo's Avatar
DanCanDo
Discordant
 
Join Date: May 2016
Location: Above Hell
Posts: 400
Default

I used a spell editor on the port spells for druids and wizards, mostly for those older
versions of zones. The 'commonlands' port spells point towards west commonlands.
They all work pretty good with the druid and wizzy bot ^port commands.
When I was editing the spells, I was also trying out actual player port spells for
druids and wizards. I know the first couple times, trying to use the player port
to commonlands, it sent me to the ecommons tunnel. But that's when I realized,
there is no "commons" port spell for west commons. It was the "commonlands"
port that had to be directed to where I wanted to go.
Reply With Quote
  #6  
Old 06-10-2016, 11:28 PM
ponyboy_nd32
Fire Beetle
 
Join Date: Jun 2015
Posts: 4
Default

I did testing on this tonight and I found the teleport_zone column in the spells_new table. I tried updating that column to 'commons' for all the common port spells. It had been set to 'commonlands' which looks to be the new zone. I assumed the bot spells are being pulled from that spells_new table (maybe I'm wrong there). After the change I tried the commons portal with my wizard again and I got sent back to Greater Faydark (where I cast the spell from).

I checked the quests folder for a redirect in Commonlands like you suggested Uleat and I found in the player.lua file there was the following code in there:

function event_enter_zone(e)
local client = eq.get_entity_list():GetClientByID(e.self:GetID()) ;
client:MovePC(22, -144, -1543, 2, 122);
end

So I commented out that code and tried zoning into Commonlands from Nektulos and it sent me to the new version of the zone and didn't redirect to the EC commons tunnel (old version) like it did before. I'm guessing commenting out the script must have fixed that.

I then tried the North Ro portal from the NEW version of commonlands and it sent me to the new version of North Ro and then immediately redirected me to the old version of North Ro and put me next to the LDON camp there. I then tried porting back to Commonlands, but it just kept me in the old version of North Ro.

So the issue seems to be trying to port to new version of zones from old version of zones or regular unchanged zones such as Greater Fay. However, changing the portal spell in the case of commonlands to teleport to the old version of the zone doesn't seem to work either (unless the teleport_zone column isn't the place to do that).

DanCanDo - are you saying that the PC port spells and the bot port spells are actually different spells? In my case that would actually explain my problem as I probably an just changing the PC version of the spell.
Reply With Quote
  #7  
Old 06-10-2016, 11:43 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

No, the bot command spells are pulled directly from the in-memory spell reference that clients use: https://github.com/EQEmu/Server/blob...mmand.cpp#L127

Before, they still used the same 'spells[index]' reference..but, their values were hard-coded into the commands. (Now, they're dynamically loaded and parsed)


That 'function event_enter_zone(e)' code is the reason for your changing of zones once you enter one of the new zones.

To alleviate that, you would need to disable all of those entries in all of the affected zones. (You would probably need to enable combat for those as well - at the minimum of changes...)


It's probable that the client doesn't recognize the short name being used for the older zones. One of the many problems with multiple client support :/

That could be why it sent you back to your last 'known' zone. I'm not 100% up to speed with the differences in old and revamped zones..just a guess.


You could try with an older client..I think some of them use the revamped zones..but, still have the old ones coded. (They might be missing the actual zone files, however...)


EDIT: I know when I camp out in Crescent Reach in a SoF+ client and log in with Titanium, it shows unknown zone at the character select screen.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #8  
Old 06-10-2016, 11:44 PM
DanCanDo's Avatar
DanCanDo
Discordant
 
Join Date: May 2016
Location: Above Hell
Posts: 400
Default

What I did was go through every possible druid/wiz port entry in the database and changed
the destination on the ones I wanted to change. I didn't just look for Gate, Teleport, etc",
I looked for anything that involved porting to the zones I wanted to changed.
For example, in spells_new ID - 2286 "Portal to South Ro", I changed the destination from
southro to sro (the old version).

EDIT: Just to also mention, when using the ^port cmd, I found I needed to use
the new version names. So in the above scenario,
I had to type ^port southro to get the bot to port me to sro. It's the same with
other revamped zones when using the bot ports.
Reply With Quote
  #9  
Old 06-10-2016, 11:57 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

There are actually 3 types of 'teleport' spells: https://github.com/EQEmu/Server/blob...mmand.cpp#L224


Teleports and Succors with out-of-zone detinations are invoked by using ^depart. (^Circle and ^Teleport invoke class-specific spells.)

Escapes and Succors with in-zone destinations are invoked by using ^escape.

Bound-type Translocates and Gates are handled by ^sendhome.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #10  
Old 06-11-2016, 12:18 AM
DanCanDo's Avatar
DanCanDo
Discordant
 
Join Date: May 2016
Location: Above Hell
Posts: 400
Default

Quote:
Originally Posted by Uleat View Post
There are actually 3 types of 'teleport' spells: https://github.com/EQEmu/Server/blob...mmand.cpp#L224


Teleports and Succors with out-of-zone detinations are invoked by using ^depart. (^Circle and ^Teleport invoke class-specific spells.)

Escapes and Succors with in-zone destinations are invoked by using ^escape.

Bound-type Translocates and Gates are handled by ^sendhome.
Ok, the ^sendhome cmd, I didn't know that existed (chuckle). Still going through
that ^biglist of bot cmds :P
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:41 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3