Postado Janeiro 28, 2016 9 anos O erro deve estar sendo relacionado ao 'change gold', de trocar moedas. Eis que há dois 'scripts' que tratam da mesma situação. O que você poderia fazer e, na minha opinião daria no mesmo, seria inserir uma 'talkaction' que, quando dita, faria a troca que você comenta. Isto porque o 'script' chage gold é muito útil. Teste e veja o que pensa! Vá no seu arquivo 'data > talkactions > talkactions.xml',abra-o o insira a seguinte linha: <talkaction log="yes" words="!fenix" event="script" value="fenix.lua"/> Depois crie um arquivo chamado 'fenix' com extensão '.lua' e salve-o dentro da pasta 'data > talkactions > scripts' com o seguinte conteúdo: function onSay(cid, words, param) local moedas = 2160 local custoFenix = 100 local fenixId = 100 -- Quantidade em kk , ou seja milhões local cap = getPlayerFreeCap(cid) local peso = getItemWeightById(fenixId,1) -- Checa se o Player está carregando as moedas if (getPlayerItemCount(cid, moedas) < custoFenix) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar carregando "..custoFenix.." crystal coins.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar carregando "..custoFenix.." crystal coins.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end -- Verifica se o player tem cap suficiente if (cap < peso) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você não tem capacidade suficiente. É necessário: ".. peso .."oz.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return true end -- Mensagem em azul no chat Default if doPlayerRemoveItem(cid,moedas,custoFenix) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você comprou: 1 ".. getItemNameById(fenixId)..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou: 1 ".. getItemNameById(fenixId)..".") doPlayerAddItem(cid, fenixId,1) doSendAnimatedText(getPlayerPosition(cid), "Fenix!", TEXTCOLOR_YELLOW) doSendMagicEffect(getPlayerPosition(cid), 101) return true else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Houve algum erro, reporte-o.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end Fiz agora meio rápido, testa e dá um retorno aqui. Ajudei ou esclareci? Rep+ The Last Man Standing - 100% funcional
Postado Janeiro 28, 2016 9 anos Autor Bom, eu ja tirei os scripts antigo e nao cheguei tira print do erro, mas era algo relacionado ao changegold sim, dei uma rodadas e achei essa: Citar local coins = { [ITEM_GOLD_COIN] = { to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW }, [ITEM_PLATINUM_COIN] = { from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [ITEM_CRYSTAL_COIN] = { from = ITEM_PLATINUM_COIN, to = 2157, effect = TEXTCOLOR_LIGHTBLUE }, [2328] = { from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL } } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) end return true end - MAs ele transforma o 1KK em 2328, mas quando da click eno 2328 para retornar ao 1KK, nao funciona, que devo fazer ?
Postado Janeiro 28, 2016 9 anos Ahhhh, mano, desculpe, agora que li direito o que pediu. Então, não... não será assim. Ele busca a mensagem 'ITEM_CRYSTAL_COIN' do arquivo '00 - constante.lua'. Todavia, como os 'ITEMs' declarados ali estão vinculados à sua source, você poderá utilizar um dos que estão dispostos no seu servidor. Assim, vá no seu arquivo 'data > lib > 00 - constant.lua', abra-o e mude: ITEM_SCARAB_COIN = 2159 Por: ITEM_SCARAB_COIN = 2328 Depois mude aquele seu 'script' ali em cima por: local coins = { [ITEM_GOLD_COIN] = { to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW }, [ITEM_PLATINUM_COIN] = { from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [ITEM_CRYSTAL_COIN] = { from = ITEM_PLATINUM_COIN, to = ITEM_SCARAB_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [ITEM_SCARAB_COIN] = { from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL } } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) end return true end The Last Man Standing - 100% funcional
Postado Janeiro 28, 2016 9 anos Se não funcionar o do @Xagah(MUITO PROVÁVEL QUE FUNCIONE), tenta usar esse changegold.lua : Spoiler local coins = { [ITEM_GOLD_COIN] = { to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW }, [ITEM_PLATINUM_COIN] = { from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [ITEM_CRYSTAL_COIN] = { from = ITEM_PLATINUM_COIN, to = 2328, effect = TEXTCOLOR_LIGHTBLUE }, [2328] = { from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE } } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) end return true end E em actions.xml procure por "changegold.lua" e delete todas as tags referentes à esse arquivo e adicione o seguinte: <action itemid="2148;2152;2160;2328" event="script" value="other/changegold.lua"/> Funciona da mesma forma que o script que o Xagah postou, maaaas, vai que da algum erro, e ele esqueceu de mencionar a tag do actions.xml GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Janeiro 28, 2016 9 anos Autor Consegui. Com minha script e mais a parte da tag do actions q @Sekk postou. Deu certinho. Obrigado mesmo assim ao demais que ajudaram - Teria como coloca para juntar os coins em geral automaticamente ?
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.