• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋
  • We've added LLM sections to our Terms & Rules and Resource Rules, for everyone's sanity & in-game safety.
    Read more
    a. Do not replace your voice with an LLM. This goes for your posts and your scripts. Drafting and editing with a tool is fine, but don't take you out of what you share.
    b. Do not replace your EQ character's voice with an LLM. We don't want scripts that speak over /ooc, /shout or other public channels. This has been an unwritten rule that's kept casino scripts off the site for decades, but we're now compelled to make it clear: keep automated communication private.

    Why Does RG Review Scripts?
    Nearly every LLM-written Lua script we see is making your character do impossible things, and rarely in a way that's beneficial to you. We've seen heavy server hammering, /target over impossible distances when /nav spawn would passively accomplish the same thing, a spawn search that fires 20+ times per second, and other pointless actions that are likely annoying GMs.

    You are welcome to use LLMs as a tool to structure, draft, and edit your work, but please read critically before hitting /lua run

Plugin - MQ2LanguageTrainer

plugin version of the language macro... because i was bored...

C++:
#include "../MQ2Plugin.h"
#include <ctime>

PreSetup("MQ2LanguageTrainer");

bool TrainingEnabled;
clock_t WaitTime;
CHAR pBuffer[256];
std::vector <std::string> colour;

void ToggleTraining(PSPAWNINFO pChar, PCHAR szLine)
{
    TrainingEnabled = !TrainingEnabled;
}

PLUGIN_API VOID InitializePlugin(VOID)
{
    colour.push_back("Blue");
    colour.push_back("Red");
    colour.push_back("Orange");
    colour.push_back("Yellow");
    WaitTime = clock();
    TrainingEnabled = false;
    AddCommand("/LanguageTrain",ToggleTraining);
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
    RemoveCommand("/LanguageTrain");
}

PLUGIN_API VOID OnPulse(VOID)
{
    if (TrainingEnabled && WaitTime <= clock()) {
        auto i = rand() % colour.size();
        sprintf(pBuffer, "/g %s", colour[i].c_str());
        DoCommandCmd((PSPAWNINFO)pLocalPlayer, pBuffer);
        WaitTime = clock() + 150;
    }
}
 
plugin version of the language macro... because i was bored...

C++:
#include "../MQ2Plugin.h"
#include <ctime>

PreSetup("MQ2LanguageTrainer");

bool TrainingEnabled;
clock_t WaitTime;
CHAR pBuffer[256];
std::vector <std::string> colour;

void ToggleTraining(PSPAWNINFO pChar, PCHAR szLine)
{
    TrainingEnabled = !TrainingEnabled;
}

PLUGIN_API VOID InitializePlugin(VOID)
{
    colour.push_back("Blue");
    colour.push_back("Red");
    colour.push_back("Orange");
    colour.push_back("Yellow");
    WaitTime = clock();
    TrainingEnabled = false;
    AddCommand("/LanguageTrain",ToggleTraining);
}

PLUGIN_API VOID ShutdownPlugin(VOID)
{
    RemoveCommand("/mycommand");
}

PLUGIN_API VOID OnPulse(VOID)
{
    if (TrainingEnabled && WaitTime <= clock()) {
        auto i = rand() % colour.size();
        sprintf(pBuffer, "/g %s", colour[i].c_str());
        DoCommandCmd((PSPAWNINFO)pLocalPlayer, pBuffer);
        WaitTime = clock() + 150;
    }
}
Should the removeCommand be RemoveCommand("LanguageTrain"); ?
 
I had a very simple one a few years ago that basically maxes languages in 2-3 minutes. Here it is for reference, I modified one I found due to an invalid language number.:

lang.mac
INI:
| Edited by BlankStare. Modified to skip Common (1) and Alaran (26). The original had 1-27 languages, unsure what 27 is/was.

#turbo

Sub Main
   /echo Language Macro Starting

   /declare lang int local

   :Langloop
 
   /for lang 2 to 25

    /language ${lang}
        
        /g .

  /next lang

  /goto :Langloop

/return

You run this on the character that has at least 1 skill in every language, and obviously to learn languages you need to be grouped in the same zone. Characters with some skill in a language will also skill-up to 100 while teaching it in a group. Characters with low INT/WIS will take 30-60 seconds longer than high INT/WIS stats.
 
I had a very simple one a few years ago that basically maxes languages in 2-3 minutes. Here it is for reference, I modified one I found due to an invalid language number.:

lang.mac
INI:
| Edited by BlankStare. Modified to skip Common (1) and Alaran (26). The original had 1-27 languages, unsure what 27 is/was.

#turbo

Sub Main
   /echo Language Macro Starting

   /declare lang int local

   :Langloop

   /for lang 2 to 25

    /language ${lang}
      
        /g .

  /next lang

  /goto :Langloop

/return

You run this on the character that has at least 1 skill in every language, and obviously to learn languages you need to be grouped in the same zone. Characters with some skill in a language will also skill-up to 100 while teaching it in a group. Characters with low INT/WIS will take 30-60 seconds longer than high INT/WIS stats.
As it says 26 is Alaran and 27 is Hadal eq:Language :: Wiki :: EverQuest :: ZAM (allakhazam.com) and learning Hadal requires Alaran to get the quest Rubak #1: Oseka's Knowledge :: Quests :: EverQuest :: ZAM (allakhazam.com)
 
Plugin - MQ2LanguageTrainer

Users who are viewing this thread

Back
Top
Cart