Postado Março 28, 2022 3 anos Autor 7 horas atrás, FeeTads disse: cara tem sim como fazer, mas tipo, se o cara tiver 2 bow, 1 free e 1 donate, ele vai dar upgrade apenas no primeiro tlg? esse script que eu fiz, 1 NPC troca varios itens, só por la no config da linha 1, mas tipo da sim pra fazer 1 npc que troque os 2, mas meio que se o cara tiver o item equipado e 1 free na BP, vai ser trocado o free da bp primeiro, então não sei se isso vai valer a pena, oq tu poderia fazer é replicar esse script e trocar os ID, de free pra donate, e de donate pra super, ai seriam 2 npcs tlg isso eu consigo fazer sim, simples até kkk vai ser 1 check a mais só, mas mano se tu quiser trocar ideia chama discord, não vou te cobrar por esse script não, mas preciso entender melhor como vc quer isso, ai eu scripto e te mostro por call, vai ser mais facil de eu entender tlg? *não sei se posso mandar discord, mas eh " FeeTads#0246 ", caso algum mod veja e não puder mandar contato pode apagar* Discord: FeeTads#0246 local config = { item = {12665, 12661, 1111, 1111, 1111}, --Id dos item free ou necessario pra trocar pelo donate itemDonate = {12653, 12655, 1111, 1111, 1111}, --ID dos item donate itemSuper = {2222,7735,4444,5555,6666,7777}, --ID dos items super donate needSto = true, --só pode trocar 1x por char esse item? storageTroca = 354545, --storage da troca trocarTodos = false --dar upgrade em todos os items que podem ser upgrades na BP? "true" > se tiver 5 item free, vai virar 5 item donate, "false" > vai transformar 1 e sair fora } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local flag = 0 if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if isInArray({"upgrade","upgrades", "donate"}, msg) then --se o player digitar essas palavras (você pode alterar como quiser) talkState[talkUser] = 1 end if talkState[talkUser] == 1 then if getPlayerStorageValue(cid, config.storageTroca) < 1 then --checa a storage do player for i=1, #config.itemDonate do --vai do primeiro até a quantidade de items, NÃO ESQUECER DE COLOCAR qtdItems com a mesma quantidade de items da tabela !IMPORTANTE flag = 1 --flag pra caso o char não tenha o item necessário if doPlayerRemoveItem(cid, config.itemDonate[i], 1) == true then --LEMBRANDO o item e o item donate tem que estar na mesma ordem na tabela config.item e config.itemDonate flag = 0 --reseta o flag pra evitar bugs doPlayerAddItem(cid, config.itemSuper[i], 1) --exemplo: se a Wand Free ta no primeiro slot {xxx...}, no itemDonate = {xxx...} tem que estar em primeiro também doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce acaba fazer UM upgrade em sua arma "..getItemInfo(config.itemDonate[i]).name.." e Ganhou um "..getItemInfo(config.itemSuper[i]).name..".") if (config.needSto) then --se só puder trocar 1x no NPC setPlayerStorageValue(cid, config.storageTroca, 1) --seta storage como 1, pro player não conseguir trocar de novo else setPlayerStorageValue(cid, config.storageTroca, 0) --seta como 0, o player pode trocar outro item donate por super end npcHandler:say("Obrigado, bye!", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) -- retorna if config.trocarTodos == false then return true end end end for i=1, #config.item do --vai do primeiro até a quantidade de items, NÃO ESQUECER DE COLOCAR qtdItems com a mesma quantidade de items da tabela !IMPORTANTE flag = 1 --flag pra caso o char não tenha o item necessário if doPlayerRemoveItem(cid, config.item[i], 1) == true then --LEMBRANDO o item e o item donate tem que estar na mesma ordem na tabela config.item e config.itemDonate flag = 0 --reseta o flag pra evitar bugs doPlayerAddItem(cid, config.itemDonate[i], 1) --exemplo: se a Wand Free ta no primeiro slot {xxx...}, no itemDonate = {xxx...} tem que estar em primeiro também doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce acaba fazer UM upgrade em sua arma "..getItemInfo(config.item[i]).name.." e Ganhou um "..getItemInfo(config.itemDonate[i]).name..".") if (config.needSto) then --se só puder trocar 1x no NPC setPlayerStorageValue(cid, config.storageTroca, 1) --seta storage como 1, pro player não conseguir trocar de novo else setPlayerStorageValue(cid, config.storageTroca, 0) --seta como 0, o player pode trocar outro item free por donate end npcHandler:say("Obrigado, bye!", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) -- retorna if config.trocarTodos == false then return true end end end if flag == 1 then talkState[talkUser] = 2 end else npcHandler:say("Desculpe, mas você ja pegou seu item", cid) end end if talkState[talkUser] == 2 then npcHandler:say("Desculpe, mas você não tem o item necessário.", cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) dei uma arrumada mais ou menos com oq eu entendi que vc quer. trocarTodos > adicionei um check pra saber se vc quer que o cara troque mais de 1 item, tipo o cara tem 2 free axe, se o trocarTodos = true, ele troca os 2 free axe em donate axe se o trocarTodos = false, ele vai dar upgrade apenas em 1 item (com prioridade no donate) e sair fora como funciona: ID dos items no escopo, retirado o "qtdItems" que era desnecessário. PRIORIZA item donate pra > super donate, se não tiver procura por item free > pra item donate se o player tiver item donate E item free, que podem ser upgrade, vai dar upgrade apenas no donate pro > super donate, ou seja, o player só vai conseguir trocar 1 item 1x, e será priorizado o item donate pro super donate. needSto = true > deixar true pra caso o player troca apenas 1x, se por "false" o player vai poder trocar varias vezes. storageTroca pode ser qualquer numero que vc quiser. !IMPORTANTE! não colocar item com ID errado, pois a função checa se é possivel remover o item do player, ou seja, se o player tiver o item, ele remove e entra na função pra dar o upgrade, se o ID do item donate/super donate estiver errado, ele vai remover o antigo, e vai tentar dar o upgrade e não vai achar, ai o player vai ficar sem item. Então é necessário testar todos os items antes de por em vigor. Cara so por essa paciência e complexidade do código já dei outro rep+ vou testar ambos em um npc so, pois acabei de testar o primeiro script e deu certo, consegui reduzir 10 npcs pra 2… eu tinha uma torre cheia de npcs ??? 1 wand dnt, 1 wand free, 1 bow donate, 1 bow freee e um pra cada arma do knight ??? com seus script reduzi pra dois npcs… baixei 8 andares na torre… se eu reduzir pra um então… vou colocar até teu nome no npc
Postado Março 28, 2022 3 anos 5 minutos atrás, kingdj22 disse: vou colocar até teu nome no npc ja me passa o IP que eu vou conferir kkkkkkkkkkkkkkkkkkkkk 5 minutos atrás, kingdj22 disse: se eu reduzir pra um então com esse ultimo script, como ta na desrição ali, 1 NPC faz tudo kkkkkkkkk
Postado Março 28, 2022 3 anos Autor Mano vi que tu tá num tópico de creatureboost la e eu peguei aquele código tbm e n dava a Exp mas fucei nas libs e achei umas funções q dava pra usar so no login do creaturescript q resolveu a Exp. Agora tô no celular mas amanhã vó fazer um tópico postando como ficou o código pra quem também use otx e possa precisar, aí te marco… e a primeira vez q alguém me ajuda aqui nesse fórum, e dahora ver q alguém leu e pensou em ajudar, vou fazer o mesmo com o mínimo q sei.
Postado Março 28, 2022 3 anos 2 minutos atrás, kingdj22 disse: tópico de creatureboost la o pior que eu fiz um que funciona só no creatureScript e DataBase mano kkkkkk ainda mostra no site, se quiser posso te passar 3 minutos atrás, kingdj22 disse: fazer um tópico postando como ficou o código pra quem também use otx e possa precisar boa mano, ja ajuda quem precisar, vai ser bom pra comunidade 3 minutos atrás, kingdj22 disse: e dahora ver q alguém leu e pensou em ajudar, vou fazer o mesmo com o mínimo q sei. kkkkkkkkkk, pior que eu to aprendendo muita coisa com .lua, sou programador mas mexo com lua faz 1 mes, ai usei teu pedido ai como cobaia tbm kkkkkkkkk, tmj mano, quando precisar de alguma ajuda chama discord ou marca em algum post, o woox e o vodkart dificilmente vão responder os caras são bem ocupados
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.