The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 786 - File: showthread.php PHP 7.4.33-nmm7 (Linux)
File Line Function
/showthread.php 786 errorHandler->error






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Move speed formula
Author Message
Aimed
Apprentice
*

Posts: 20
Likes Given: 0
Likes Received: 4 in 3 posts
Joined: Apr 2015
Reputation: 0



Post: #1
Move speed formula
Hello Sphere devs!
I'm roaming in your core once again and I have a question about this:

Code:
    // TAG.OVERRIDE.MOVERATE
    INT64 tTick;
    CVarDefCont * pValue = GetKey("OVERRIDE.MOVERATE", true);
    if (pValue)
        tTick = pValue->GetValNum();    //Taking value from tag.override.moverate
    else
        tTick = pCharDef->m_iMoveRate;    //no tag.override.moverate, we get default moverate (created from ini's one).
    // END TAG.OVERRIDE.MOVERATE
    if (fRun)
    {
        if (IsStatFlag(STATF_Pet))    // pets run a little faster.
        {
            if (iDex < 75)
                iDex = 75;
        }
        iTickNext = TICK_PER_SEC / 4 + Calc_GetRandLLVal((100 - (iDex*tTick) / 100) / 5) * TICK_PER_SEC / 10;
    }
    else
        iTickNext = TICK_PER_SEC + Calc_GetRandLLVal((100 - (iDex*tTick) / 100) / 3) * TICK_PER_SEC / 10;

    if (iTickNext < 1)
        iTickNext = 1;
    else if (iTickNext > 50)
        iTickNext = 50;

    SetTimeout(iTickNext);
    EXC_CATCH;
    return 1;

Taken from CCharNPCAct.cpp start is at line 975 ( on git ).

SO my question is about TICK_PER_SEC. I've found a define in another file and there TICK_PER_SEC is 10.

You can not configure this anywhere else.
1)So does this mean that the last part of the formula with * TICK_PER_SEC / 10 is useless, as TICK_PER_SEC always equals 10?
2)SetTimeout(iTickNext) if iTickNext == 16, does it mean, that next *AI tick* for this object will be over 1.6 sec ?

Thanks in advance,

-Aimed
(This post was last modified: 10-23-2015 10:41 AM by Aimed.)
10-23-2015 10:37 AM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Messages In This Thread
Move speed formula - Aimed - 10-23-2015 10:37 AM
RE: Move speed formula - XuN - 10-23-2015, 06:57 PM
RE: Move speed formula - Aimed - 10-23-2015, 07:34 PM
RE: Move speed formula - darksun84 - 10-23-2015, 10:34 PM
RE: Move speed formula - Aimed - 10-23-2015, 10:51 PM
RE: Move speed formula - darksun84 - 10-23-2015, 11:24 PM
RE: Move speed formula - XuN - 10-24-2015, 02:31 AM
RE: Move speed formula - Aimed - 10-26-2015, 05:58 PM
RE: Move speed formula - Aimed - 10-29-2015, 09:50 PM
RE: Move speed formula - XuN - 10-29-2015, 10:35 PM

Forum Jump:


User(s) browsing this thread: 5 Guest(s)