Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

  • 0
brunonyyu

[Resolvido] [PEDIDO] Premium account e itens para iniciantes por comando

Question

Ola, 

Gostaria de estar adicionado um comando na qual quando o Player digitar !starterkit ele ganhasse premium account (sistema que uso é P.A) por 7 dias e 3 itens de minha escolha (pode deixar os 3 itens com o mesmo id que eu vou alterar depois), porem tem os seguintes detalhes:

 

O player tem que ser lvl 20 menos para poder ativar o comando.

so poderar ser ativado 1 vez por conta.

 

Agradeço desde ja.

OBS: nao achei nada no forum para eu poder editar.

Share this post


Link to post
Share on other sites

32 answers to this question

Recommended Posts

  • 1

@brunonyyu tenta ai, em talkactions.xml:

<talkaction words="!starterkit" event="script" value="starterkit.lua"/>

LUA:

local config = {
level = 20, -- Apartir de que level não irá receber
days = 7, -- Dias de Premium Account(VIP) que irá receber
items = {{2160,100}, {2161,1}, {2162,1}}, -- ID do item,QUANTIDADE
storage = 233486 -- str, não mexa
}

function onSay(cid, words, param)
if getPlayerLevel(cid) > config.level then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você precisa ter no maximo level "..config.level.." para receber o kit inicial.")
elseif getPlayerStorageValue(cid, config.storage) < 0 then
for _,ab in pairs(config.items) do
doPlayerAddItem(cid, ab[1], ab[2])
end
doPlayerAddPremiumDays(cid, config.days)   
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, 25, "Você acabou de ganhar o kit inicial!")
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você já pegou seu kit inicial.")
end
return true
end

 

Share this post


Link to post
Share on other sites
  • 1
5 horas atrás, brunonyyu disse:

ok vou tentar procurar algo para fazer isso pelo sqlstudio, obrigado

Tenta assim

PRAGMA journal_mode = MEMORY;
PRAGMA synchronous = OFF;
PRAGMA foreign_keys = OFF;
PRAGMA ignore_check_constraints = OFF;
PRAGMA auto_vacuum = NONE;
PRAGMA secure_delete = OFF;
BEGIN TRANSACTION;


CREATE TABLE `account_storage` (
`account_id` INTEGER NOT NULL default '0',
`key` INTEGER  NOT NULL default '0',
`value` TEXT NOT NULL default '0'
);



CREATE UNIQUE INDEX `account_storage_account_id_2` ON `account_storage` (`account_id`);
CREATE INDEX `account_storage_account_id` ON `account_storage` (`account_id`);

COMMIT;
PRAGMA ignore_check_constraints = ON;
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;

 

Share this post


Link to post
Share on other sites
  • 1

@brunonyyu ele registra com o ID da conta, não do jogador. Fiz aqui o procedimento para ter certeza que não haveria problema. E aqui funcionou corretamente. Não sei oque está havendo com o teu servidor ai. Seria bom você revisar e se for preciso fazer tudo de novo

Share this post


Link to post
Share on other sites
  • 0
Em 10/08/2019 em 12:04, Yan Liima disse:

Ando meio carregado aqui, mas assim que der e se ninguém resolver para você, irei fazer e te mando aqui.

Obrigado @Yan Liima eu tentei editar a propria premium account para adequar ao que eu queria mas como n sei mto o que posso ou n usar acabou n dando certo

Share this post


Link to post
Share on other sites
  • 0
5 horas atrás, Yan Liima disse:

@brunonyyu tenta ai, em talkactions.xml:

<talkaction words="!starterkit" event="script" value="starterkit.lua"/>

LUA:

local config = {
level = 20, -- Apartir de que level não irá receber
days = 7, -- Dias de Premium Account(VIP) que irá receber
items = {{2160,100}, {2161,1}, {2162,1}}, -- ID do item,QUANTIDADE
storage = 233486 -- str, não mexa
}

function onSay(cid, words, param)
if getPlayerLevel(cid) > config.level then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você precisa ter no maximo level "..config.level.." para receber o kit inicial.")
elseif getPlayerStorageValue(cid, config.storage) < 0 then
for _,ab in pairs(config.items) do
doPlayerAddItem(cid, ab[1], ab[2])
end
doPlayerAddPremiumDays(cid, config.days)   
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, 25, "Você acabou de ganhar o kit inicial!")
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você já pegou seu kit inicial.")
end
return true
end

 

Bom Dia @Yan Liima, cara muito obrigado, deu certo, somente um ponto na qual se o cara criar outro char ele consegue ativar novamente o código, eu gostaria que fosse ativado uma vez por conta, mas estou satisfeito assim, gostaria de aprender um pouco mais de LUA, caso tenha um caminho para me mostrar e eu correr atrás agradeço também, vi que vc tb é mapper estou com um probleminha caso puder novamente me ajudar eu agradeço.

 

Share this post


Link to post
Share on other sites
  • 0
Em 12/08/2019 em 09:01, brunonyyu disse:

Bom Dia @Yan Liima, cara muito obrigado, deu certo, somente um ponto na qual se o cara criar outro char ele consegue ativar novamente o código, eu gostaria que fosse ativado uma vez por conta, mas estou satisfeito assim, gostaria de aprender um pouco mais de LUA, caso tenha um caminho para me mostrar e eu correr atrás agradeço também, vi que vc tb é mapper estou com um probleminha caso puder novamente me ajudar eu agradeço.

 

É possivel sim, porém você teria que verificar se há a função na sua LIB. Bom vou te ensinar como ajeitar isso. Primeiramente, vá até o script no qual você copiou e troque tudo por:

Please login or register to see this spoiler.

 

