Ir para conteúdo
  • Cadastre-se

Normal remover speed da criatura e depois retornar


Posts Recomendados

E ai galera, esses dias eu estava tentando fazer um script que o pessoal procura muito que é o famoso sistema de saga, que consiste no seguinte, o player só pode atacar e ser atacado por uma devida criatura se possuir certa storage caso contrario a criatura não ira se mover, bom, consegui fazer quase tudo em lua, só que existe um pequeno problema, que é o seguinte, esse problema está na parte que retorna a speed da criatura, a speed não retorna, tudo funciona corretamente exceto essa parte, tudo por conta do 'return false', esse comando retorna toda a função fazendo com que o onAttack não funcione ou seja o player não seja atacado mesmo possuindo a storage, peça humildemente a ajuda de vocês e agradeço desde já qualquer intenção, script:

 

local name, storage = 'fire devil', 11112
local sto = 800000
local speedchange = 0
function onAttack(cid, target)
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) < 0 then
setPlayerStorageValue(cid, sto, getCreatureSpeed(cid))
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, speedchange)
return false
end
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) > 1 then -- O ERRO PERTENCE A ESSA PARTE
doChangeSpeed(cid, -getCreatureSpeed(cid))
local oldspeed = getPlayerStorageValue(cid, sto) == -1 and getCreatureBaseSpeed(cid) or getPlayerStorageValue(cid, sto)
doChangeSpeed(cid, oldspeed)
return false -- O PROBLEMA ESTA AQUI
end
return true
end
function onCombat(cid, target)
if isPlayer(cid) and getCreatureStorage(cid, storage) < 0 and isMonster(target) and getCreatureName(target):lower() == name then
doPlayerSendCancel(cid, 'You cannot attack this monster.')
return false
end 
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) < 0 then
return false
end
return true
end
function onKill(cid, target, lastHit)
if isMonster(target) and getCreatureName(target):lower() == name and isPlayer(cid) and getCreatureStorage(cid, storage) > 0 then
doCreatureSetStorage(cid, storage, -1)
end
return true
end

 

Link para o post
Compartilhar em outros sites
16 minutos atrás, nbb147 disse:

E ai galera, esses dias eu estava tentando fazer um script que o pessoal procura muito que é o famoso sistema de saga, que consiste no seguinte, o player só pode atacar e ser atacado por uma devida criatura se possuir certa storage caso contrario a criatura não ira se mover, bom, consegui fazer quase tudo em lua, só que existe um pequeno problema, que é o seguinte, esse problema está na parte que retorna a speed da criatura, a speed não retorna, tudo funciona corretamente exceto essa parte, tudo por conta do 'return false', esse comando retorna toda a função fazendo com que o onAttack não funcione ou seja o player não seja atacado mesmo possuindo a storage, peça humildemente a ajuda de vocês e agradeço desde já qualquer intenção, script:

 


local name, storage = 'fire devil', 11112
local sto = 800000
local speedchange = 0
function onAttack(cid, target)
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) < 0 then
setPlayerStorageValue(cid, sto, getCreatureSpeed(cid))
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, speedchange)
return false
end
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) > 1 then -- O ERRO PERTENCE A ESSA PARTE
doChangeSpeed(cid, -getCreatureSpeed(cid))
local oldspeed = getPlayerStorageValue(cid, sto) == -1 and getCreatureBaseSpeed(cid) or getPlayerStorageValue(cid, sto)
doChangeSpeed(cid, oldspeed)
return false -- O PROBLEMA ESTA AQUI
end
return true
end
function onCombat(cid, target)
if isPlayer(cid) and getCreatureStorage(cid, storage) < 0 and isMonster(target) and getCreatureName(target):lower() == name then
doPlayerSendCancel(cid, 'You cannot attack this monster.')
return false
end 
if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) < 0 then
return false
end
return true
end
function onKill(cid, target, lastHit)
if isMonster(target) and getCreatureName(target):lower() == name and isPlayer(cid) and getCreatureStorage(cid, storage) > 0 then
doCreatureSetStorage(cid, storage, -1)
end
return true
end

 

Não entendi porque esse return false está aí, essa é a condição que o player poderia atacar, porque tem o storage necessário e a speed retorna, troque por um return true

Link para o post
Compartilhar em outros sites

quando coloco return true, o personagem que possui a storag ao chegar perto da criatura é atacada mas o monstro fica travando, tipo, anda e para, anda e para, e se eu me afastar muito do monstro ele para totalmente e só volta a andar quando o personagem encosta novamente no monstro

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

acho melhor fazer por C++

esse código já está disponível

 

https://otland.net/threads/passive-monsters-attack-when-attacked.232475/ 

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

mas ai não seria o que preciso, isso dai já é outra parada, mas de qualquer maneira agradeço.

sem contar que isso dai é pra tfs 1.1, o meu tfs é 0.3, os locais são diferentes

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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo