Postado Dezembro 30, 2017 7 anos Fala galera do TK, preciso da ajuda de voces urgente, eu tenho um servidor de Dragon ball versao 8.6 tfs 0.4, Dentro do game contem npcs, que vendem vocações ai o player compra normal até ai tudo bem, mais tem player que é reborn, e consegue comprar a vocaçao fazendo assim as vezes as skills dele subirem pra tipo 40000000, e quando ele bate em um monstro o servidor freeza, E só volta se religar, e eu tenho que deletar todos player com essas skills altissimas, gostaria que algum de voces que saiba mecher com isso Tipo, colocar alguma regra que nao possa comprar a vocaçao depois do reborn, ou depois de comprar reborn, nao transforme nem nada para nao bugar, aqui está a script: function onThink(cid, interval) local itemid = 2136 < ID DO ITEM QUE EU USO local outfit = {lookType = 377} < OUTFIT DA VOCAÇAO if isPlayer(cid) then if getPlayerItemCount(cid, itemid) >= 1 then if getPlayerStorageValue(cid,30023) == 4 then doPlayerSetVocation(cid, 663) < Vocaçao depois do reborn else doPlayerSetVocation(cid, 658) < Vocaçao antes do reborn end doPlayerRemoveItem(cid, itemid, 1) doCreatureChangeOutfit(cid, outfit) addEvent(doRemoveCreature, 1, cid) end end return true end
Postado Dezembro 30, 2017 7 anos Não entendi muito bem,qual seria a função sobre essa script que você postou? E oque você realmente quer? Porfavor poste o npc a script.lua do npc que vende a vocation
Postado Dezembro 31, 2017 7 anos Autor 23 horas atrás, Gnius disse: Não entendi muito bem,qual seria a função sobre essa script que você postou? E oque você realmente quer? Porfavor poste o npc a script.lua do npc que vende a vocation SCRIPT DO NPC QUE VENDE A VOCATION 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 local items = { item1 = {6527, 2205}, -- item1 item que será pedido e que será dado na primeira troca } local counts = { count1 = {30, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'vocation cabba') then selfSay('Voce deseja trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'?',cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('Voce acaba de trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('Voce precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Bem explicando novamente oque eu quero fazer, eu quero que o npc fassa um check na id da vocaçao do player antes de ele comprar a vocation por exemplo colocar pra fazer o check id 999 se o player for essa vocaçao ele nao ira conseguir comprar a vocaçao do npc entende???
Postado Dezembro 31, 2017 7 anos 3 minutos atrás, douglasfamil1 disse: SCRIPT DO NPC QUE VENDE A VOCATION 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 local items = { item1 = {6527, 2205}, -- item1 item que será pedido e que será dado na primeira troca } local counts = { count1 = {30, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'vocation cabba') then selfSay('Voce deseja trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'?',cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('Voce acaba de trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('Voce precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Bem explicando novamente oque eu quero fazer, eu quero que o npc fassa um check na id da vocaçao do player antes de ele comprar a vocation por exemplo colocar pra fazer o check id 999 se o player for essa vocaçao ele nao ira conseguir comprar a vocaçao do npc entende??? Qual da ID da vocation que ele ta usando pra não comprar a vocação no npc? Por exemplo Eu tou usando X vocation e vo tentar comprar uma nova vocation no npc, Qual seria essa vocation que seria impedida de comprar no npc?
Postado Dezembro 31, 2017 7 anos @douglasfamil1 veja se é isso 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 local items = { item1 = {6527, 2205}, -- item1 item que será pedido e que será dado na primeira troca } local counts = { count1 = {30, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca } local vocation = 5 -- vocation proibida.. function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'vocation cabba') then selfSay('Voce deseja trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'?',cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerVocation(cid) ~= vocation then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('Voce acaba de trocar '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' por '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('Voce precisa de '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end else selfSay('Voce está proibido de comprar aqui.', cid) end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) MEU SERVER: http://otpokemonxy.net/ Nosso → Grupo Oficial OtPokemon XY 24 Horas Nosso → Site Oficial OtPokemon XY 24 Horas Nossa → Pagina Oficial OtPokemon XY 24 Horas
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.