Ir para conteúdo
  • Cadastre-se

[RESOLVIDO] Configurar um NPC


Posts Recomendados

Eu queria que o Script fizesse assim...

Queria que o NPC BANK tivesse as funções de você poder pegar dinheiro, como empréstimo, aí o NPC te add uma Storage...

Depois você poderia ir no NPC e quitar esse empréstimo e daí poderia pegar novamente se precisá-se.

Eu tentei fazer isso...até a parte de pegar dinheiro e não poder pegar mais por estar com a Storage funcionou, a parte de que falar pagar e pagar também funcionou,

só que o Script não verifica se o player tem dinheiro suficiente pra pagar na BP e mesmo o player sem dinheiro estava "pagando" e a Storage sendo excluída, podendo assim pegar nova quantia sem ter realmente pago o empréstimo anterior, ou seja, bug...

Ficou como abaixo:

---------------------- PAGAR -------------------------------------------------------------------------------------

elseif talkState[talkUser] == 30 then

if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then

selfSay(' Deseja prosseguir e quitar sua divida de {100 reais} conosco?', cid)

talkState[talkUser] = 31

end

elseif talkState[talkUser] == 31 then

if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then

if (getPlayerStorageValue(cid, 26001)) == 1 then

doPlayerRemoveItem(cid,2152,100)

setPlayerStorageValue(cid, 26001, nil)

talkState[talkUser] = 0

else

selfSay('Pagamento efetuado com sucesso.',cid)

end

else

selfSay('Volte sempre.', cid)

end

---------------------- LIMITE -------------------------------------------------------------------------------------

elseif talkState[talkUser] == 25 then

if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then

selfSay(' Lembre-se: Voce ficara devendo {100 reais} ao banco.', cid)

selfSay(' Deseja prosseguir?', cid)

talkState[talkUser] = 26

end

elseif talkState[talkUser] == 26 then

if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then

if (getPlayerStorageValue(cid, 26001) <= os.time()) then

doPlayerAddItem(cid,2152,100)

setPlayerStorageValue(cid, 26001, os.time()+600)

selfSay('Ai esta seu dinheiro.',cid)

talkState[talkUser] = 0

else

selfSay('Voce precisa pagar o emprestimo anterior para efetuar um novo.',cid)

end

else

selfSay('Volte sempre.', cid)

end

Se possível, gostaria de saber se tem como fazer para que, se você devesse para o NPC BANK, ao depositar algum dinheiro ele ir descontando do que você deve.

Desde já agradeço'

Abraços a todos.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • Respostas 12
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

---------------------- PAGAR ------------------------------------------------------------------------------------- elseif talkState[talkUser] == 30 then if (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) then selfSay(' Deseja prosseguir e quitar sua divida de {100 reais} conosco?', cid) talkState[talkUser] = 31 end elseif talkState[talkUser] == 31 then if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then if (getPlayerStorageValue(cid, 26001) > 9999) then if doPlayerRem

Uma perguntinha, o que significa :

setPlayerStorageValue(cid, 26001, os.time()+600) ?

Parece que é de tempo, mas creio que você possa fazer com quantidade de storage, mas seria uma matemática terrivel.

Pois ai daria pra ele pagar exemplo, 27 reais e 73 reais depois ... da pra fazer isso...

Para resolver seu problema, tente isso :

Exemplo :

if (getPlayerStorageValue(cid, 26001)) == 1 then

subistitui por :

if ((getPlayerStorageValue(cid, 26001)) == 1) and (getPlayerItemCount(cid, 2152) >= 100) then

Espero ter ajudado !

@edit

Me tire uma dúvida,

Pra que serve setPlayerStorageValue(cid, 26001, os.time()+600) ?

Qual é a quantidade de storage 26001 que ele entrega ao player ?

Obrigado =)

Jared Leto

Editado por Jared Leto (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Hidden Content

    Give reaction to this post to see the hidden content.
'

Então, na verdade eu peguei esta tag do script pronta, eu queria por normalmente como você disse acima...

Porém, creio que quanto eu estava fazendo assim, não estava funcionando ou então não estava funcionando a outra parte do Script, a de pagar.

E no caso de pegar 27 e depois mais 73 reais, não seria possível, pois como pode ver não se diz o valor que se quer e sim só que deseja tirar o limite da conta, que no caso é 100 reais.

Vou fazer mais alguns testes aqui'

Obrigado pelas informações.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Adriano eu nao sei se essa funçao aki vai funcionar porque foi meu irmao que fez e o servedele e mix yourots e o distro e mix soft entao ta ai a funçao


Doremovemoney(Cid, Quanty, Delay)

e

Doaddmoney(Cid, Quanty, Delay)

usa 1 pra adicionar o dinheiro e o outro pra retirar eu nao sei explica essa funçao porque eu nao a fiz


lib/050-function




function doAddMoney(cid, quanty, delay)

if isCreature(cid) then

doCreatureAddMoney(cid, quanty)

if delay ~= 1 then

addEvent(doAddMoney, 1000, cid, quanty, delay -1)

end

else

return LUA_ERROR

end

return nil

end


function onSay(cid, words, param)







local add = 10

local money = -1

doAddMoney(cid, money, add)

return TRUE

end










lib/050-function


function doRemovemoney(cid, quanty, delay)

if isCreature(cid) then

doCreatureRemoveMoney(cid, quanty)

if delay ~= 1 then

addEvent(doRemovemoney, 1000, cid, quanty, delay -1)

end

else

return LUA_ERROR

end

return nil

end

exemplo de uso:




function onSay(cid, words, param)

local remove = 10

local money = 5

doRemoveMoney(cid, Remove, Money)

return TRUE

end

eu nao sei se vai ajudar e essas funçoes ai em cima tenta modificar elas xD vou ver se acho mais que adiciona ou remove dinheiro aki ---edit

doPlayerRemoveStorage(cid, storage)




lib/050-function


function doPlayerRemoveStorage(cid, storage)

local pid = getPlayerGUID(cid)  

doRemoveCreature(cid,true)

db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pid .. " AND `key` = " .. storage .. ";")

return TRUE

end

Exemplo de uso:



local stor = 30000 -- numero da storage

if getPlayerStorageValue(cid, stor) >= 1 then

doPlayerRemoveStorage(cid, stor)

end

Editado por Alberess (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Eu ainda não entendi o script...

No caso o jogador recebe um 'saldo bônus' de 100?

ai ele pode ir retirando esse saldo até chegar 100...caso ele não tenha pagado o saldo ele não pode retirar mais dinheiro do npc até pagar oque ele deve?

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.

  • Estatísticas dos Fóruns

    96843
    Tópicos
    519612
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo