danielkrupinski / Osiris

Cross-platform game hack for Counter-Strike 2 with Panorama-based GUI.
MIT License
3.34k stars 963 forks source link

Hi I need some help. #895

Closed fangshang closed 1 year ago

fangshang commented 4 years ago

I have little to no expirience is C++ and I am really wanting to get into it. How must I start to add a clantag like gamesense. I think this would look like it but I do not know how to add it into Orisis. Help please?

std::string clantagText = "gamesense";
    size_t clantagSize = clantagText.length();
    std::string spacesText(clantagSize, ' ');
    clantagText = spacesText + clantagText + spacesText;
    for (int i = 0; i < clantagSize * 2; i++)
        std::cout<<clantagText.substr(i, clantagSize)<<std::endl;
abdallahmehiz commented 4 years ago

just use the current animated clan-tag in the misc tab ._.

Fuwn commented 4 years ago

just use the current animated clan-tag in the misc tab ._.

just saw this thread, the current animated clantag is directionally scrolling. however, the gamesense clantag uses animated properties that allow it to stack up. a valid example of this that might work if you can find a way to implament it to the current osiris variables would be;

{
    switch (int(g_Globals->curtime * 2.4) % 27)
    {
    case 0: setclantag(XorStr("                  ")); break;
    case 1: setclantag(XorStr("                 g")); break;
    case 2: setclantag(XorStr("                ga")); break;
    case 3: setclantag(XorStr("               gam")); break;
    case 4: setclantag(XorStr("              game")); break;
    case 5: setclantag(XorStr("             games")); break;
    case 6: setclantag(XorStr("            gamese")); break;
    case 7: setclantag(XorStr("           gamesen")); break;
    case 8: setclantag(XorStr("          gamesens")); break;
    case 9: setclantag(XorStr("         gamesense")); break;
    case 10:setclantag(XorStr("        gamesense ")); break;
    case 11:setclantag(XorStr("       gamesense  ")); break;
    case 12:setclantag(XorStr("      gamesense   ")); break;
    case 13:setclantag(XorStr("     gamesense    ")); break;
    case 14:setclantag(XorStr("    gamesense     ")); break;
    case 15:setclantag(XorStr("   gamesense      ")); break;
    case 16:setclantag(XorStr("  gamesense       ")); break;
    case 17:setclantag(XorStr(" gamesense        ")); break;
    case 18:setclantag(XorStr("gamesense         ")); break;
    case 19:setclantag(XorStr("amesense          ")); break;
    case 20:setclantag(XorStr("mesense           ")); break;
    case 22:setclantag(XorStr("esense            ")); break;
    case 23:setclantag(XorStr("sense             ")); break;
    case 24:setclantag(XorStr("sens              ")); break;
    case 25:setclantag(XorStr("sen               ")); break;
    case 26:setclantag(XorStr("se                ")); break;
    case 27:setclantag(XorStr("s                 ")); break;

    }
}

though, the gamesense clantag slows down once it is fully stacked out, so if you wanted to you could add some extra frames to make it look like that however i highly doubt that you can have a 1:1 clantag effect as the gamesense clantag is 64 tick-based. hope this helps a little.

ghost commented 4 years ago

^ that is a terrible anti-pattern. just do substr on the text for the first x ticks, then pause for y ticks and do then do the rest of the animation

if (tick < 9) move in with substr
else if (tick < 19) do nothing
else move out with substr