soltore 4 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Fala Galerinha estou precisando de um sitemas onde o player ao upar ganha X pontos e estes pontos ele pode trocar por LIFE ou MANA em um npc estilo TIBIA GTA Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/ Compartilhar em outros sites More sharing options...
0 soltore 4 Postado Outubro 9, 2015 Autor Share Postado Outubro 9, 2015 Bom fiz o seguinte Criei um char lvl 1upei ate o lvl 2 - ganhei 5 pontos e fui trocar # trocou normalmente entao upei o lvl 3 e o lvl 4 para testar se acumulou fui trocar os pontos so troco 5 e depois falou q nao tinha mais pontos segue o dialogo do npc 16:19 Dumbledore: Ola Mago. Troco seus pontos por life e mana diga points. 16:19 Mago [1]: points 16:19 Dumbledore: Posso dar-lhe um pouco mais de HP e mana em troca de alguns pontos. O que você acha? Você aceita a minha oferta ? sim ou nao 16:19 Mago [1]: sim 16:19 Dumbledore: Bem, eu posso dar-lhe 100 extra HP por 5 points, e 100 extra mana por 5 points. 16:19 Dumbledore: Gostaria de mais hp ou mais mana ? 16:19 Mago [1]: hp 16:19 Dumbledore: Você não tem pontos suficientes para trocar. 16:19 Dumbledore: Ate logo entao... 16:20 Mago [2]: hi 16:20 Dumbledore: Ola Mago. Troco seus pontos por life e mana diga points. 16:20 Mago [2]: points 16:20 Dumbledore: Posso dar-lhe um pouco mais de HP e mana em troca de alguns pontos. O que você acha? Você aceita a minha oferta ? sim ou nao 16:21 Mago [2]: sim 16:21 Dumbledore: Bem, eu posso dar-lhe 100 extra HP por 5 points, e 100 extra mana por 5 points. 16:21 Dumbledore: Gostaria de mais hp ou mais mana ? 16:21 Mago [2]: hp 16:21 Dumbledore: Você tem: 100 mais hp for 5 points. 16:21 Mago [2]: hp 16:21 Mago [2]: points 16:21 Dumbledore: Posso dar-lhe um pouco mais de HP e mana em troca de alguns pontos. O que você acha? Você aceita a minha oferta ? sim ou nao 16:21 Mago [2]: sim 16:21 Dumbledore: Bem, eu posso dar-lhe 100 extra HP por 5 points, e 100 extra mana por 5 points. 16:21 Dumbledore: Gostaria de mais hp ou mais mana ? 16:21 Mago [2]: hp 16:21 Dumbledore: Você não tem pontos suficientes para trocar. 16:21 Dumbledore: Ate logo entao... 16:22 Mago [4]: hi 16:22 Dumbledore: Ola Mago. Troco seus pontos por life e mana diga points. 16:22 Mago [4]: points 16:22 Dumbledore: Posso dar-lhe um pouco mais de HP e mana em troca de alguns pontos. O que você acha? Você aceita a minha oferta ? sim ou nao 16:22 Mago [4]: sim 16:22 Dumbledore: Bem, eu posso dar-lhe 100 extra HP por 5 points, e 100 extra mana por 5 points. 16:22 Dumbledore: Gostaria de mais hp ou mais mana ? 16:22 Mago [4]: hp 16:22 Dumbledore: Você tem: 200 mais hp for 10 points. 16:22 Mago [4]: points 16:22 Dumbledore: Posso dar-lhe um pouco mais de HP e mana em troca de alguns pontos. O que você acha? Você aceita a minha oferta ? sim ou nao 16:22 Mago [4]: sim 16:22 Dumbledore: Bem, eu posso dar-lhe 100 extra HP por 5 points, e 100 extra mana por 5 points. 16:22 Dumbledore: Gostaria de mais hp ou mais mana ? 16:22 Mago [4]: hp 16:22 Dumbledore: Você não tem pontos suficientes para trocar. 16:23 Dumbledore: Adeus. agora segue o console (Distro) aguardo.... up bom resolvi meu problema amigo editei um systema antigo e reformulei a lib e o sql funcionou aqui mas pela sua atençao broder lhe deixo meu REP+ obrigado.. podem fechar o topico Duvida SANADA REsolvido Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/#findComment-1671833 Compartilhar em outros sites More sharing options...
0 zipter98 1102 Postado Outubro 5, 2015 Share Postado Outubro 5, 2015 (editado) Creatureevent: local points_per_level = xxx --Quantos pontos por nível o jogador irá ganhar. function onAdvance(cid, skill, oldLevel, newLevel) local level_difference, points_gain, points_count = newLevel - oldLevel, points_per_level, getPlayerStorageValue(cid, 3920) < 0 and 0 or getPlayerStorageValue(cid, 3920) if newLevel <= getPlayerStorageValue(cid, 3919) or skill ~= SKILL__LEVEL then return true elseif level_difference > 1 then points_gain = points_gain * level_difference end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..points_gain.."x point(s) to trade in a NPC for more HP and mana. You have now <"..(points_count + points_gain).."> point(s).") setPlayerStorageValue(cid, 3919, newLevel) setPlayerStorageValue(cid, 3920, points_count + points_gain) return true end Não se esqueça de registrá-lo em login.lua. NPC: local config = { health = {points = xxx, amount = xxx}, --{points = quantidade_de_pontos, amount = quantidade_de_HP_ganha}, mana = {points = xxx, amount = xxx} --{points = quantidade_de_pontos, amount = quantidade_de_mana_ganha} } 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) msg = msg:lower() if not npcHandler:isFocused(cid) then return false end local talkUser, player_points = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid, getPlayerStorageValue(cid, 3920) if msgcontains(msg, "points") or msgcontains(msg, "trade") then selfSay("I can give you a little more HP and mana in exchange for some points. What do you think? Do you accept my offer?", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then selfSay("Well, I can give you {"..config.health.amount.." extra HP} for {"..config.health.points.." points}, and {"..config.mana.amount.." extra mana} for {"..config.mana.points.." points}.", cid) selfSay("Would you like more {hp} or more {mana}?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then selfSay("No problem, sir.", cid) talkState[talkUser] = 0 elseif talkState[talkUser] == 2 then local info_table = { ["hp"] = {setCreatureMaxHealth, getCreatureMaxHealth, doCreatureAddHealth, config.health.points, config.health.amount}, ["mana"] = {setCreatureMaxMana, getCreatureMaxMana, doCreatureAddMana, config.mana.points, config.mana.amount} } local func = info_table[msg] if not func then selfSay("I told you to tell me if you'd like more {hp} or more {mana}.", cid) elseif player_points < func[4] then selfSay("You do not have enough points to exchange.", cid) else if player_points >= func[4] * 2 then local multiplier = math.floor(player_points / func[4]) func[4] = func[4] * multiplier func[5] = func[5] * multiplier end selfSay("Here you are: "..func[5].." more "..msg.." for "..func[4].." points.", cid) setPlayerStorageValue(cid, 3920, player_points - func[4]) func[1](cid, func[2](cid) + func[5]) func[3](cid, func[2](cid)) talkState[talkUser] = 0 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Editado Outubro 5, 2015 por zipter98 Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/#findComment-1671298 Compartilhar em outros sites More sharing options...
0 soltore 4 Postado Outubro 7, 2015 Autor Share Postado Outubro 7, 2015 ok amigo irei testar aqui ja posto o resultado obrigado! Ok amigo testado porem nao é acomulativo se o player upa 1 level e nao vai trocar os pontos qndo ele upa outro lvl ele perde os pontos anteriores... teria como fazer pra acomular ? up Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/#findComment-1671336 Compartilhar em outros sites More sharing options...
0 zipter98 1102 Postado Outubro 7, 2015 Share Postado Outubro 7, 2015 (editado) Hm, deveras estranho. Abaixo de: local level_difference, points_gain, points_count = newLevel - oldLevel, points_per_level, getPlayerStorageValue(cid, 3920) < 0 and 0 or getPlayerStorageValue(cid, 3920) coloque: print("Pontos no momento: "..points_count) Depois, para baixo de: setPlayerStorageValue(cid, 3919, newLevel) coloque: print("Ganhando: "..(points_count + points_gain).." pontos.") Agora, abaixo de: setPlayerStorageValue(cid, 3920, points_count + points_gain) coloque: print("Agora, "..getPlayerStorageValue(cid, 3920).." pontos.") Informe tudo o que for imprimido no console. Editado Outubro 7, 2015 por zipter98 Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/#findComment-1671675 Compartilhar em outros sites More sharing options...
0 zipter98 1102 Postado Outubro 9, 2015 Share Postado Outubro 9, 2015 Tópico movido para dúvidas / pedidos resolvidos. Link para o comentário https://xtibia.com/forum/topic/237102-points-system-level-com-npc/#findComment-1672000 Compartilhar em outros sites More sharing options...
Pergunta
soltore 4
Fala Galerinha estou precisando de um sitemas onde o player ao upar ganha X pontos e estes pontos ele pode trocar por LIFE ou MANA em um npc
estilo TIBIA GTA
Link para o comentário
https://xtibia.com/forum/topic/237102-points-system-level-com-npc/Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados