Ir para conteúdo
  • Cadastre-se

(Resolvido){Pedido} Arma de fogo


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Olá galera!

 

Estou precisando de um script bom de armas de fogo, eu tenho um mas não é tão completo! Explicarei melhor.

 

-Meu script é esse:

 

data/spells/scripts - arma.lua

 

 

local runa = 7417

local msg = "Coloque a %s na mão para atirar."
local attackmin, attackmax = 30, 42 -- attack minimo, attack maximo
function onCastSpell(cid, var)
        local left, right = getPlayerSlotItem(cid, CONST_SLOT_LEFT), getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
        if isInArray({left.itemid, right.itemid}, runa) then
        else
                return doPlayerSendCancel(cid, msg:format(getItemNameById(runa)))
        end
if doPlayerRemoveItem(cid, 2671, 1) then -- troque pelo id da bolt
target = getCreatureTarget(cid)
if (target <= 0) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Selecione um target.")
return false
end
hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3)
                                   doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA)
                                    doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 15)
                                    return  TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui dardos.")
return true
end

 

 

Em vermelho: id do club

Em laranja: Hit mínimo e máximo

Em azul: id da munição (uso um tipo de bolt)

 

data/spells/spells.xml -adicione esta tag:

 

 

<rune name="Espuleta" id="7417" allowfaruse="1" charges="no" lvl="1" exhaustion="2000" maglv="0" range="7" needtarget="0" blocktype="solid" event="script" value="arma.lua"/>

 

 

Em vermelho: Nome da runa

Em laranja: id do mesmo club do script

 

Esse script está muito incompleto, o exaustion não funciona, e eu queria um jeito de poder trocar a munição por talckaction ou somente clicando em cima da munição, EX: clicar na bolt de id 2671 e a arma trocaria a munição para a bolt de id 2671, e clicando em outra bolt de outro id a arma trocaria para essa outra bolt.

 

Espero respostas.

Oi

Link para o post
Compartilhar em outros sites
  • Solução

eu tenho esse script aqui que o @Adriano SwaTT fez a mil anos atrás, vê se é oque tu tá procurando
 

local bullets = 6529
local ammo = 2299
local glock, g_qtdd = 2406, 14
local tglock, tg_qtdd = 2407, 16
local sglock, sg_qtdd = 2408, 18
local spglock, spg_qtdd = 2431, 20
local tempo = 3 -- em segundos


local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1)


function onUse(cid, item, frompos, itemEx, topos)
local n = getPlayerSlotItem(cid, 10).type
local m = getPlayerSlotItem(cid, 6).itemid
local b = getPlayerItemCount(cid, ammo)
if n >= 1 then
doPlayerSendCancel(cid, "Deixe o slot de municao vazio para recarregar sua arma.")
end
if itemEx.itemid == glock and n == 0 and m == glock and b >= g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, g_qtdd)
addEvent(reload_glock, tempo * 1000, cid)
elseif itemEx.itemid == glock and m == glock and n == 0 and b < g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, b)
addEvent(reload_glock2, tempo * 1000, cid)
elseif itemEx.itemid == sglock and n == 0 and m == sglock and b >= sg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, sg_qtdd)
addEvent(reload_sglock, tempo * 1000, cid)
elseif itemEx.itemid == spglock and n == 0 and m == spglock and b >= spg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, spg_qtdd)
addEvent(reload_spglock, tempo * 1000, cid)
end 
  return true
end


function reload_glock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, g_qtdd)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock, 4000, cid)
end
return true
end
function reload_glock2(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, b)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock2, 4000, cid)
end
return true
end


function reload_tglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == tglock then
doPlayerAddItem(cid, bullets, tg_qtdd)
doPlayerSendTextMessage(cid, 21, "Tactical Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Tactical Glock empunhada para recarregar.")
addEvent(reload_tglock, 4000, cid)
end 
  return true
end


