Postado Dezembro 19, 2016 8 anos adiciona a função que citei. e vê se funciona esse aqui: talkactions function onSay(cid, words, param, param2, channel) local t = string.explode(param, ",") local target = getCreatureByName(t[1]) local points = tonumber(t[2]) local item = 2233 local storage = 21223 if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") end if (target ~= nil) and isPlayer(target) and not isPlayerGhost(target) then if (points ~= nil) and (type(points) == 'number') and (points>0) then if getPlayerVipPoints(cid) > points then local addItem = doPlayerAddItem(cid, item, 1) doStartTrade(cid, target, addItem) doItemSetAttribute(addItem, "description", "Transferência de "..points.." premium points.") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você deu trade no jogador "..getPlayerName(target)..", com a intenção de trocar "..points.." premium points.") doPlayerSendTextMessage(target, MESSAGE_INFO_DESCR, "O Jogador "..getPlayerName(cid).." deu trade em você, e está disposto a trocar "..points.." premium points.") setPlayerStorageValue(cid, storage, points) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem essa quantidade de premium points.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end return true end creaturescripts: function onTradeAccept(cid, target, item) local storage = 21223 local sto = getPlayerStorageValue(cid, storage) if sto > 0 then doPlayerRemoveVipPoints(cid, sto) doPlayerAddVipPoints(target, sto) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você trocou "..sto.." premium points, Parabéns.") doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, "Você realizou uma troca e adquiriu "..sto.." premium points, Parabéns.") setPlayerStorageValue(cid, storage, 0) end return true end nesse caso você vai usar !trade NomeDoOutroPlayer, Quantidade de points. Exemplo: !trade Eduardo, 3 acho que deu pra ter uma boa base de como funciona.. não entendi direito esse do npc
Postado Dezembro 19, 2016 8 anos 7 minutos atrás, Ed.Specter disse: adiciona a função que citei. e vê se funciona esse aqui: talkactions function onSay(cid, words, param, param2, channel) local t = string.explode(param, ",") local target = getCreatureByName(t[1]) local points = tonumber(t[2]) local item = 2233 local storage = 21223 if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") end if (target ~= nil) and isPlayer(target) and not isPlayerGhost(target) then if (points ~= nil) and (type(points) == 'number') and (points>0) then if getPlayerVipPoints(cid) > points then local addItem = doPlayerAddItem(cid, item, 1) doStartTrade(cid, target, addItem) doItemSetAttribute(addItem, "description", "Transferência de "..points.." premium points.") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você deu trade no jogador "..getPlayerName(target)..", com a intenção de trocar "..points.." premium points.") doPlayerSendTextMessage(target, MESSAGE_INFO_DESCR, "O Jogador "..getPlayerName(cid).." deu trade em você, e está disposto a trocar "..points.." premium points.") setPlayerStorageValue(cid, storage, points) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem essa quantidade de premium points.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end return true end creaturescripts: function onTradeAccept(cid, target, item) local storage = 21223 local sto = getPlayerStorageValue(cid, storage) if sto > 0 then doPlayerRemoveVipPoints(cid, sto) doPlayerAddVipPoints(target, sto) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você trocou "..sto.." premium points, Parabéns.") doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, "Você realizou uma troca e adquiriu "..sto.." premium points, Parabéns.") setPlayerStorageValue(cid, storage, 0) end return true end nesse caso você vai usar !trade NomeDoOutroPlayer, Quantidade de points. Exemplo: !trade Eduardo, 3 acho que deu pra ter uma boa base de como funciona.. não entendi direito esse do npc Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo... O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel! Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso! Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu? Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né..
Postado Dezembro 19, 2016 8 anos 7 horas atrás, Digoshow disse: Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo... O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel! Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso! Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu? Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né.. posta o npc. faço pra vc. 7 horas atrás, Digoshow disse: Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo... O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel! Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso! Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu? Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né.. fiz aqui, não testei tudo... testa tudo ai, e se achar qualquer bug me avisa! desculpem a bagunça, faz um tempo que não faço um script assim.. em data/talkactions/scripts cria um arquivo lua e coloca isso dentro: Spoiler local item_Id = 2161 -- id do item para a transferencia function checkItem(cid, item1) tabelaItem = {} for i = 0, getContainerSize(item1.uid)-1 do local item2 = getContainerItem(item1.uid, i) if not isContainer(item2.uid) then if item2.itemid == item_Id and item2.actionid <= 0 then table.insert(tabelaItem, item2) break end else if getContainerSize(item2.uid) > 0 then checkItem(cid, item2) end end end end function transf(cid, points, itemx) doItemSetAttribute(itemx.uid, "aid", points) doItemSetAttribute(itemx.uid, "description", "Nesse item contem "..points.." premium points.") doPlayerRemoveVipPoints(cid, points) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tranferiu "..points.." premium points para o item "..getItemNameById(item_Id)..".") end function onSay(cid, words, param, param2, channel) local item_Id = 2161 -- id do item para a transferencia tabelaItem = {} if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") end local points = tonumber(param) if (type(points) == 'number') and (points>0) then if getPlayerVipPoints(cid) > points then if getPlayerItemCount(cid, item_Id) > 0 then for i=1, 10 do local item1 = getPlayerSlotItem(cid, i) if item1.itemid > 0 then if isContainer(item1.uid) then if getContainerSize(item1.uid) > 0 then checkItem(cid, item1) end else if item1.itemid == item_Id and item1.actionid <= 0 then table.insert(tabelaItem, item1) break end end end end if #tabelaItem > 0 then transf(cid, points, tabelaItem[1]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O(s) item(s) "..getItemNameById(item_Id).." que você tem já contem premium points.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o item "..getItemNameById(item_Id).." que é necessário para a tranferencia.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem essa quantidade de premium points.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end return true end em talkactions.xml coloca a tag: talkaction words="!transferir(ou oq vc desejar)" event="script" value="NomeDoArquivo.lua"/> em data/actions/scripts cria um arquivo.lua e coloca isso dentro: Spoiler function onUse(cid, item, frompos, item2, topos) local points = item.actionid if points > 0 then doPlayerAddVipPoints(cid, points) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu "..points.." premium points.") doSendMagicEffect(getCreaturePosition(cid), 30) doRemoveItem(item.uid) end return true end em actions.xml coloca a tag: <action itemid="2161(id do item)" script="NomeDoArquivo.lua"/> ai é só colocar o item pra vender no npc, ou como você desejar que os players consigam o item. Editado Dezembro 20, 2016 8 anos por Ed.Specter (veja o histórico de edições)
Postado Dezembro 20, 2016 8 anos @wedyhiu2, @Digoshow.. alguém testou? esse segundo que mandei, que transfere pro item. Editado Dezembro 20, 2016 8 anos por Ed.Specter (veja o histórico de edições)
Postado Dezembro 20, 2016 8 anos Eu não pude testar ainda, vou ver se arrumo algo pra testar sem site, ae eu aviso aqui!!! Porem amigo, porque você não faz um Tutorial, seria ótimo e bem organizado alem de ser um bom Tutorial.. Ou se quiser eu faço e coloco seus Creditos!
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.