olá vodkart, gostei muito do seu script...
mas queria perguntar: tem como colocar um npc pra vender itens através dos premium points ?
info
Grupo: Artesão
Registrado: 11/04/09
Posts: 118
Reputação: +4
Char no Tibia: Boneco Zoado

olá vodkart, gostei muito do seu script...
mas queria perguntar: tem como colocar um npc pra vender itens através dos premium points ?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

tem sim
exemplo...
npc tem uma funçao de remover dinheiro (nesse caso ustei tabela
)
local price = 10 doPlayerRemoveMoney(cid, price)
então ele poderá remover premium points também
local pricePoints = 5 doPlayerAddPremiumPoints(cid, -pricePoints)
Editado Junho 18 por Vodkart
info
Grupo: Herói
Registrado: 25/06/08
Posts: 723
Reputação: +275
Gênero: Masculino
Char no Tibia: Diiva

-Fark-, fiz correndo nem testei, depois da uma testada ai... ;]
-- [( XTibia.com )] --
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 money = 10000 -- Quantidade de dinheiro que o player necessita!
local points = 35 -- Quantidade de poits que o NPC irá vender.
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if msgcontains(msg, 'premium point') then
npcHandler:say("Huum, I can sell "..points.." points for you, do you want?", cid)
talkState[talkUser] = 1
end
elseif msgcontains(msg, 'yes') then
if talkState[talkUser] == 1 then
if getPlayerMoney(cid=) >= money then
doPlayerAddPremiumPoints(cid, points)
doPlayerRemoveMoney(cid, money)
npcHandler:say("Voce recebeu "..points.." premium points!", cid)
talkState[talkUser] = 0
else
npcHandler:say("Sorry, you don't have a money.", cid)
end
return TRUE
end
end
end
end
elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then
npcHandler:say("Ok, good bye!", cid)
talkState[talkUser] = 0
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Junho 19 por DoidinMapper
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

isso ai doidin muito bom cara
só que ele queria pra vender itens atraves de premium points e não comprar mais é quase isso ai rsrsrs
valeu fera
info
Grupo: Herói
Registrado: 25/06/08
Posts: 723
Reputação: +275
Gênero: Masculino
Char no Tibia: Diiva

kkkkkkkkkkkkk viajei agora.. =)
Como você já resolveu nem vou fazer outro npc então... ;]
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

nd mano agr ja temos um npc de vender premium points \o
quanto mais melhor né uhu
o importante é que você está se dedicando nessa area e vc leva muito jeito p/ codigo LUA
parabens ai jhow
info
Grupo: Artesão
Registrado: 11/04/09
Posts: 118
Reputação: +4
Char no Tibia: Boneco Zoado

Descukpa reviver, mas realmente preciso deste script, fiz tudo certinho aqui, mas quando eu uso o item, nada acontece, e nenhuma mensagem retorna no console de erro também.
info
Grupo: Campones
Registrado: 08/12/11
Posts: 2
Reputação: 0
Char no Tibia: Eoxyos Rhoul

como que adc isso cara? :S
Local incorreto, não sei o melhor local para está função.
irei mover para tutoriais de scripting.
Movido!
info
Grupo: Campones
Registrado: 08/09/16
Posts: 4
Reputação: 0
Esse função remove points.
exemplo:
Na db você tem 200
doPlayerRemovePremiumPoints(cid, 100)
result removeu 100 e ficou 100
function doPlayerRemovePremiumPoints(cid, removePoints)
local queryPoints = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)..";")
getPoints = queryPoints:getDataInt("premium_points", getPlayerAccountId(cid))
local newPoints = getPoints - removePoints
local updatePoints = db.executeQuery("UPDATE `accounts` SET `premium_points` = ".. newPoints .." WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
return newPoints
end
Editado Outubro 8 por Luquinhas Brito
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino
fala galera, eu apresento a você diretamente, e de repente uma função útil "doPlayerAddPremiumPoints"
exemplo de Aplicação:
config = { points = 40, effect = 53 } function onUse(cid, item, fromPosition, itemEx, toPosition) if(not isPlayer(itemEx.uid)) then return false end doPlayerAddPremiumPoints(cid, cfg.points) doCreatureSay(cid, "Voce recebeu " .. cfg.points .. " premium points!", TALKTYPE_ORANGE_1, toPosition) doSendMagicEffect(toPosition, cfg.effect) doRemoveItem(item.uid, 1) return TRUE endpara adicionar vá até:
Data/lib/function.lua e adicione:
function doPlayerAddPremiumPoints(cid, points) return db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";") endEditado Junho 7 por Vodkart