Postado Dezembro 15, 2016 8 anos Autor 2 horas atrás, Alexy Brocanello disse: seria praticamente isso ? !tradepoints Nomedoplayer, quantidade e abriria o trade do outro jogador ? ao aceitar os pontos iria por trade é isso, não entendi muito bem isso seria o que esse script faz, o que queremos é que não por um comando mais sim por trade após efetuar o trade os pontos seriam transferidos utilizando um x item para efetuar o trade dos pontos. ex: 10 Premium Scroll ao efetuar o trade passaria 10 pontos que seriam transferidos da conta, para o outro player, porem esse script faz por comando queríamos que transferi-se por trade e com item. 58 minutos atrás, Ed.Specter disse: Oneshot criou uma função doStartTrade(cid, target, item) que simula o trade, é só colocar a função na source e criar o código em lua, é bem simples na verdade. no caso em qual lugar da source eu colocaria essa função e sobre o script poderíamos usar esse porem modifica-lo ?
Postado Dezembro 15, 2016 8 anos Solução 3 horas atrás, wedyhiu2 disse: isso seria o que esse script faz, o que queremos é que não por um comando mais sim por trade após efetuar o trade os pontos seriam transferidos utilizando um x item para efetuar o trade dos pontos. ex: 10 Premium Scroll ao efetuar o trade passaria 10 pontos que seriam transferidos da conta, para o outro player, porem esse script faz por comando queríamos que transferi-se por trade e com item. no caso em qual lugar da source eu colocaria essa função e sobre o script poderíamos usar esse porem modifica-lo ? Em luascript.h, adicione essa linha: static int32_t luaDoStartTrade(lua_State* L); coloca abaixo de linhas parecidas. Em luascript.cpp, adicione isso: //doStartTrade(cid, target, item) lua_register(m_luaState, "doStartTrade", LuaInterface::luaDoStartTrade); coloca perto de linhas parecidas. e em luascript.cpp ainda. coloca isso também: (perto de algo parecido) 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; } todos os créditos da função para OneShot! exemplo de uso: local item = doPlayerAddItem(cid, 1234) doStartTrade(cid, target, item) dai é só criar um talkactions, usa como base esse que você comentou ai. e cria um onTradeAccept(cid, target, item). o talkactions para chamar a função doStartTrade, que vai simular o trade, e o tradeAccept para quando o trade for aceito. Editado Dezembro 15, 2016 8 anos por Ed.Specter (veja o histórico de edições)
Postado Dezembro 15, 2016 8 anos Autor 2 horas atrás, Ed.Specter disse: Em luascript.h, adicione essa linha: static int32_t luaDoStartTrade(lua_State* L); coloca abaixo de linhas parecidas. Em luascript.cpp, adicione isso: //doStartTrade(cid, target, item) lua_register(m_luaState, "doStartTrade", LuaInterface::luaDoStartTrade); coloca perto de linhas parecidas. e em luascript.cpp ainda. coloca isso também: (perto de algo parecido) 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; } todos os créditos da função para OneShot! exemplo de uso: local item = doPlayerAddItem(cid, 1234) doStartTrade(cid, target, item) dai é só criar um talkactions, usa como base esse que você comentou ai. e cria um onTradeAccept(cid, target, item). o talkactions para chamar a função doStartTrade, que vai simular o trade, e o tradeAccept para quando o trade for aceito. intendi irei tentar então quer dizer com essa função eu poderia usar o script de talkaction como trade ? não como um comando ? com um item ?
Postado Dezembro 15, 2016 8 anos 1 hora atrás, wedyhiu2 disse: intendi irei tentar então quer dizer com essa função eu poderia usar o script de talkaction como trade ? não como um comando ? com um item ? não entendi. a função doStartTrade precisa de um item. você vai usar o talkactions pra chamar o trade, tipo [ !trade Player, 4 ] no caso, vai da trade no player para trocar 4 pontos. ae a TradeAccept para fazer acontecer a troca, quando eles aceitarem. você vai usar o talkaction como um trade, coloca todas as condições nele.
Postado Dezembro 15, 2016 8 anos Autor 11 minutos atrás, Ed.Specter disse: não entendi. a função doStartTrade precisa de um item. você vai usar o talkactions pra chamar o trade, tipo [ !trade Player, 4 ] no caso, vai da trade no player para trocar 4 pontos. ae a TradeAccept para fazer acontecer a troca, quando eles aceitarem. você vai usar o talkaction como um trade, coloca todas as condições nele. eu intendi posso fazer acontecer só usando o item sem chamar no comando ?
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.