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

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

@Jared Leto'

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

Eu entendi ele quer uma funçao que o player pega 100 reais com o npc e o npc da uma storage pra ele e depois o player vai no npc e paga o emprestimo que pegou e o npc retira a storage o o npc colocou no player

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?

Tipo isso que o Alberess explicou mesmo'

O Player pode pegar 10000 gps no NPC Bank, como empréstimo...

Aí fica com esta dívida ativa no NPC, e pode efetuar a quitação da divida podendo assim emprestar novamente se precisar..

Para dar um sentido melhor, gostaria que se estivesse devendo ao NPC, ao depositar grana no banco, já debitar o valor devedor'

:X

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

certo certo,entendi agora =] dá para fazer com storage sim...

mas esse empréstimo que ele retira é sempre no valor de 10000 gps certo?

ele não pode pedir um empréstimo de 5000 e depois pedir outro de 5000 novamente,dando 10000 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

certo certo,entendi agora =] dá para fazer com storage sim...

mas esse empréstimo que ele retira é sempre no valor de 10000 gps certo?

ele não pode pedir um empréstimo de 5000 e depois pedir outro de 5000 novamente,dando 10000 também...

Então, o empréstimo seria sempre de 10000...

Mais pra frente, depois que tiver como complementar eu gostaria de por para conforme o player for fazendo algumas missões, ganhando Storages, poder pegar mais grana emprestado...

Porém, isso é em um futuro'

Abraços e obrigado desde já'

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



---------------------- 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 doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 26001)) then

setPlayerStorageValue(cid, 26001, -1)

selfSay('pagamento efetuado com sucesso!.',cid)

talkState[talkUser] = 0

else

selfSay('você não tem '..getPlayerStorageValue(cid, 26001)..' gps para pagar seu empréstimo!.',cid)

end

else

selfSay('você não tem empréstimo aqui conosco!.',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. deseja prosseguir? {yes}', cid)

talkState[talkUser] = 26

end


elseif talkState[talkUser] == 26 then

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

if (getPlayerStorageValue(cid, 26001) <= 0) then

doPlayerAddItem(cid,2152,100)

setPlayerStorageValue(cid, 26001, 10000)

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

testa ai,

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

jinzoooo,

Vamos parar com o flood, beleza? Como é seu primeiro post no fórum, peço que leia atentamente as Regras Gerais.

Caso isso ocorra novamente, terei que negativar você.

Abraços,

Lpz

Link para o post
Compartilhar em outros sites

Funcionou perfeitamente' :accept:

REP+

:D

Muito obrigado mesmo.

Abraços'

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

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