Fiz aqui bem corrido.
Para testar, utilize essa query que eu fiz
UPDATE `accounts` SET `p_points` = 5;
Ela fará que todos fiquem com 5 p_points.
Depois para testar
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)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local removePoint = 5
local itemId = 2160
if msgcontains(msg, 'test') or msgcontains (msg, 'test1') then
if getPoints(cid) >= removePoint then
selfSay("Você quer comprar um item por "..removePoint.." points?", cid)
talkState[talkUser] = 1
else
selfSay("Desculpe, voce nao tem pontos suficiente para trocar", cid)
end
elseif talkState[talkUser] == 1 then
if msgcontains(msg, 'yes') then
selfSay('Parabéns, obrigado pela troca.', cid)
doPlayerAddItem(cid,itemId)
doPlayerRemovePoints(cid,removePoint)
doSendMagicEffect(getCreaturePosition(cid),17)
talkState[talkUser] = 0
else
selfSay('You don\'t have nothing!', cid)
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Ta bem simples, mas só pra ter uma noção
Testei e ta certinho ;D




info
Grupo: Artesão
Registrado: 09/06/12
Posts: 104
Reputação: +6
Galera
eu uso um sistema de p_points em meu OTserv porem queria poder esses points para vende itens exclusivos
alguem poderia me ajudar?
um amigo me mando esta resposta porem nao entendo muito em scripts muito menos em banco de dados...
usa as funções da lib né vei ¬¬
Código:
tem tudo que tu precisa ai, é so montar um npc como qualquer outro e usar destas libs para manipular os ppoints
acabei de olhar uma coisa, tem uma consulta desnecessária nas funções, chamar esse getPoints é besteira, melhor usar desta forma:
Código:
muda pouca coisa, é mais em relação a processo
mas uma dica, bote um delay nesse npc, não é muito bom fazer muitas consultas sql, pode até crashar se forem em intervalos muito curtos