Sistema de Fogueira

Juan Meissner

New member
Messages
72
Points
0
Pessoal, eu gostaria de criar um NPC onde eu clico em um item e esse NPC é gerado na frente do jogador, e terá a opção de acender a Fogueira, onde irá ficar com um Effect nela sem parar que durará um tempo determinado e irá liberar opções exclusivas caso a fogueira esteja acesa, alguém consegue me ajudar com isso?

 
que_ng,27,66,4 script Fogueira#Casa 649,{

if (getcharid(0) != getpartyleader(getcharid(1),2))
{
unittalk getcharid(3), "Essa é a famosa "+strnpcinfo(1)+"!";
end;
}

if(select("- Acender:- Sair") == 1)
//Começar script de acender fogueira aqui .name
callsub FogueiraOn;
close;

FogueiraOn:
initnpctimer;
end;

OnTimer300:
specialeffect2 634;
end;

OnTimer600:
specialeffect2 634;
end;

OnTimer900:
specialeffect2 634;
stopnpctimer;
end;


Aqui esta como o NPC esta ficando, teoricamente eu preciso que ele faça o efeito de uma chama e ative uma variavel nele de que esteja acesa para que eu possa liberar funções no menu da Fogueira, como por exemplo assar um peixe.

 
Last edited by a moderator:
Aqui está um exemplo básico amigo.

Está funcionando bem, agora só você fazer suas modificações.

Code:
que_ng,27,66,4    script    Fogueira#Casa    4_TRACE,{
 
    if (getcharid(CHAR_ID_CHAR) != getpartyleader(getcharid(CHAR_ID_PARTY), 2))
    {
        unittalk getcharid(CHAR_ID_ACCOUNT), "Essa é a famosa " + strnpcinfo(NPC_NAME_VISIBLE) + "!";
        end;
    }
 
    // Se a fogueira estiver acesa, desabilita a opção '- Acender' e ativa '- Assar Peixe' no menu.
    if (select(((.burning == true) ? "- Assar Peixe" : "- Acender") + ":- Sair") == 1)
    {
        if (.burning == true)
        {
            // Se a fogueira estiver acesa, executa o que está aqui...
        }
        else
        {
            .burning = true;
            .burning_time = gettimetick(2) + .burning_duration;
        }
    }
 
    close;
 
    OnInit:
        .burning = false;
        .burning_time = 0;
        .burning_duration = 5;    // Duração da fogueira em segundos.
 
        while(true)
        {
            if (.burning == true)
            {
                specialeffect EF_KAEN;
 
                if (.burning_time <= gettimetick(2))
                {
                    .burning_time = 0;
                    .burning = false;
                }
            }
 
            sleep 312; // Duração da animação do fogo.
        }
    end;
}
 
Last edited by a moderator:
Back
Top