Depois é só ir no seu banco de dados e executar essa Query: 

CREATE TABLE `account_storage` (
`account_id` int(11) NOT NULL default '0',
`key` int(10) unsigned NOT NULL default '0',
`value` varchar(255) NOT NULL default '0',
UNIQUE KEY `account_id_2` (`account_id`,`key`),
KEY `account_id` (`account_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Prontinho xD. Se tem interesse em aprender LUA, entre no nosso grupo do discord: 

Please login or register to see this link.

Share this post


Link to post
Share on other sites
  • 0
1 hora atrás, Yan Liima disse:

É possivel sim, porém você teria que verificar se há a função na sua LIB. Bom vou te ensinar como ajeitar isso. Primeiramente, vá até o script no qual você copiou e troque tudo por:

Please login or register to see this spoiler.

50-function, ja existe em meu OT, tentei adicionar dentro, mas veio mto erro no distro.

somente confirmand, para executar no SQL, seria isso certo?

Please login or register to see this attachment.

 

 

 

(EDITADO 1 - conseguir tirar os erros do 50- function, restou somente um erro no talkaction novo, de caracterer, simbolo inesperado, vou tentar resolver aqui.)

(EDITADO 2 - consegui tirar erro do talkaction, porem n testei, quando abro server aparece erro no sql, que deve ser por causa do que eu add la. vou tentar algo por aqui. caso esteja errado so falar kk.)

Edited by brunonyyu

Share this post


Link to post
Share on other sites
  • 0
22 horas atrás, brunonyyu disse:

(EDITADO 1 - conseguir tirar os erros do 50- function, restou somente um erro no talkaction novo, de caracterer, simbolo inesperado, vou tentar resolver aqui.)

(EDITADO 2 - consegui tirar erro do talkaction, porem n testei, quando abro server aparece erro no sql, que deve ser por causa do que eu add la. vou tentar algo por aqui. caso esteja errado so falar kk.)

Por ser sqlite complica um pouco kkk a Query que passei é de mysql. Eu só estudei mysql, não sei direito como o sqlite funciona. Mas pelo visto, no final das tabela tem um END, igual os demais ai no print.

Share this post


Link to post
Share on other sites
  • 0
2 minutos atrás, Yan Liima disse:

Por ser sqlite complica um pouco kkk a Query que passei é de mysql. Eu só estudei mysql, não sei direito como o sqlite funciona. Mas pelo visto, no final das tabela tem um END, igual os demais ai no print.

eu coloquei, mas nao rolou da mesma forma da erro no sql3, mas é necessario para funcionar o resto?

Share this post


Link to post
Share on other sites
  • 0
Agora, brunonyyu disse:

eu coloquei, mas nao rolou da mesma forma da erro no sql3, mas é necessario para funcionar o resto?

Sim, seria necessario para funcionar o Storage Account. Assim só daria para pegar o item inicial uma vez por conta, não por personagem. Mas se peferir, você pode utilizar o primeiro que te enviei mesmo kk

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, Yan Liima disse:

Sim, seria necessario para funcionar o Storage Account. Assim só daria para pegar o item inicial uma vez por conta, não por personagem. Mas se peferir, você pode utilizar o primeiro que te enviei mesmo kk

entendi, vou tentar mais um tempo aqui vamos ver, eu tentei abrir o sql com o slq server do windows, quando executei ele apresentou erro em outras linhas fora as que adicionei, vou tentar algumas coisas e passo aqui qualquer coisa, so nao queria que o cara pudesse adicionar Premium account a cada char criado, ja que nao penso em usar Vip, e como estou pensando em usar rookgaard, queria poder dar a opção do player ir na area premium.

30 minutos atrás, brunonyyu disse:

entendi, vou tentar mais um tempo aqui vamos ver, eu tentei abrir o sql com o slq server do windows, quando executei ele apresentou erro em outras linhas fora as que adicionei, vou tentar algumas coisas e passo aqui qualquer coisa, so nao queria que o cara pudesse adicionar Premium account a cada char criado, ja que nao penso em usar Vip, e como estou pensando em usar rookgaard, queria poder dar a opção do player ir na area premium.

@Yan Liima pode ser tambem que eu esteja executando no lugar errado, em qual destes arquivos eu devo executar o query?

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites
  • 0

@brunonyyu Ela é executada no banco de dados no qual você utiliza. Sqlitestudio ou esse realserver. Se preferir, você pode pegar o proprio .sql, abrir ele em algum editor de texto, adicionar as linhas lá corretamente e importar no teu servidor... O mysql tem mais facilidade para essas coisas.

Share this post


Link to post
Share on other sites
  • 0
1 hora atrás, Yan Liima disse:

@brunonyyu Ela é executada no banco de dados no qual você utiliza. Sqlitestudio ou esse realserver. Se preferir, você pode pegar o proprio .sql, abrir ele em algum editor de texto, adicionar as linhas lá corretamente e importar no teu servidor... O mysql tem mais facilidade para essas coisas.

ok vou tentar procurar algo para fazer isso pelo sqlstudio, obrigado

1 hora atrás, brunonyyu disse:

ok vou tentar procurar algo para fazer isso pelo sqlstudio, obrigado

@Yan Liima é fico travado nestes erros.

Please login or register to see this attachment.

Edited by brunonyyu

Share this post


Link to post
Share on other sites
  • 0
2 horas atrás, brunonyyu disse:

ok vou tentar procurar algo para fazer isso pelo sqlstudio, obrigado

@Yan Liima é fico travado nestes erros.

Please login or register to see this attachment.

Cara acho q n vai da certo n

Eu usava sqlite e era uma merda pra adc as coisas tive que trocar

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...