Ir para conteúdo

[Encerrado] [Encerrado] Script não da erro, porém não funciona


AdilsonHacker

Posts Recomendados

Galera, uso esse dois script para da premium no meu ot, porém, quando uso nada acontece.
alguém pode me ajudar?

 

Scripts:

Creaturescript

 

 

 

 

 

 

 

 

function onTradeAccept(cid, target, item, targetItem)    local days = string.sub(getItemDescriptions(item.uid), 1, 2)    if isPlayer(cid) and isPlayer(target) then        if item.itemid == 1952 then            doPlayerAddPremiumDays(cid, -days)            doPlayerAddPremiumDays(target, days)            doPlayerSendTextMessage(cid, 25, "Voce vendeu " .. days .. " de Premium Account para " .. getCreatureName(target) .. "!")            doPlayerSendTextMessage(target, 25, "Voce comprou " .. days .. " de Premium Account do jogador " .. getCreatureName(cid) .. "!")        end    end    return trueend
 

Talkactions:

 

 

 

 

 

 

 

 

function onSay(cid, words, param, channel)    if param == "" then        doPlayerSendCancel(cid, "Para vender seus dias de premium account, diga /trade premium dias playerName.")        return true    end        if param:lower():find('premium') == 1 and 3 then        local _,_,id,name = param:lower():find('premium (%d+) (.+)')            name = name or ""            id = tonumber(id or 1) or 1            if tonumber(id) == nil or getPlayerByName(name) == false then                return doPlayerSendTextMessage(cid,25,"Voce fez algo errado. Para vender seus dias de premium diga /trade premium dias playerName.")            end              if isPlayer(getPlayerByName(name)) then                if getPlayerPremiumDays(cid) < tonumber(id) then                    doPlayerSendCancel(cid, "Voce tem menos que " .. tonumber(id) .. " dias de premium.")                    return false                end            local document = doPlayerAddItem(cid, 1952, 1)            local days = doItemSetAttribute(document, "description", tonumber(id))            doStartTrade(cid, getPlayerByName(name), document)            doPlayerSendTextMessage(cid, 25, "O jogador " .. name .. " quer te vender " .. tonumber(id) .. " dias de Premium Acount.")         else            doPlayerSendTextMessage(cid,22,name.." nao esta online ou nao existe.")         end    end    return trueend
 

 

Versão do meu Server: 10.37

 

Editado por AdilsonHacker
Link para o comentário
Compartilhar em outros sites

Essa sentença aqui está errada. Lua não é python e nem c++ para aceitar isso.

Citar

if param:lower():find('premium') == 1 and 3 then

 

Insira a declaração em duas variáveis para poder pegar os valores obtidos.

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Poccnn disse:

Essa sentença aqui está errada. Lua não é python e nem c++ para aceitar isso.

 

Insira a declaração em duas variáveis para poder pegar os valores obtidos.

Tá, mas pode me ajudar a fazer isso?

não sei quase nada, apenas o básico.

Grato!!

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Poccnn disse:

if param:lower():find('premium') then

Obrigado por tentar ajudar amigo, mas, ainda continua mesma coisa, sem erros na distro porém, sem funcionar nada.

Quando executo o comando no jogo nao aparece nada, nem erros nem nada.

Link para o comentário
Compartilhar em outros sites

Faz um teste. 

Insere abaixo da função onsay esse código. 

print(param:lower():find ("premium"))

 

Verifica no console se ouve a print.

Link para o comentário
Compartilhar em outros sites

5 horas atrás, Poccnn disse:

Faz um teste. 

Insere abaixo da função onsay esse código. 

print(param:lower():find ("premium"))

 

Verifica no console se ouve a print.

Mesma coisa amigo, e nada de print no console.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, AdilsonHacker disse:

Mesma coisa amigo, e nada de print no console.

Isso é bom. Isso quer dizer que ele não está encontrando a palavra.

 

Faz o seguinte.

Adiciona essa variável logo abaixo da função onsay e substitui o if por este respectivamente:

 

param = param:lower()

 

if param:find('premium') then

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Poccnn disse:

Isso é bom. Isso quer dizer que ele não está encontrando a palavra.

 

Faz o seguinte.

Adiciona essa variável logo abaixo da função onsay e substitui o if por este respectivamente:

 

param = param:lower()

 

if param:find('premium') then

Fiz do jeitinho que você falou ai, ainda continua sem erros mas, nada funciona.

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, Poccnn disse:

Mais um teste.

print(param:find("premium"))

Agora ta aparecendo a seguinte frase no console: "nil" sempre que executo o comando, porém nada funciona também

Link para o comentário
Compartilhar em outros sites

Em 15/08/2017 at 12:14, Poccnn disse:

Ok.

Faz outro teste.

print (param)

O comando que uso pra fazer o comando funcionar é: "!premium 2,PLAYERNAME"

agora ta aparecendo só: "2,PLAYERNAME" no console

Editado por AdilsonHacker
Link para o comentário
Compartilhar em outros sites

Em 15/08/2017 at 12:28, Poccnn disse:

Ai fica a pergunta:

Como tu tenta pegar a palavra premium sendo que não está sendo usada?

Eu não entendi o que tu quer fazer.

Ela está sendo usada, a "vip" do meu ot é por premium account.

apenas o comando que executa é "premium"

 

@EDIT

 

Se quiser posso te explicar bem detalhado como funciona esse sistema

Editado por AdilsonHacker
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...