Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

7.6 YurOts Czary na pomarańczowo


VRUMaster

Rekomendowane odpowiedzi

Opublikowano

Potrzebuje aby ktoś powiedział mi jak przerobić ten oto kod aby czary wyświetlały się na pomarańczowo (nie zaśmiecały czatu):

Cytat

void Game::creatureSay(Creature *creature, SpeakClasses type, const std::string &text)
{
    OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::creatureSay()");

    bool GMcommand = false;
    // First, check if this was a GM command
    for(size_t i=0;i< commandTags.size() ;i++){
        if(commandTags == text.substr(0,1)){
            if(commands.exeCommand(creature,text)){
                GMcommand = true;
            }
            break;
        }
    }
    if(!GMcommand){
        Player* player = dynamic_cast<Player*>(creature);
        if (player)
            checkSpell(player, type, text);

        // It was no command, or it was just a player
        SpectatorVec list;
        SpectatorVec::iterator it;

        getSpectators(Range(creature->pos), list);

        //players
        for(it = list.begin(); it != list.end(); ++it) {
            if(dynamic_cast<Player*>(*it)) {
                (*it)->onCreatureSay(creature, type, text);
            }
        }

        //none-players
        for(it = list.begin(); it != list.end(); ++it) {
            if(!dynamic_cast<Player*>(*it)) {
                (*it)->onCreatureSay(creature, type, text);
            }
        }
    }
}

 

Opublikowano

musisz zmienić type na monstera:

(*it)->onCreatureSay(creature, type, text);

Ale lepiej to zrobić chyba w spells.cpp (jeśli tam jest jakieś odwołanie do funkjci creatureSay a powinno być z zadeklarowanym typem)

Opublikowano


void Game::creatureSay(Creature *creature, SpeakClasses type, const std::string &text)
{
    OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::creatureSay()");

    bool GMcommand = false;
    // First, check if this was a GM command
    for(size_t i=0;i< commandTags.size() ;i++){
        if(commandTags == text.substr(0,1)){
            if(commands.exeCommand(creature,text)){
                GMcommand = true;
            }
            break;
        }
    }
    if(!GMcommand){
        Player* player = dynamic_cast<Player*>(creature);
        if (player)
            checkSpell(player, type, text);

        // It was no command, or it was just a player
        SpectatorVec list;
        SpectatorVec::iterator it;

        getSpectators(Range(creature->pos), list);

        //none-players
        for(it = list.begin(); it != list.end(); ++it) {
            if(!dynamic_cast<Player*>(*it)) {
                (*it)->onCreatureSay(creature, type, text);
            }
        }
    }
}

Try

Opublikowano
18 godzin temu, Dakos napisał:

 


void Game::creatureSay(Creature *creature, SpeakClasses type, const std::string &text)
{
    OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::creatureSay()");

    bool GMcommand = false;
    // First, check if this was a GM command
    for(size_t i=0;i< commandTags.size() ;i++){
        if(commandTags == text.substr(0,1)){
            if(commands.exeCommand(creature,text)){
                GMcommand = true;
            }
            break;
        }
    }
    if(!GMcommand){
        Player* player = dynamic_cast<Player*>(creature);
        if (player)
            checkSpell(player, type, text);

        // It was no command, or it was just a player
        SpectatorVec list;
        SpectatorVec::iterator it;

        getSpectators(Range(creature->pos), list);

        //none-players
        for(it = list.begin(); it != list.end(); ++it) {
            if(!dynamic_cast<Player*>(*it)) {
                (*it)->onCreatureSay(creature, type, text);
            }
        }
    }
}

 

Try

 

 In member function `void Game::creatureSay(Creature*, SpeakClasses, const std::string&)': 

 no match for 'operator==' in '((Game*)this)->Game::commandTags == std::basic_string<_CharT, _Traits, _Alloc>::substr(typename _Alloc::size_type, typename _Alloc::size_type) const [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](0u, 1u)' 

 note C:\Dev-Cpp\include\objbase.h:80 candidates are: BOOL operator==(const GUID&, const GUID&) 

 [Build Error]  [obj/game.o] Error 1 

23 godziny temu, rafaeru napisał:

musisz zmienić type na monstera:


(*it)->onCreatureSay(creature, type, text);

Ale lepiej to zrobić chyba w spells.cpp (jeśli tam jest jakieś odwołanie do funkjci creatureSay a powinno być z zadeklarowanym typem)

 

zmieniałem już type i nic nie pomagalo. 

W spells.cpp nie ma odwołania do creatureSay

 

 

 

 

 

 

Dobra udało mi się zrobić. Zamieniłem type na SPEAK_MONSTER1 i wszystko działa cacy. Dzieki za pomoc :)

  • Aive zmienił(a) tytuł na 7.6 YurOts Czary na pomarańczowo

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...