Jump to content

Nairol

Members
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by Nairol


  1. +1

    I would suggest adjusting the command as:
    .phase password set PASSWORD

    So that we can get a command, in case one forgets password as owner:
    .phase password list

    Not to mention, it makes it easier to add future sub-commands to the Password list. A crude example:

    .phase password setwhitelist PASSWORD

    If player X, wants to enter a phase that they aren't whitelisted to. They essentially send a Request to all officers/Owner online at that moment for said phase. Working in similar fashion to when people want to .appear or .summon a player. Basically, it means you have 'two passwords' per phase. One that is specific to a whitelisted phase, and one that is default, Blacklist phase.

    Text that can appear to officers/owners:
    [PLAYER] could not appear to phase [Builder's Haven - 26000] because they aren't whitelisted. To add [PLAYER] to whitelist, write .phase whitelist add PLAYER or [COPY COMMAND].

    Not to mention:
    .phase password remove PASSWORD


  2. Hi.

    With the inclusion of the addon, Arcanum, in the official Epsilon package. We can suddenly automate a series of command in a simple manner. Which is GREAT!

    But... I stumbled upon an issue that I feel could be fixed/become a feature. An ability to copy the npc ID and keep it cross phase.
    For example... How I want it to work;
    1) Select NPC, or command that selects the nearest NPC, .npc sel near
    2) Click Arcanum Cast
    A> .npc go
    B> .npc copy setvariable Z
    C> .ph e X
    D> .npc spawn variable Z
    E> .ph e Y
    3) Repeat
    Today, step 2B and step 2D doesn't work. You have to manually input or click to accomplish this.

    Basically, the command allow the player to set a variable to save a given NPC SpawnID into. Then the player can extract that onto a NPC spawn command. A bit like a lot of manual calculators store calculations into 'ans'.
    But it is up to you, if you want the player to be able to store multiple different Variables under different types of Variable definitions, or if a singular variable enough. I feel a singular variable string is enough.
    Basically,
    A new subcommand for .npc copy and .npc spawn.
    .npc copy setvariable -> Creates a <NPC SpawnID> as a variable on the local/server side.
    .npc spawn variable -> Pulls <NPC SpawnID> data from set variable, from local/server side.
    Variable Should clear to 0 (or placeholder ID), whenever the player logs off.

    In a way, this type of command allows a manual process of copying NPCs from starter phase onto a chosen phase. For example, wildlife npc's. And if you can then add more commands into the string, like setting a random movement pattern? We suddenly accelerate that process for players.

    If one were to choose to allow a player to store multiple different Variables under different types of Variable definitions, I strongly suggest these are Pre-made/Set. For example, A0 to A9 allows 10 stored NPC ID. It prevents a player to be able to store a customized string that is 250 characters long.

    Basic Calculator reference below...
    https://media.discordapp.net/attachments/1135949613271089233/1135949627988922368/bild.png

     


  3. Spoiler

    image.png.474231f044448b8864bc517b3dc22c9b.pngimage.png.7bd09ed03cfc18a7d4829ae7482e7bfe.png

    With that out of the way...

    • Type of Bug:
    Clock, Timezones, Syncing
    • Description:
    Server restarts/crashes causes .ph set time to fall out of sync.

    • Evidence (Chat message/Screenshot):

      {
            GameTime = time(nullptr);
            GameMSTime = getMSTime();
            GameTimeSystemPoint = std::chrono::system_clock::now();
            GameTimeSteadyPoint = std::chrono::steady_clock::now();
            localtime_r(&GameTime, &DateTime);
        }
        time_t gt = GameTime::GetGameTime();
        const unsigned int time = (gt - (gt % 86400)) + (offset * 60);
        WorldPackets::Misc::LoginSetTimeSpeed loginSetTimeSpeed;
        loginSetTimeSpeed.NewSpeed = 0.01666667f;
        loginSetTimeSpeed.GameTime = time;
        loginSetTimeSpeed.ServerTime = time;
        loginSetTimeSpeed.GameTimeHolidayOffset = 0;
        loginSetTimeSpeed.ServerTimeHolidayOffset = 0;
        SendDirectMessage(loginSetTimeSpeed.Write());
        if (permanent)
            m_timePermanent = offset;
        else
            m_timePermanent = -1;

    • Steps to reproduce:
    Can't. Based on Razmataz experience.

    • Expected result:
    If I set a time, for example... .ph set (MyTime)
    After a restart that lasts for 1 minute, and I re-join the phase. Clock should be (MyTime).

    • Observed result:
    Observed result tend to be (MyTime)-(Crashtime)

    • Reproduction rate:
    100% in current state.

    • Additional information:
    The discussion came up in tandem with me asking Razmataz how difficult it is to add time-zone tags to .ph set.
    For example, setting my phase's time to follow GMT+/-0 through
    • .ph set time GMT+0
    • .ph set time GMT-0

    In tandem with this, Razmataz had an outburst 'Scream'.

    My suggestion was:
    1) Polling script, that pulls time data from an external resource, for example... the Server Computer.
    2) Assuming the polled data is a Constant, verify its set Timezone and calculate the rest timezones with addition(+) and substraction(-).
    3) Create a tag-list with every timezone, UTC or GMT with the calculations. For example,
    Timezone.Server = ServerTZ
    Time.Server = ServerTClock
    IF 12+(GMT-12) = ServerTZ THEN
    GMT+1 = ServerTClock
    ELSE
    GMT+1 = ServerTZ+1
    ServerTClock+(GMT+1)
    END

    Horrible attempt at Logic coding but, something like that. At least, it seemed to work in Excel. See below.

    Spoiler

    image.png.08a24f872be968f4bcd3ecbd7918e9f1.png

    4) Re-visit .ph set command list, allow phases to tag these timezones.

×