Oneshot 732 Postado Outubro 26, 2013 Share Postado Outubro 26, 2013 (editado) Oi, pessoal. Eu não sei se essa função é útil para vocês, mas lembro que um certo tempo atrás, teve um membro que pediu ela. Essa função no caso simula o funcionamento da opção "Trade with..." Lembrando que foi feito com base no 0.4, então pode não funcionar em versões inferiores. Em luascript.h, adicione essa linha, abaixo de linhas parecidas. static int32_t luaDoStartTrade(lua_State* L); Em luascript.cpp, adicione isso perto de linhas parecidas. //doStartTrade(cid, target, item) lua_register(m_luaState, "doStartTrade", LuaInterface::luaDoStartTrade); Ainda em luascript.cpp, adicione isso logo abaixo de alguma estrutura parecida. int32_t LuaInterface::luaDoStartTrade(lua_State* L) { ScriptEnviroment* env = getEnv(); Item* item = env->getItemByUID(popNumber(L)); if(!item) { errorEx(getError(LUA_ERROR_ITEM_NOT_FOUND)); lua_pushboolean(L, false); return 1; } Player* target = env->getPlayerByUID(popNumber(L)); Player* player = env->getPlayerByUID(popNumber(L)); if(!player || !target) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); return 1; } if(g_game.internalStartTrade(player, target, item)) { lua_pushboolean(L, true); return 1; } return 1; } Eu realmente não sei qual pode ser a utilização disso nos servidores, então, boa sorte com a criatividade, xtibianos. Abraços. Editado Janeiro 7, 2014 por Oneshot Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/ Compartilhar em outros sites More sharing options...
Beeki 284 Postado Outubro 26, 2013 Share Postado Outubro 26, 2013 ótimo código, obrigado. rep+ Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576299 Compartilhar em outros sites More sharing options...
Fir3element 185 Postado Outubro 27, 2013 Share Postado Outubro 27, 2013 poderia explicar pq tem duas variáveis com o msm valor ? Player* target = env->getPlayerByUID(popNumber(L)); Player* player = env->getPlayerByUID(popNumber(L)); vlws, boa função rep+ Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576439 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Outubro 27, 2013 Autor Share Postado Outubro 27, 2013 (editado) poderia explicar pq tem duas variáveis com o msm valor ? Player* target = env->getPlayerByUID(popNumber(L)); Player* player = env->getPlayerByUID(popNumber(L)); vlws, boa função rep+ Elas não têm o mesmo valor. Editado Outubro 27, 2013 por Oneshot Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576440 Compartilhar em outros sites More sharing options...
kttallan 319 Postado Outubro 27, 2013 Share Postado Outubro 27, 2013 Qual quer codigo de programação é bem vindo pois essa area não estar com muito conteud. Parabens você é 10, Ja sei como vou usar ele haha ^^ Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576466 Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Outubro 27, 2013 Share Postado Outubro 27, 2013 Não entendi exatamente o que faz, mas o código está ótimo. Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576515 Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Outubro 27, 2013 Share Postado Outubro 27, 2013 Maneiro, dá pra fazer muitas coisas com isso. Poderia dar suporte pra trade com NPCs e até monstros (?), tipo parte de quest, ficaria legal. Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1576517 Compartilhar em outros sites More sharing options...
Martelix 3 Postado Novembro 8, 2013 Share Postado Novembro 8, 2013 Com isso dá pra fazer um trade a distância (?) Ótimos códigos você tem, parabéns! Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1580356 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Novembro 8, 2013 Autor Share Postado Novembro 8, 2013 Com isso dá pra fazer um trade a distância (?) Ótimos códigos você tem, parabéns! Isso mesmo Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1580419 Compartilhar em outros sites More sharing options...
Maenilse 86 Postado Novembro 8, 2013 Share Postado Novembro 8, 2013 (editado) muito bom esse codigo, vai ajudar muitas pessoas que querem esse sistema, ja to usando no meu tfs 0.3.6, dei uma adaptada para poder ser adcionada e ser compilada sem error, rep+ ae Umtiro seu lindao. PS: aqui com a nova distro, funcionou sem problemas, com a adaptaçao q eu fiz, funciona o trade msm em distancia do mesmo. Editado Novembro 8, 2013 por Maenilse Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1580427 Compartilhar em outros sites More sharing options...
Martelix 3 Postado Novembro 8, 2013 Share Postado Novembro 8, 2013 Com isso dá pra fazer um trade a distância (?) Ótimos códigos você tem, parabéns! Isso mesmo Oneshot, teria como fazer por exemplo para não aceitar qualquer tipo de runa/potion no trade porque se não tiraria o RPG do jogo dando trade à distância por exemplo para pegar pot para não sair da hunt. ACredito que com um evento em creaturescripts de, não? Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1580461 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Novembro 8, 2013 Autor Share Postado Novembro 8, 2013 Com isso dá pra fazer um trade a distância (?) Ótimos códigos você tem, parabéns! Isso mesmo Oneshot, teria como fazer por exemplo para não aceitar qualquer tipo de runa/potion no trade porque se não tiraria o RPG do jogo dando trade à distância por exemplo para pegar pot para não sair da hunt. ACredito que com um evento em creaturescripts de, não? Na verdade, essa função ignora os creaturescripts. Então você teria que verificar, antes de usar, se o ID do item é uma potion, por exemplo. Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1580511 Compartilhar em outros sites More sharing options...
igorlabanca 1 Postado Janeiro 7, 2014 Share Postado Janeiro 7, 2014 (editado) Em luascript.h, adicione essa linha, abaixo de linhas parecidas. static int32_t luaDoPlayerSendMailByName(lua_State* L); Não seria para adicionar static int32_t luaDoStartTrade(lua_State* L); Editado Janeiro 7, 2014 por igorlabanca Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1599589 Compartilhar em outros sites More sharing options...
meubk 257 Postado Janeiro 7, 2014 Share Postado Janeiro 7, 2014 posso criar o item ao criar o script ? local item = doPlayerAddItem(cid, 2160, 1) doStartTrade(cid, target, item) ? Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1599759 Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Janeiro 8, 2014 Autor Share Postado Janeiro 8, 2014 Sim, a função precisa de um UID, então dessa forma que você propôs, é possível, embora eu não tenha testado. Att. Link para o comentário https://xtibia.com/forum/topic/223158-dostarttradecid-target-item/#findComment-1599982 Compartilhar em outros sites More sharing options...
Posts Recomendados