Beeki 284 Postado Fevereiro 25, 2012 Share Postado Fevereiro 25, 2012 (editado) Bem vim trazer essa função aqui pra vocês é bem util pra quem está afim de criar um otserver completo! Vá até quests.cpp e procure por. std::string Mission::getDescription(Player* player) Depois de achar, substitua por isso. std::string Mission::getDescription(Player* player) { std::string value; int32_t find_storage; player->getStorage(storageId, value); if(state.size()) { std::string ret = state; while((find_storage=ret.find("|STORAGE:"))>-1) { int32_t parsing_storage = find_storage+9; std::string temp; while((int) ret[parsing_storage] != (int)'|') { temp += ret[parsing_storage]; parsing_storage++; } parsing_storage -=find_storage-1; player->getStorage(atoi(temp.c_str()), temp); ret.replace(find_storage, parsing_storage, temp); } replaceString(ret, "|STATE|", value); return ret; } if(atoi(value.c_str()) >= endValue) { std::string ret = states.rbegin()->second; while((find_storage=ret.find("|STORAGE:"))>-1) { int32_t parsing_storage = find_storage+9; std::string temp; while((int) ret[parsing_storage] != (int)'|') { temp += ret[parsing_storage]; parsing_storage++; } parsing_storage -=find_storage-1; player->getStorage(atoi(temp.c_str()), temp); ret.replace(find_storage, parsing_storage, temp); } replaceString(ret, "|STATE|", value); return ret; } for(int32_t i = endValue; i >= startValue; --i) { player->getStorage(storageId, value); if(atoi(value.c_str()) != i) continue; std::string ret = states[i - startValue]; while((find_storage=ret.find("|STORAGE:"))>-1) { int32_t parsing_storage = find_storage+9; std::string temp; while((int) ret[parsing_storage] != (int)'|') { temp += ret[parsing_storage]; parsing_storage++; } parsing_storage -=find_storage-1; player->getStorage(atoi(temp.c_str()), temp); ret.replace(find_storage, parsing_storage, temp); } replaceString(ret, "|STATE|", value); return ret; } return "Couldn't retrieve any mission description, please report to a gamemaster."; } Pronto depois só compilar. Aqui está um exemplo de como adicionar novas quests no arquivo.xml <mission name="The head of Kiper" storageid="1001" startvalue="1" endvalue="3"> <missionstate id="0" description="Kill Rotworms to summon a Kiper!! You've killed already |STORAGE:1002|/50 Rotworms and |STORAGE:1500|/2 Carrion Rotworms."/> <missionstate id="1" description="Give his head to Talaturen!"/> <missionstate id="2" description="Take the medal you got from Talaturen to Ruly!"/> </mission> Creditos: Beeki ( por trazer ) QuaS ( OTland ) @Edit testei somente no tfs 0.4 e no 0.3.6 pl1 Editado Março 25, 2012 por Beeki Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/ Compartilhar em outros sites More sharing options...
Vinc 101 Postado Março 25, 2012 Share Postado Março 25, 2012 isso vai aparece naquele janelinha que abre no cliente quando clica em quests? Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1224209 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Março 25, 2012 Autor Share Postado Março 25, 2012 Isso mesmo. Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1224227 Compartilhar em outros sites More sharing options...
Vinc 101 Postado Março 25, 2012 Share Postado Março 25, 2012 muito bom rep+,isso pode ajudar muito os players Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1224303 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Março 25, 2012 Autor Share Postado Março 25, 2012 Obrigado ai, qualquer dúvida só postar. Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1224309 Compartilhar em outros sites More sharing options...
Vinc 101 Postado Março 25, 2012 Share Postado Março 25, 2012 n é relacionado ao topico mas vc conseguiria fase uma lua function para dar reload num player(reload na sql ou mysql)?tipo o load que da quando o player loga mas que de reload em uma table especifica,coluna ou todas,isso seria muito util, daria pra fsaer varios sistemas sem muda te que mexe nas sourcers Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1224343 Compartilhar em outros sites More sharing options...
kriller12 1 Postado Abril 1, 2012 Share Postado Abril 1, 2012 cara ajuda,eu não entendi a ultima parte que: <mission name="The head of Kiper" storageid="1001" startvalue="1" endvalue="3"> <missionstate id="0" description="Kill Rotworms to summon a Kiper!! You've killed already |STORAGE:1002|/50 Rotworms and |STORAGE:1500|/2 Carrion Rotworms."/> <missionstate id="1" description="Give his head to Talaturen!"/> <missionstate id="2" description="Take the medal you got from Talaturen to Ruly!"/> </mission> onde eu coloco isso? Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1229115 Compartilhar em outros sites More sharing options...
Beeki 284 Postado Abril 2, 2012 Autor Share Postado Abril 2, 2012 (editado) @Kriller Cara isso ai é só um exemplo de como adicionar uma quest no quests.xml apos ser feito a introdução do código acima em sua source. @Lordbug um exemplo para o que você quer é isso aqui. db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'") função db.executeQuery Editado Abril 6, 2012 por Beeki Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1229120 Compartilhar em outros sites More sharing options...
claudio17 0 Postado Janeiro 22, 2013 Share Postado Janeiro 22, 2013 aeew cara os primeiros player funcionou normal mais depois ele não aparece mais no quest log ... Link para o comentário https://xtibia.com/forum/topic/181251-fun%C3%A7%C3%A3o-questsxml/#findComment-1445916 Compartilhar em outros sites More sharing options...
Posts Recomendados