function reload_sglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == sglock then
doPlayerAddItem(cid, bullets, sg_qtdd)
doPlayerSendTextMessage(cid, 21, "Super Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Super Glock empunhada para recarregar.")
addEvent(reload_sglock, 4000, cid)
end 
  return true
end


function reload_spglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == spglock then
doPlayerAddItem(cid, bullets, spg_qtdd)
doPlayerSendTextMessage(cid, 21, "Special Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Special Glock empunhada para recarregar.")
addEvent(reload_spglock, 4000, cid)
end 
  return true
end

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

 

eu tenho esse script aqui que eu arrumei prum amigo a mil anos atrás... vê se é oque tu tá procurando:

 

local bullets = 6529
local ammo = 2299
local glock, g_qtdd = 2406, 14
local tglock, tg_qtdd = 2407, 16
local sglock, sg_qtdd = 2408, 18
local spglock, spg_qtdd = 2431, 20
local tempo = 3 -- em segundos


local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1)


function onUse(cid, item, frompos, itemEx, topos)
local n = getPlayerSlotItem(cid, 10).type
local m = getPlayerSlotItem(cid, 6).itemid
local b = getPlayerItemCount(cid, ammo)
if n >= 1 then
doPlayerSendCancel(cid, "Deixe o slot de municao vazio para recarregar sua arma.")
end
if itemEx.itemid == glock and n == 0 and m == glock and b >= g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, g_qtdd)
addEvent(reload_glock, tempo * 1000, cid)
elseif itemEx.itemid == glock and m == glock and n == 0 and b < g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, b)
addEvent(reload_glock2, tempo * 1000, cid)
elseif itemEx.itemid == sglock and n == 0 and m == sglock and b >= sg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, sg_qtdd)
addEvent(reload_sglock, tempo * 1000, cid)
elseif itemEx.itemid == spglock and n == 0 and m == spglock and b >= spg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, spg_qtdd)
addEvent(reload_spglock, tempo * 1000, cid)
end 
  return true
end


function reload_glock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, g_qtdd)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock, 4000, cid)
end
return true
end
function reload_glock2(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, b)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock2, 4000, cid)
end
return true
end


function reload_tglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == tglock then
doPlayerAddItem(cid, bullets, tg_qtdd)
doPlayerSendTextMessage(cid, 21, "Tactical Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Tactical Glock empunhada para recarregar.")
addEvent(reload_tglock, 4000, cid)
end 
  return true
end


function reload_sglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == sglock then
doPlayerAddItem(cid, bullets, sg_qtdd)
doPlayerSendTextMessage(cid, 21, "Super Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Super Glock empunhada para recarregar.")
addEvent(reload_sglock, 4000, cid)
end 
  return true
end


function reload_spglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == spglock then
doPlayerAddItem(cid, bullets, spg_qtdd)
doPlayerSendTextMessage(cid, 21, "Special Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Special Glock empunhada para recarregar.")
addEvent(reload_spglock, 4000, cid)
end 
  return true
end

 

Pelo que me parece, é sim! Tem como você fazer um pequeno tutorial de como eu possa edita-lo? Em que eu posso mexer e pra que serve as coisas que eu posso editar...?

Oi

Link para o post
Compartilhar em outros sites
local bullets = 6529
local ammo = 2299
local glock, g_qtdd = 2406, 14
local tglock, tg_qtdd = 2407, 16
local sglock, sg_qtdd = 2408, 18
local spglock, spg_qtdd = 2431, 20
local tempo = 3 -- em segundos

são os id's e tempo é o tempo de recarga. é um sistema de várias armas de fogo diferentes

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
local bullets = 6529
local ammo = 2299
local glock, g_qtdd = 2406, 14
local tglock, tg_qtdd = 2407, 16
local sglock, sg_qtdd = 2408, 18
local spglock, spg_qtdd = 2431, 20
local tempo = 3 -- em segundos

são os id's e tempo é o tempo de recarga. é um sistema de várias armas de fogo diferentes

 

 

Ah SIM! Entendi, obrigado :) reputado

Oi

Link para o post
Compartilhar em outros sites

não sei cara, cria um tópico no suporte que tá foda.. não consigo me concentrar em ajudar com tanta private message

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • 2 months later...

 

eu tenho esse script aqui que eu arrumei prum amigo a mil anos atrás... vê se é oque tu tá procurando:

local bullets = 6529
local ammo = 2299
local glock, g_qtdd = 2406, 14
local tglock, tg_qtdd = 2407, 16
local sglock, sg_qtdd = 2408, 18
local spglock, spg_qtdd = 2431, 20
local tempo = 3 -- em segundos


local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1)


function onUse(cid, item, frompos, itemEx, topos)
local n = getPlayerSlotItem(cid, 10).type
local m = getPlayerSlotItem(cid, 6).itemid
local b = getPlayerItemCount(cid, ammo)
if n >= 1 then
doPlayerSendCancel(cid, "Deixe o slot de municao vazio para recarregar sua arma.")
end
if itemEx.itemid == glock and n == 0 and m == glock and b >= g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, g_qtdd)
addEvent(reload_glock, tempo * 1000, cid)
elseif itemEx.itemid == glock and m == glock and n == 0 and b < g_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, b)
addEvent(reload_glock2, tempo * 1000, cid)
elseif itemEx.itemid == sglock and n == 0 and m == sglock and b >= sg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, sg_qtdd)
addEvent(reload_sglock, tempo * 1000, cid)
elseif itemEx.itemid == spglock and n == 0 and m == spglock and b >= spg_qtdd then
doAddCondition(cid, condition_infight)
doPlayerSendTextMessage(cid, 22, "Recarregando...")
doPlayerRemoveItem(cid, ammo, spg_qtdd)
addEvent(reload_spglock, tempo * 1000, cid)
end 
  return true
end


function reload_glock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, g_qtdd)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock, 4000, cid)
end
return true
end
function reload_glock2(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == glock then
doPlayerAddItem(cid, bullets, b)
doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.")
addEvent(reload_glock2, 4000, cid)
end
return true
end


function reload_tglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == tglock then
doPlayerAddItem(cid, bullets, tg_qtdd)
doPlayerSendTextMessage(cid, 21, "Tactical Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Tactical Glock empunhada para recarregar.")
addEvent(reload_tglock, 4000, cid)
end 
  return true
end


function reload_sglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == sglock then
doPlayerAddItem(cid, bullets, sg_qtdd)
doPlayerSendTextMessage(cid, 21, "Super Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Super Glock empunhada para recarregar.")
addEvent(reload_sglock, 4000, cid)
end 
  return true
end


function reload_spglock(cid)
local n2 = getPlayerSlotItem(cid, 10).itemid
local m = getPlayerSlotItem(cid, 6).itemid
if n2 == 0 and m == spglock then
doPlayerAddItem(cid, bullets, spg_qtdd)
doPlayerSendTextMessage(cid, 21, "Special Glock recarregada com sucesso.")
doRemoveCondition(cid, CONDITION_INFIGHT)
else
doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Special Glock empunhada para recarregar.")
addEvent(reload_spglock, 4000, cid)
end 
  return true
end

Boa tarde.

Me desculpe por reviver este tópico, mas este script é de minha autoria.

Pelo texto que colocou no início, parece que foi você quem criou...

Peço que quando for assim, ou não coloque nada, apenas repasse o script ou então que coloque os devidos créditos.

 

Obrigado.

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

eu tinha deletado esse tópico por pedido seu, não sei como ele voltou pra cá o.O

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

eu tinha deletado esse tópico por pedido seu, não sei como ele voltou pra cá o.O

Ah sim, então me desculpe pelo transtorno, lembrava de algo do tipo, mas não tinha certeza se era exatamente este script e se era você mesmo.

Se lembrasse nem teria postado isso novamente.

 

Abraços brother.

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

você quer que eu exclua ele ou deixe assim com os créditos?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Ah, pode deixar sim, só adicione os créditos.

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

ok então, já foi adicionado e mais uma vez desculpa o transtorno ;/

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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