Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Queria saber se alguem tem um action de SHOP por báu, não sei se seria bem uma action , vou explicar , tenho um server e tem uns 15 itens vip , ae eu queria , que o GOD podesse falar /addpoints 20,joaozinho ae daria 20 points para joaozinho e ele podesse comprar items dos báu com esses points. Ae ele iria dar use no báu e receber o Item do ID "9031". Mais eu iria precisar do script que desse pra por varios items ae cada báu ia funciona com a mesma action só que dando Items de diferente ID e diferentes preços.

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

Site é muito chato , já basta ter que mexe com o server ainda mais um site. :S , prefiro igual falei ae.

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

axei esse script do VODKART ai tentei editar pra BÁU

local coin = 8301

local lever = {

[6001] = {15,9080},

[6002] = {25,8866},

[6003] = {15,7730},

[6004] = {25,8983}

}

function onUse(cid,item,fromPosition,itemEx,toPosition)

if doPlayerRemoveItem(cid,coin,lever[item.actionid][1]) == FALSE then

return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "você precisa de "..lever[item.actionid][1].." " ..getItemNameById(coin))

end

doPlayerAddItem(cid,lever[item.actionid][2])

doPlayerSendTextMessage(cid,22,"você comprou um " .. getItemNameById(lever[item.actionid][2]))

doSendMagicEffect(getCreaturePosition(cid), math.random(28,30))

doTransformItem(item.uid, item.itemid == 1740 and 1740 or 1740)

return true

end

só que ele não ta contando os coin vip , se um item e 25 points e vc tem 25 points ele pega seus 25 e da o item mais ae quando acaba os points ainda continua dando pra pega o item do bau.

Editado por rollback (veja o histórico de edições)

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

po precisava disso urgente falta poco pra min abri meu ot , mais ninguem ajuda aq :S , muita gente sabe como arruma tem varios profissional mais eles nem ajuda =/

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

Acho que isso fica mais chato que site, por que olha com um site você ja teria feito isso faz tempo, e vc procurando essa script ta demorando né, site não é dificil de fazer nem de mecher com ele, você pode chamar um web master para o server

Web Master 100%

Scripter 20%

Spriter 20%

Mapper 5%

Hoster 0%

Link para o post
Compartilhar em outros sites

em lib/functions vc adiciona:


function getPoints(cid)

local check = db.getResult("SELECT `points` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")

return check:getDataInt("points") <= 0 and 0 or check:getDataInt("points") end

function addPoints(cid,amount)

db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end

function removePoints(cid,amount)

db.executeQuery("UPDATE `players` SET `points` = "..getPoints(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end

function setPoints(cid,value)

db.executeQuery("UPDATE `players` SET `points` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end

e na sua database vc executa:
ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'
Caso não saiba executar você me fala que eu te ensino como. getPoints(cid) -- checa qnto tem de pontos addPoints(cid,amount) -- adc pontos ao jogador,por exemplo Vodkart tem 10 pontos e eu adiciono 30 vai ficar 40 removePoints(cid,amount) -- remove os pontos do jogador,minimo é 0 setPoints(cid,value) -- altera os pontos do jogador pra qual valor vc quiser talk


local count = 5

db.executeQuery("UPDATE players SET points = "..getPoints(cid).."+"..count)

nesse caso vai adicionar 5 points para todos os jogadores do server.

systempoints.lua

function onSay(cid, words, param)

if(words == "!points") then

return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..getPoints(cid).." Points.")

elseif(words == "!rankpoints") then

local max_players,str = 20,""

str = "--[ RANK POINTS ]--\n\n"

query = db.getResult("SELECT `name`, `points` FROM `players` WHERE `points` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `points` DESC, `name` ASC;")

if (query:getID() ~= -1) then k = 1 while true do

str = str .. "\n " .. k .. ". " .. query:getDataString("name") .. " - [" .. query:getDataInt("points") .. "]"

k = k + 1

if not(query:next()) or k > max_players then break end end query:free()end

if str ~= "" then doShowTextDialog(cid,6500, str) end

elseif(words == "/addpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end

local player = getPlayerByName(t[1])

local points = t[2]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você adicionou "..points.." Points do jogador "..t[1])

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..points.." Points no seu character.")

addPoints(player,points)

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você agora tem "..getPoints(player).." Points.")

end

elseif(words == "/delpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end

local player = getPlayerByName(t[1])

local points = t[2]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você removeu "..points.." Points do jogador "..t[1])

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram removidos "..points.." Points do seu character.")

removePoints(player,points)

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você agora tem "..getPoints(player).." Points.")

end

elseif(words == "/setpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end

local player = getPlayerByName(t[1])

local points = t[2]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Agora o jogador "..t[1].." tem "..points.." Points no seu character.")

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "agora você tem "..points.." Points do seu character.")

setPoints(player,points)

end

end

return TRUE

end


talkactions.xml
<talkaction words="!points;!rankpoints;/addpoints;/delpoints;/setpoints" script="systempoints.lua">
Báu que vende items por points
nome do seu script.lua

local lever = {

[6001] = {30,7429},

[6002] = {20,7366},

[6003] = {10,8926},

[6004] = {3,8303},

[6005] = {3,8310}

}

local storage,exausted = 98762,10

local Stackable = {8303,8310} -- coloque o ID aqui dos que só vem 1

function onUse(cid,item,fromPosition,itemEx,toPosition)

if getPoints(cid) < lever[item.actionid][1] then

return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Você precisa de "..lever[item.actionid][1].." points.")

elseif getPlayerStorageValue(cid, storage) >= os.time() then

return doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, storage) - os.time() .. " seconds to use this item again.")

end

doPlayerAddItem(cid,lever[item.actionid][2], isItemStackable(lever[item.actionid][2]) and isInArray(Stackable, lever[item.actionid][2]) and 1 or 100)

removePoints(cid,lever[item.actionid][1])

setPlayerStorageValue(cid, storage, os.time()+exausted)

doPlayerSendTextMessage(cid,22,"Você comprou um " .. getItemNameById(lever[item.actionid][2]))

doSendMagicEffect(getCreaturePosition(cid), math.random(28,30))

return true

end 
Configuração: [6001] = {30,7429}, [ActionID do báu] = {Quanto points vai custar, ID DO ITEM QUE SERÁ VENDIDO} a tag é essa:
<action actionid="6001-6005" script="nome do seu script.lua"/>
lembrando que pode adicionar mais, e fazendo isso você deve aumentar na tag também, exemplo:
local lever = {

[6001] = {30,7429},

[6002] = {20,7366},

[6003] = {10,8926},

[6004] = {3,8303},

[6005] = {3,8310},

[6006] = {15,2494}

}
e a tag ficaria assim
<action actionid="6001-6006" script="nome do seu script.lua"/>
npc que vende itens por Points


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 shopWindow = {}

local t = {

[2195] = {price = 15},

[2493] = {price = 25},

[2361] = {price = 30},

[8851] = {price = 20},

[8925] = {price = 30},

[2640] = {price = 50},

[2494] = {price = 100},

[9932] = {price = 50},

[2472] = {price = 70},

[8931] = {price = 100}

}

local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)

if t[item] and getPoints(cid) < t[item].price then

selfSay("você não tem "..t[item].price.." points", cid)

else

doPlayerAddItem(cid, item)

removePoints(cid,t[item].price)

selfSay("aqui está seu item!", cid)

end

return true

end

if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then

for var, ret in pairs(t) do

table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})

end

openShopWindow(cid, shopWindow, onBuy, onSell)

end

return true

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Obs: ele vai ter que tem gps também,mas os gps são serão removidos só os Points mesmo. [8851] = {price = 20}, [iD DO ITEM QUE VAI SER VENDIDO] = {price = QNTOS PONTOS VAO SER PRECISO}
e se você quiser adicionar points para todos os player do ot que estejam online/offline você usa:

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

1° Abra o programa Sqlite

2° na parte superior do programa tem a aba "Tools",clica nela e seleciona "Open SQL query editor" ou (ALT + E) se preferir

3° Vai abrir uma janela branca,nela você coloca isso:

ALTER TABLE `players` ADD `points` INT NOT NULL DEFAULT '0'

4° Depois clica no ícone do raio ali na parte de cima ou aperta o botão F9 que vai fazer com que a query seja executada.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

o vodkrd ja colocou a script

Web Master 100%

Scripter 20%

Spriter 20%

Mapper 5%

Hoster 0%

Link para o post
Compartilhar em outros sites

e se você quiser adicionar points para todos os player do ot que estejam online/offline você usa:

local count = 5

db.executeQuery("UPDATE players SET points = "..getPoints(cid).."+"..count)

nesse caso vai adicionar 5 points para todos os jogadores do server.

quero só pra um.

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

e se você quiser adicionar points para todos os player do ot que estejam online/offline você usa:

local count = 5

db.executeQuery("UPDATE players SET points = "..getPoints(cid).."+"..count)

nesse caso vai adicionar 5 points para todos os jogadores do server.

quero só pra um.

aquilo era só um exemplo cara, vc pode usar o comando lá em cima /addpoints nome,points

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

não man eu sei que o /addpoints Rollback,30 funciona só que ele não funciona pra player offline se tiver como eu agradeço se n tiver tbm valeu =]

tk-melhor.pngpolitico_mensalao.gif

5wwbk5.gif

Link para o post
Compartilhar em outros sites

function onSay(cid, words, param)

if(words == "!points") then

return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..getPoints(cid).." Points.")

elseif(words == "!rankpoints") then

local max_players,str = 20,""

str = "--[ RANK POINTS ]--\n\n"

query = db.getResult("SELECT `name`, `points` FROM `players` WHERE `points` > -1 AND `id` > 6 AND `group_id` < 2 ORDER BY `points` DESC, `name` ASC;")

if (query:getID() ~= -1) then k = 1 while true do

str = str .. "\n " .. k .. ". " .. query:getDataString("name") .. " - [" .. query:getDataInt("points") .. "]"

k = k + 1

if not(query:next()) or k > max_players then break end end query:free()end

if str ~= "" then doShowTextDialog(cid,6500, str) end

elseif(words == "/addpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end

local player,points = getPlayerByName(t[1]),t[2]

local pid = getPlayerByNameWildcard(t[1])

if not pid then

local guid  = getPlayerGUIDByName(t[1])

if guid == nil then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This player doesn't exists.") return true

end

db.executeQuery("UPDATE `players` SET `points` = `points` + " .. t[2] .. " WHERE `id` = "..guid) 

else

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..points.." Points no seu character.")

addPoints(player,points)

end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você adicionou "..points.." Points do jogador "..t[1])

end

elseif(words == "/delpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end

local player = getPlayerByName(t[1])

local points = t[2]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "você removeu "..points.." Points do jogador "..t[1])

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram removidos "..points.." Points do seu character.")

removePoints(player,points)

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você agora tem "..getPoints(player).." Points.")

end

elseif(words == "/setpoints") then

if getPlayerAccess(cid) == 5 then

local t = string.explode(param, ",")

if not t[1] or not t[2] then return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end

local player = getPlayerByName(t[1])

local points = t[2]

local pid = getPlayerByNameWildcard(t[1])

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

return TRUE,doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Agora o jogador "..t[1].." tem "..points.." Points no seu character.")

doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "agora você tem "..points.." Points do seu character.")

setPoints(player,points)

end

end

return true

end

MAIS ALGUMA COISA SENHOR?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

É A MESMA TALK FILHO, SÓ QUE MODIFICADA PARA ADICIONAR EM PLAYER OFFLINE TAMBÉM...

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Sekk
      Bom gente, eu queria saber se alguem pode fazer um script em que eu posso criar um baú no jogo, tipo um shop, e para abrir o baú, usasse P Points( http://www.tibiaking.com/forum/topic/8183-system-pontos-p-points-system/ )

      Eh que eu quero fazer um Shop System in-game, e poder usar esses P Points como o dinheiro que usa pra abrir o bau, obrigado.

      Obs.: se o player tiver PPoints, ele pode pear quantas vezes quiser dos baús, desde que ele tenha os Points necessários para cada vez que ele pegar o item.

      Obs².: se o player não tiver os points, eu gostaria q aparecesse assim pra ele: "Você não tem P Points suficiente para comprar este item!"

      Desculpa pela má formatação, eh q to no celular... Obg dnv
    • Por Sekk
      Bom, peguei um script aqui no TK, ocorre tudo certo. É um script que usa um certo item como moeda para comprar itens em baús ou alavancas. O meu baú com ActionID "2331", ele vendo arrows, não ocorre nenhum problema na compra do mesmo, porém, o player recebe 100 arrows, sendo que o certo seria 1, isso desiquilibrará muito o servidor.
       
      Por favor me ajudem, ai vai o script:
       


            Obrigado desde já, e espero que alguém possa me ajudar!
    • Por SilentKill
      Alguém Por gentileza poderia  fazer um script ou conhece algum feito, de transferência de Premium points dentro do jogo por trade. Como seria :
       
      1° -  NPC NamekJin Seller : --->  Em que vende um documento Premium Points Transfer document, com vários valores estipulados de points como 10 20 30 40 50 até 100 . note que para adquirir as quantias dos pontos você devera falar : ex: 10, ppt  20 ppt, 30, ppt até o limite 100. :

      ================================================
      2° - O player escolhe comprar o documento de "10,ppt" :
       

      ===============================================
      3° - O player obtêm o documento intermediário para efetuar a troca no trade :
       
       
      ================================================
       
       
      4° - Efetuando a troca :                                                  
       
       
       
      5° Se o player não tiver points na conta ou o Premium Points Transfer document, não estiver em uma bag  não efetuara a transferência, caso o player tenha os 10 pontos na conta a troca será efetuada, e os points transferidos, e o documento irá desaparecer.
       

       
       
      O que seria esse documento ?, seria um documento que o player ao dar trade em outro player ele faz a intermediação, ou seja( o player  compra um Premium Points Transfer Document de valor 10 no npc (porem os points não estão no documento ele só vai intermediar na troca com o player se o player tiver os 10 pontos na conta assim que ele aceitar o trade os pontos são transferidos e o premium points transfer document desaparece.
       
      alguns recursos que eu já implementei na source :
       
      doStartTrade(cid, target, item)
      onTradeAccept(cid, target, item
       
      Agora que peço humildemente de coração alguém pode me ajudar a desenvolver esse sistema, eu não sei como fazer esse script por favor alguém pode me ajudar ?
       
       
       
    • Por wedyhiu2
      Olá boa tarde, queria saber se alguem sabe converter uma Talkactions em um script que e usado ao dar trade com ele resumindo executar o comando só quando der trade com um item de id = 6102 ???
       
    • Por sardou
      Eaí galerinha do TK! Bom, preciso de 2 ajudas de vocês..
      Primeira: Queria saber se tem como colocar um comando no ot para dar points no site..
      Segunda: Quero saber como que eu mudo a logotipo do meu website..
       
      - Agradeço a atenção, uma boa noite.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo