2020

Where all the cool new stuff goes

4/5/2020

Kinglykrab

  • Added getcharidbyname(name) to Perl/Lua.

Perl
Lua
Perl
quest::getcharidbyname(name);
Lua
eq.get_char_id_by_name(name);
  • Added getcharnamebyid(char_id) to Perl/Lua.

Perl
Lua
Perl
quest::getcharnamebyid(char_id);
Lua
eq.get_char_name_by_id(char_id);

3/31/2020

Kinglykrab

  • Added getitemname(item_id) to Perl/Lua.

Perl
Lua
Perl
quest::getitemname(item_id);
Lua
eq.get_item_name(item_id);
  • Added getspellname(spell_id) to Perl/Lua.

Perl
Lua
Perl
quest::getspellname(spell_id);
Lua
eq.get_spell_name(item_id);
  • Added gettaskname(task_id) to Perl/Lua.

Perl
Lua
Perl
quest::gettaskname(task_id);
Lua
eq.get_task_name(task_id);
  • Added CheckInstanceByCharID(instance_id, char_id) to Perl/Lua.

Perl
Lua
Perl
quest::CheckInstanceByCharID(instance_id, char_id);
Lua
eq.check_instance_by_char_id(instance_id, char_id);

3/5/2020

Noudess

  • Added a new field (always_aggro_foes) to npc_types. If non-zero, the npc/mob will always aggro foes regardless of intelligence or level. This was so mobs such as the int casters in Befallen, who will agro their enemies regardless of level and I didn't want to have to reduce the _int field of INT caster NPCs to achieve the aggro.

3/2/2020

Uleat

Monk Bot Changes

  • Added a 'monk' class special attack timer to class NPC

  • Monk bots will now use the ability Tiger Claw on a seperate timer from the other disciplines - resulting in an additional attack

  • Bot usage of Master Wu's Technique now falls inline with current client behavior (rules and all)

  • Added bot owner option monkwumessage to toggle a notification message to the bot's owner whenever MWT triggers (off by default .. use ^oo monkwumessage to enable/disable)

Special Note:

By default, all classes process class attacks based on active timers. This involves checking attackability of target with every call - which is VERY expensive when done every server processing cycle since the timer is always 'ready.'

I added code to disable 'class' timers in classes that don't use them or are inactive because they don't have a skill. Class-based timers will not reactivate..but, skill-based ones will once a CalcBotStats call is made during the 'leveling' process. (If the skill is not available after leveling, the timer will disable itself again.)

Hopefully, this will help reduce bot cpu usage.

Please report any issues on our forums or in Discord - Thanks!

2/4/2020

hg

  • Auto Consent client options are now supported. Toggling these options results in consenting (or denying) a player's current corpses.

    • These options are now also saved and restored for characters.

  • The /consent and /deny commands for group, raid, and guild are now implemented. These commands are not case sensitive.

    • /consent group - adds current group id to all character corpses

    • /consent raid - adds current raid id to all character corpses

    • /consent guild - adds current guild id to all corpses and updates db

    • /deny group|raid|guild - sets the consent type id to 0 on all corpses

  • Consent and deny commands are throttled to once every two seconds

  • When consenting a player by name, both the corpse owner and the player being consented receive a message for every (loaded) zone a corpse is in.

  • Corpses now store the list of consented player names. Previously clients stored a list of players they could drag corpses for.

Guild consent is persistent. The character_corpses table has a new guild_consent_idcolumn which is updated when a player issues a guild consent command. This means guild consented corpses may be dragged by guild members after a corpse is loaded (summoning the corpse to another zone or loading the corpse in a previously unloaded zone)

Group and raid consent are not persistent. Corpses will lose these consents when a corpse is summoned or if the corpse is loaded by a zone after consent was issued.

1/15/2020

Uleat

Update to EVENT_COMMAND and EVENT_BOT_COMMAND

The handlers for EVENT_COMMAND and EVENT_BOT_COMMAND have been updated to allow a 'no change' behavior.

Script files using these event types will perform as before without the need to move the command scripting into them .. so long as there is no defined function for them.

Once a definition is given, the old method of using EVENT_SAY to handle them will no longer work and the new formatting must be applied.

If you have any questions, please direct them to our forums or the #support-quest-scripts channel in discord.

1/10/2020

Akkadius

Character Soft Deletes

Unless new system rule Character:SoftDeletes (default: true) is disabled, characters will now no longer hard delete from all respective character tables and will only be marked as deleted via the newly created deleted_at column that can be found in the character_data table. This can make it far easier to recover accidentally deleted characters

1/7/2020

Uleat

EVENT_COMMAND and EVENT_BOT_COMMAND

  • EVENT_COMMAND now processes its own code and is no longer shared with EVENT_SAY

  • EVENT_BOT_COMMAND was added..but, will have limited functionality until more of the Bot class is exposed in the scripting apis

  • Both event types have new or updated entries on the Events page

  • In the template scripts, just replace the example command data with your own

  • Perl: "command_name" => [<status_required>, "command_description"]

  • Lua: ["command_name"] = {<status_required>, "command_description"}

  • Anything in the command_data hash will be automatically parsed upon any #help call - to include partial matching criteria

  • The same is true for bot_command_data

  • These templates are not required for use..but, do provide a basic 'use' structure so that command coding is simplified and easier to implement

  • Older 'say' command code may still work as-is..though, it has not been tested