Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom galera, preciso de um script na qual o npc vende item por premium days, encontrei em um outro fórum esse, porem nao esta atualizado, gostaria qu alguem ajudasse na reabilitação do script

add in lib/function

[LUA]
function getAccountPoints(cid)
local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
return res:getDataInt("premium_points") < 0 and 0 or res:getDataInt("premium_points")
end

function doAccountRemovePoints(cid, count)
return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
end[/LUA]

Npc:

[LUA]local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:eek:nCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:eek:nCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:eek:nCreatureSay(cid, type, msg) end
function onThink() npcHandler:eek:nThink() 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] = 1,
[2493] = 25,
[2361] = 30,
[8851] = 20,
[8925] = 30,
[2640] = 50,
[2494] = 100,
[9932] = 50,
[2472] = 70,
[8931] = 100
}
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if t[item] and getAccountPoints(cid) < t[item] then
selfSay("You need "..t[item].." points to buy this item.", cid)
else
doAccountRemovePoints(cid, t[item])
doPlayerAddItem(cid, item)
selfSay("Here your 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, 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())[/LUA]


[2640] = 50,

[ITEM ID] = POINTS NEED 
Link para o post
Compartilhar em outros sites

oque ele tem de problema?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

não consegui fazer ele rodar no servidor, como se ele nao entendesse o código se nao me engano. estou no traalho, mas logo que chegar em casa posto o erro


[28/08/2014 21:40:15] [Error - LuaScriptInterface::loadFile] data/npc/scripts/Donate.lua:5: function arguments expected near ':'
[28/08/2014 21:40:15] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Donate.lua
[28/08/2014 21:40:15] data/npc/scripts/Donate.lua:5: function arguments expected near ':'

Link para o post
Compartilhar em outros sites

vc tem que criar essa table no servidor: premium_points
executa a query que provavelmente vai funcionar

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

vc tem que criar essa table no servidor: premium_points

executa a query que provavelmente vai funcionar

 

Acho que não entendi direito, pode detalhar mais por favor?

Link para o post
Compartilhar em outros sites

vc adicionou isso na lib? 

 

Citar

function getAccountPoints(cid)
local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
return res:getDataInt("premium_points") < 0 and 0 or res:getDataInt("premium_points")
end

function doAccountRemovePoints(cid, count)
return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
end

 


Agora precisamos criar a tabela premium_points em sua database!

 

1º) Abra sua DATABASE no SQLITE.
2º) Vá em TOOLS
3º) Siga em OPEN SQL QUERY EDITOR
4º) Coloque na 1º linha a seguinte query:

 

 
ALTER TABLE "players" ADD "premium_points" INT( 11 ) NOT NULL DEFAULT "0";

5º) Aperte F9.

Pronto! Está criada sua tabela de premium_points!

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

sim, a única coisa que não fiz foi adicionar essa query aí, porem os passos aí não são os mesmos para o mysql, sabe me informar como prossigo?


tentei de tudo e continuo na mesma

 

 

[29/08/2014 02:29:31] [Error - LuaScriptInterface::loadFile] data/npc/scripts/Donate.lua:5: function arguments expected near ':'
[29/08/2014 02:29:31] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Donate.lua
[29/08/2014 02:29:31] data/npc/scripts/Donate.lua:5: function arguments expected near ':'

Link para o post
Compartilhar em outros sites

vc tem que adicionar a query na db, o erro que dá é porque ele não tá conseguindo acessar a tabela de premium points '=', nem sei oque é mysql mas  acho q é é só usar o sql lite na db que dá certo

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

vc tem que adicionar a query na db, o erro que dá é porque ele não tá conseguindo acessar a tabela de premium points '=', nem sei oque é mysql mas  acho q é é só usar o sql lite na db que dá certo

 

a configuração é feita pelo phpmyadmin é meio diferente do sqlite, não encontrei ainda o local certo de adicionar essa tab

YukwxuF.pngvx978rj.png

 

ta aí mesmo fazendo pelo sqlite não obtive sucesso

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo