Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal do Tk, implantei um sistema de recarga no item 2352 (Crystal Arrow), e para tanto quando a magia é efetuda, ao invés de remover a o item 2352, a magia vai removendo a as cargas, só que no script, exitem duas condições para que a magia seja realizada, se o player estiver com algumas dessas Arrows abaixo, a magia acontece.

Quote

local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas

Caso contrário, se o player tiver uma C. arrow com cargas, a magia tbm deve acontecer, no entanto vejo que não consegui fazer que funcione com as duas condições, quando executo a magia o script só verifica se o player está com a c. arrow com cargas, caso ele esteje com umas das arrows citadas acima o magia da erro e não faz nada. Segue a função. 

Ressalto que não sou scripter, só intendo um pouco de lógica.

Spoiler

function onCastSpell(cid, var)
        local Crystal = 2352
        local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil

if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2352 and getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") >= 1 then
doItemSetAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal", (getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") - 1))
doItemSetAttribute(getPlayerWeapon(cid).uid, "name", "" ..getItemNameById(Crystal).." ["..getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal").." Charges]") 
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 }
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 400, parameters)
                addEvent(onCastSpell3, 800, parameters)
                addEvent(onCastSpell4, 1200, parameters)
                addEvent(onCastSpell5, 1600, parameters)
                addEvent(onCastSpell5, 2900, parameters)
                return TRUE
                elseif ammo and doRemoveItem(ammo.uid, 3) then
 local parameters2 = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 }
                addEvent(onCastSpell1, 100, parameters2)
                addEvent(onCastSpell2, 400, parameters2)
                addEvent(onCastSpell3, 800, parameters2)
                addEvent(onCastSpell4, 1200, parameters2)
                addEvent(onCastSpell5, 1600, parameters2)
                addEvent(onCastSpell5, 2900, parameters2)
                return TRUE
        else
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa no minimo de 3 munições. Ou uma Crystal Arrou com cargas.")
                return FALSE
        end
        
end

Dê uma ajudinha aew...

up

Editado por Rogerio Js (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
11 horas atrás, Rogerio Js disse:

Olá pessoal do Tk, implantei um sistema de recarga no item 2352 (Crystal Arrow), e para tanto quando a magia é efetuda, ao invés de remover a o item 2352, a magia vai removendo a as cargas, só que no script, exitem duas condições para que a magia seja realizada, se o player estiver com algumas dessas Arrows abaixo, a magia acontece.

Caso contrário, se o player tiver uma C. arrow com cargas, a magia tbm deve acontecer, no entanto vejo que não consegui fazer que funcione com as duas condições, quando executo a magia o script só verifica se o player está com a c. arrow com cargas, caso ele esteje com umas das arrows citadas acima o magia da erro e não faz nada. Segue a função. 

Ressalto que não sou scripter, só intendo um pouco de lógica.

  Ocultar conteúdo

function onCastSpell(cid, var)
        local Crystal = 2352
        local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil

if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2352 and getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") >= 1 then
doItemSetAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal", (getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") - 1))
doItemSetAttribute(getPlayerWeapon(cid).uid, "name", "" ..getItemNameById(Crystal).." ["..getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal").." Charges]") 
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 }
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 400, parameters)
                addEvent(onCastSpell3, 800, parameters)
                addEvent(onCastSpell4, 1200, parameters)
                addEvent(onCastSpell5, 1600, parameters)
                addEvent(onCastSpell5, 2900, parameters)
                return TRUE
                elseif ammo and doRemoveItem(ammo.uid, 3) then
 local parameters2 = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 }
                addEvent(onCastSpell1, 100, parameters2)
                addEvent(onCastSpell2, 400, parameters2)
                addEvent(onCastSpell3, 800, parameters2)
                addEvent(onCastSpell4, 1200, parameters2)
                addEvent(onCastSpell5, 1600, parameters2)
                addEvent(onCastSpell5, 2900, parameters2)
                return TRUE
        else
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa no minimo de 3 munições. Ou uma Crystal Arrou com cargas.")
                return FALSE
        end
        
end

Dê uma ajudinha aew...

 

Da algum erro no executável?

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