Ir para conteúdo

Featured Replies

  • Respostas 22
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Você tem a source, certo? Veja em creaturescripts.cpp ou creatureevents.cpp e procure por onDeath, vai ter junto de onDeath outras callbacks. Copie todas elas aqui.   Crie o hábito de procurar como

  • Thiago Virtuoso
    Thiago Virtuoso

    @Edit consegui resolver depois que olhei as callbacks eu consegui criar o script.. Muito obrigado Elwyn.   Achei as sources.. e encontrei essas callbacks: case CREATURE_EVENT_DEATH: return "

Postado

TFS 1.1:

 

Em Player::toggleMount(bool):

 

bool Player::toggleMount(bool mount)
{
    if ((OTSYS_TIME() - lastToggleMount) < 3000) {
        sendCancelMessage(RETURNVALUE_YOUAREEXHAUSTED);
        return false;
    }

    if (mount) {
        if (isMounted()) {
            return false;
        }

        if (!group->access && _tile->hasFlag(TILESTATE_PROTECTIONZONE)) {
            sendCancelMessage(RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE);
            return false;
        }

        uint8_t currentMountId = getCurrentMount();
        if (currentMountId == 0) {
            sendOutfitWindow();
            return false;
        }

        Mount* currentMount = Mounts::getInstance()->getMountByID(currentMountId);
        if (!currentMount) {
            return false;
        }

        if (!hasMount(currentMount)) {
            setCurrentMount(0);
            sendOutfitWindow();
            return false;
        }

        if (currentMount->premium && !isPremium()) {
            sendCancelMessage(RETURNVALUE_YOUNEEDPREMIUMACCOUNT);
            return false;
        }

        if (hasCondition(CONDITION_OUTFIT)) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

        if (defaultOutfit.lookType == 266) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

        defaultOutfit.lookMount = currentMount->clientId;

        if (currentMount->speed != 0) {
            g_game.changeSpeed(this, currentMount->speed);
        }
    } else {
        if (!isMounted()) {
            return false;
        }

        dismount();
    }

    g_game.internalCreatureChangeOutfit(this, defaultOutfit);
    lastToggleMount = OTSYS_TIME();
    return true;
}

 

Como você pode ver em:

 

        if (defaultOutfit.lookType == 266) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

 

Player com lookType 266 não pode usar mount. Nesse caso lookType 266 é outfit de CM

Postado
  • Autor

TFS 1.1:

 

Em Player::toggleMount(bool):

bool Player::toggleMount(bool mount)
{
    if ((OTSYS_TIME() - lastToggleMount) < 3000) {
        sendCancelMessage(RETURNVALUE_YOUAREEXHAUSTED);
        return false;
    }

    if (mount) {
        if (isMounted()) {
            return false;
        }

        if (!group->access && _tile->hasFlag(TILESTATE_PROTECTIONZONE)) {
            sendCancelMessage(RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE);
            return false;
        }

        uint8_t currentMountId = getCurrentMount();
        if (currentMountId == 0) {
            sendOutfitWindow();
            return false;
        }

        Mount* currentMount = Mounts::getInstance()->getMountByID(currentMountId);
        if (!currentMount) {
            return false;
        }

        if (!hasMount(currentMount)) {
            setCurrentMount(0);
            sendOutfitWindow();
            return false;
        }

        if (currentMount->premium && !isPremium()) {
            sendCancelMessage(RETURNVALUE_YOUNEEDPREMIUMACCOUNT);
            return false;
        }

        if (hasCondition(CONDITION_OUTFIT)) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

        if (defaultOutfit.lookType == 266) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

        defaultOutfit.lookMount = currentMount->clientId;

        if (currentMount->speed != 0) {
            g_game.changeSpeed(this, currentMount->speed);
        }
    } else {
        if (!isMounted()) {
            return false;
        }

        dismount();
    }

    g_game.internalCreatureChangeOutfit(this, defaultOutfit);
    lastToggleMount = OTSYS_TIME();
    return true;
}

Como você pode ver em:

        if (defaultOutfit.lookType == 266) {
            sendCancelMessage(RETURNVALUE_NOTPOSSIBLE);
            return false;
        }

Player com lookType 266 não pode usar mount. Nesse caso lookType 266 é outfit de CM

Não teria como fazer um creaturescripts para não permitir que o player com um certo outfit não use montaria? Pois mesmo usando o outfit de CM o player pode usar montaria ;-;

Postado

Você adicionou a parte que eu destaquei no seu código? Ela não está adicionada normalmente, eu adicionei para mostrar. Depois de adicionar você tem que compilar também. E detalhe, se sua source não for do TFS 1.0 pra cima, é capaz de dar erro nessa linha porque houveram muitas mudanças de 0.3.6 até 1.0

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo