[Admin] tierrilopes Posted December 9, 2015 at 05:50 PM Share Posted December 9, 2015 at 05:50 PM Abrir o ficheiro questlua_pc.cpp Procurar por: int pc_is_dead(lua_State* L){ LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if ( ch != NULL ){ lua_pushboolean(L, ch->IsDead()); return 1;} lua_pushboolean(L, true); return 1;} Adicionar isto debaixo: int pc_tirar_arma_armadura(lua_State * L){ LPITEM weapon = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_WEAPON); LPITEM armor = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_BODY); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!weapon) lua_pushnumber(L, 0); else ch->UnequipItem(weapon); if (!armor) lua_pushnumber(L, 0); else ch->UnequipItem(armor); return 1;} Ficando assim: Procurar por: { "is_dead", pc_is_dead }, Adicionar isto debaixo: { "tirar_arma_armadura", pc_tirar_arma_armadura }, Ficando assim: Adicionar o seguinte no final do ficheiro quest_function (pasta quest das files): pc.tirar_arma_armadura Como utilizar em quest? Para desequipar a arma e armadura de uma personagem, adicionar o seguinte código na quest: pc.tirar_arma_armadura() 1 1 Link to comment Share on other sites More sharing options...
pedrorrr Posted December 9, 2015 at 05:59 PM Share Posted December 9, 2015 at 05:59 PM Muito bem pensado, até poderemos editar essa função para os restantes equipamentos. :1: Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted December 9, 2015 at 06:04 PM Author Share Posted December 9, 2015 at 06:04 PM Muito bem pensado, até poderemos editar essa função para os restantes equipamentos. :1: Sim, bastará retirar ou adicionar mais argumentos. WEAR_HEAD, WEAR_BELT e assim por diante. Coloquei esses pois são os mais usados. Link to comment Share on other sites More sharing options...
pedrorrr Posted December 9, 2015 at 06:06 PM Share Posted December 9, 2015 at 06:06 PM É vou mesmo usar isso, para o que eu preciso. Ficarei com problema resolvido EDIT: Não é em questlua.cpp mas sim em questlua_pc.cpp. Exemplo se eu quiser que ele me retirar penteado e traje qual vai ser a função? Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted December 10, 2015 at 12:22 AM Author Share Posted December 10, 2015 at 12:22 AM Para remover arma, armadura, penteado e traje seria assim: int pc_tirar_arma_armadura(lua_State * L) { LPITEM weapon = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_WEAPON); LPITEM armor = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_BODY); LPITEM cabelo = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_HAIR); LPITEM traje = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_BODY); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!weapon) lua_pushnumber(L, 0); else ch->UnequipItem(weapon); if (!armor) lua_pushnumber(L, 0); else ch->UnequipItem(armor); if (!cabelo) lua_pushnumber(L, 0); else ch->UnequipItem(cabelo); if (!traje) lua_pushnumber(L, 0); else ch->UnequipItem(traje); return 1; } Link to comment Share on other sites More sharing options...
pedrorrr Posted December 10, 2015 at 01:05 AM Share Posted December 10, 2015 at 01:05 AM Bem só tenho uma coisa a dizer 100% perfeito, obrigado +1x tierrilopes :1: Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted December 14, 2015 at 09:35 PM Author Share Posted December 14, 2015 at 09:35 PM No meu game, separei as funções. Criei as seguintes: pc.tirar_arma pc.tirar_armadura pc.tirar_helm pc.tirar_botas pc.tirar_pulseira pc.tirar_brincos pc.tirar_escudo pc.tirar_cabelo pc.tirar_costume pc.tirar_colar Podem fazer o mesmo ou adaptar para retirar outros equips. Link to comment Share on other sites More sharing options...
pedrorrr Posted December 15, 2015 at 12:09 AM Share Posted December 15, 2015 at 12:09 AM @tierrilopes É muito bem pensado isso para o caso de se querer fazer só "X" em alguma quest. Eu neste caso vou deixar a que fiz e adicionar mais uma para cada equipe Obrigado e :1: Link to comment Share on other sites More sharing options...
pedrorrr Posted December 19, 2015 at 01:46 PM Share Posted December 19, 2015 at 01:46 PM Para quem quiser como o @tierrilopes disse que fez agora por ultimo, aqui fica o código já: // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_arma(lua_State * L) { LPITEM arma = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_WEAPON); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!arma) lua_pushnumber(L, 0); else ch->UnequipItem(arma); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_armadura(lua_State * L) { LPITEM armadura = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_BODY); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!armadura) lua_pushnumber(L, 0); else ch->UnequipItem(armadura); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_elmo(lua_State * L) { LPITEM elmo = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_HEAD); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!elmo) lua_pushnumber(L, 0); else ch->UnequipItem(elmo); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_escudo(lua_State * L) { LPITEM escudo = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_SHIELD); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!escudo) lua_pushnumber(L, 0); else ch->UnequipItem(escudo); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_botas(lua_State * L) { LPITEM botas = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_FOOTS); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!botas) lua_pushnumber(L, 0); else ch->UnequipItem(botas); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_pulseira(lua_State * L) { LPITEM pulseira = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_WRIST); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!pulseira) lua_pushnumber(L, 0); else ch->UnequipItem(pulseira); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_brincos(lua_State * L) { LPITEM brincos = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_EAR); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!brincos) lua_pushnumber(L, 0); else ch->UnequipItem(brincos); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_colar(lua_State * L) { LPITEM colar = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_NECK); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!colar) lua_pushnumber(L, 0); else ch->UnequipItem(colar); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_traje(lua_State * L) { LPITEM traje = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_BODY); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!traje) lua_pushnumber(L, 0); else ch->UnequipItem(traje); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_cabelo(lua_State * L) { LPITEM cabelo = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_HAIR); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!cabelo) lua_pushnumber(L, 0); else ch->UnequipItem(cabelo); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP int pc_desequipar_cinto(lua_State * L) { LPITEM cinto = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_BELT); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!cinto) lua_pushnumber(L, 0); else ch->UnequipItem(cinto); return 1; } // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP { "desequipar_arma", pc_desequipar_arma }, { "desequipar_armadura", pc_desequipar_armadura }, { "desequipar_elmo", pc_desequipar_elmo }, { "desequipar_colar", pc_desequipar_colar }, { "desequipar_brincos", pc_desequipar_brincos }, { "desequipar_botas", pc_desequipar_botas }, { "desequipar_pulseira", pc_desequipar_pulseira }, { "desequipar_escudo", pc_desequipar_escudo }, { "desequipar_cabelo", pc_desequipar_cabelo }, { "desequipar_traje", pc_desequipar_traje }, { "desequipar_cinto", pc_desequipar_cinto }, // Função de retirar equipes -- By: Tierrilopes -- Alteração: Pedrorrr aka MasterOP Quest Functions: pc.desequipar_arma pc.desequipar_armadura pc.desequipar_elmo pc.desequipar_colar pc.desequipar_brincos pc.desequipar_botas pc.desequipar_pulseira pc.desequipar_escudo pc.desequipar_cabelo pc.desequipar_traje pc.desequipar_cinto Link to comment Share on other sites More sharing options...
Marcos Posted June 7, 2017 at 03:16 PM Share Posted June 7, 2017 at 03:16 PM Testado e 100% Funcionando Parabéns ao dois pela partilha do conhecimento, obrigado +1 Link to comment Share on other sites More sharing options...
Aeglon Posted November 10, 2017 at 07:34 PM Share Posted November 10, 2017 at 07:34 PM Uma pequena actualização "Costume_weapons" Spoiler int pc_desequipar_costume(lua_State * L) { LPITEM costume = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(COSTUME_WEAPON); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!costume) lua_pushnumber(L, 0); else ch->UnequipItem(costume); return 1; } { "desequipar_costume", pc_desequipar_costume }, Link to comment Share on other sites More sharing options...
F-Caneiras Posted January 26, 2019 at 11:23 PM Share Posted January 26, 2019 at 11:23 PM Bom Tutorial Obrigado pela partilha. Link to comment Share on other sites More sharing options...
OnlineVip Posted May 2, 2021 at 03:17 PM Share Posted May 2, 2021 at 03:17 PM RR Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now