LU
pedido

Fábrica de Scripts

Por LuckOake, 28 de set. de 2013 em Scripts

resolvido
script
166
20.7k
HeelNoxH
29 de setembro de 2013 às 17:03

 

 

Olá luck eu de novo espero não estar incomodando =]

Tipo: Creature,Talk,Movements,Actions (Qualquer um)

Oque faz: Muda a looktype quando equipa tal item

Pedido: Bom Luck o script pode ser qualquer tipo , só quero que quando player equipar o item 2160 muda-se automaticamente para a looktype 3 , quando tira-se volta-se para looktype de antes

Espero não estar em comodando , quando puder fazer faça estou aqui esperando =]

 

Até boa sorte com seu tópico.

 

 

Em data/movements/scripts, crie um arquivo chamado equip_bullet.lua e coloque dentro:

local look = 3 -- ID da outfit

function onEquip(cid, item)
    doSetCreatureOutfit(cid, {lookType = look}, -1)
return true
end

function onDeEquip(cid, item)
    doRemoveCondition(cid, CONDITION_OUTFIT)
return true
end

Movements.xml:

<movevent type="Equip" itemid="2160" slot="ammo" script="equip_bullet.lua"/>
<movevent type="DeEquip" itemid="2160" slot="ammo" script="equip_bullet.lua"/>

 

Obrigado denovo Luck xD slot"ammo" qual seria o nome para ter que ser no local da arma ?

 

Nesse seu script aqui tem como você por "Precisa estar no slot correto para usar a arma" e so poder atirar quando estiver no slot

function onUse(cid, item, fromPosition, itemEx, toPosition)
local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With.
local bullet_id = 2544 -- ID da munição
local shots_amount = 1 -- Tiros por vez
local exhaustion_time = 1 -- Segundos de exhaustion
local exhaust = 19301 -- Storage da exhaustion
local dmg_min, dmg_max = -10, -20 -- Dano mínimo, dano máximo
local shot_effect = 3 -- Efeito do tiro
local shot_distance_effect = 1 -- Distance effect do tiro
local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano
local shots_delay = 200 -- Delay dos tiros (em milissegundos)
if need_target then
if getCreatureTarget(cid) <= 0 then
return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
return doPlayerSendCancel(cid, "Você não possui munição.")
elseif exhaustion.check(cid, exhaust) then
return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
end
exhaustion.set(cid, exhaust, exhaustion_time)
for i = 0, shots_amount-1 do
addEvent(function()
if getCreatureTarget(cid) <= 0 then
return true
elseif getPlayerItemCount(cid, bullet_id) < 1 then
return doPlayerSendCancel(cid, "Você não possui munição.")
end
doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect)
doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect)
doPlayerRemoveItem(cid, bullet_id, 1)
end, shots_delay*i)
end
else
if not isCreature(itemEx.uid) then
return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
return doPlayerSendCancel(cid, "Você não possui munição.")
elseif exhaustion.check(cid, exhaust) then
return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
end
exhaustion.set(cid, exhaust, exhaustion_time)
for i = 0, shots_amount-1 do
addEvent(function()
if not isCreature(itemEx.uid) then
return true
elseif getPlayerItemCount(cid, bullet_id) < 1 then
return doPlayerSendCancel(cid, "Você não possui munição.")
end
doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect)
doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect)
doPlayerRemoveItem(cid, bullet_id, 1)
end, shots_delay*i)
end
end
return true
end

 

 

JeanCristianJ
29 de setembro de 2013 às 17:06

Hand

vuduzinV
29 de setembro de 2013 às 17:08

Oneshot tu ta no coração REP+

Abraços.

JeanCristianJ
29 de setembro de 2013 às 17:09

seria bom se sumisse 1 muniçao cada tiro que desse :(

LuckOakeL
29 de setembro de 2013 às 17:11

 

Obrigado denovo Luck xD slot"ammo" qual seria o nome para ter que ser no local da arma ?

 

Nesse seu script aqui tem como você por "Precisa estar no slot correto para usar a arma" e so poder atirar quando estiver no slot

 

 

O Slot ammo é o local da munição. Caso queira trocar pra mão, muda pra hand.

 

Script:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With.
    local bullet_id = 2544 -- ID da munição
    local shots_amount = 1 -- Tiros por vez
    local exhaustion_time = 1 -- Segundos de exhaustion
    local exhaust = 19301 -- Storage da exhaustion
    local dmg_min, dmg_max = -10, -20 -- Dano mínimo, dano máximo
    local shot_effect = 3 -- Efeito do tiro
    local shot_distance_effect = 1 -- Distance effect do tiro
    local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano
    local shots_delay = 200 -- Delay dos tiros (em milissegundos)
    local slots = {CONST_SLOT_LEFT, CONST_SLOT_RIGHT} -- Constants dos Slots permitidos
    local control = 0 -- Não modifique, variável de controle
    
    for a, b in ipairs(slots) do
        if getPlayerSlotItem(cid, b).uid ~= item.uid then
            control = control + 1
        end
    end
    if control == #slots then
        return doPlayerSendCancel(cid, "Coloque a arma no slot correto.")
    end
    if need_target then
        if getCreatureTarget(cid) <= 0 then
            return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
        elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
            return doPlayerSendCancel(cid, "Você não possui munição.")
        elseif exhaustion.check(cid, exhaust) then
            return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
        end
        
        exhaustion.set(cid, exhaust, exhaustion_time)
        for i = 0, shots_amount-1 do
            addEvent(function()
                    if getCreatureTarget(cid) <= 0 then
                        return true
                    elseif getPlayerItemCount(cid, bullet_id) < 1 then
                        return doPlayerSendCancel(cid, "Você não possui munição.")
                    end
                    doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect)
                    doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect)
                    doPlayerRemoveItem(cid, bullet_id, 1)
                end, shots_delay*i)
        end
    else
        if not isCreature(itemEx.uid) then
            return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
        elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
            return doPlayerSendCancel(cid, "Você não possui munição.")
        elseif exhaustion.check(cid, exhaust) then
            return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
        end
        
        exhaustion.set(cid, exhaust, exhaustion_time)
        for i = 0, shots_amount-1 do
            addEvent(function()
                    if not isCreature(itemEx.uid) then
                        return true
                    elseif getPlayerItemCount(cid, bullet_id) < 1 then
                        return doPlayerSendCancel(cid, "Você não possui munição.")
                    end
                    doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect)
                    doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect)
                    doPlayerRemoveItem(cid, bullet_id, 1)
                end, shots_delay*i)
        end
    end
return true
end

 

 

Editado Setembro 29 por LuckOake

29 de setembro de 2013 às 17:15

One,voce intendeu?o do vod,precisa pedir a task ao NPC,e eu quero que não peça tendeu?

ManoelRibeiroM
29 de setembro de 2013 às 17:19

Galera, vou pedir por meio dessa mensagem que vocês tenham um pingo de consciência, todos que atendem na fábrica (Luck, One e eu) adoramos fazer scripts, nada contra a pedidos e etc.

 

Mas tem gente que não entendeu o verdadeiro intuito da fábrica.

 

A ideia não é vocês terem 3 escravos que façam qualquer script ao seu bel prazer, a ideia é que vocês tenham sim o seus scripts em mãos mas que logo após isso não fiquem pedindo ajustes, salvo se for erro do autor do script, mas se você faz um pedido o mínimo que se espera é que você tenha a ideia certa na cabeça.

 

É deveras chato olhar pro tópico e ver que alguns usuários (não citarei nicks) ficam floodando o tópico com conversas e pedidos sem sentido algum quebrando todas as regras do tópico.

 

Respeitem as regras de dois pedidos de vez, e evitem ao máximo ficarem pedindo ajustes sem sentido nos scripts, venham com a ideia certa na cabeça para que nós possamos fazer o seu script de uma vez só, vai ser bom pra gente e bom pra vocês também.

 

Obrigado pela compreensão.

Editado Setembro 29 por ManoelRibeiro

HeelNoxH
29 de setembro de 2013 às 17:20

Obrigado Luck Funcionou =]


Galera, vou pedir por meio dessa mensagem que vocês tenham um pingo de consciência, todos que atendem na fábrica (Luck, One e eu) adoramos fazer scripts, nada contra a pedidos e etc.

 

Mas tem gente que não entendeu o verdadeiro intuito da fábrica.

 

A ideia não é vocês terem 3 escravos que façam qualquer script ao seu bel prazer, a ideia é que vocês tenham sim o seus scripts em mãos mas que logo após isso não fiquem pedindo ajustes, salvo se for erro do autor do script, mas se você faz um pedido o mínimo que se espera é que você tenha a ideia certa na cabeça.

 

É deveras chato olhar pro tópico e ver que alguns usuários (não citarei nicks) ficam floodando o tópico com conversas e pedidos sem sentido algum quebrando todas as regras do tópico.

 

Respeitem as regras de dois pedidos de vez, e evitem ao máximo ficarem pedindo ajustes sem sentido nos scripts, venham com a ideia certa na cabeça para que nós possamos fazer o seu script de uma vez só, vai ser bom pra gente e bom pra vocês também.

 

Obrigado pela compreensão.

 

Não adianta eles são surdos cegos ou sei la .

JeanCristianJ
29 de setembro de 2013 às 17:41

boa manoel :D se tem razao u.u

OneshotO
29 de setembro de 2013 às 17:51

One,voce intendeu?o do vod,precisa pedir a task ao NPC,e eu quero que não peça tendeu?

 

Sim e não.

 

Sim, eu entendi o que você quis dizer. O sistema do Vodkart é necessário pedir a task ao NPC, e o que eu fiz é automático.

 

E não, eu não vou fazer o comando !task, você pediu um NPC, eu fiz e ainda te dei o creaturescript de brinde. E se você se sentir contrariado com este post, Manual de Referência de Lua 5.1 é serventia da casa.

 

Um grande abraço e vai pela sombra.

Editado Setembro 29 por Oneshot

raikillesR
29 de setembro de 2013 às 17:54

bom gostaria de pedir um task system só que não tao complicado como o do vodkart,queria um bem simples mesmo...exemplo ,

 

player:hi

player:tasks

npc: escolha umas das seguintes tasks rotworm , cyclopse , dragon , giant spider , dwarf , minotaur , orc

player:rotworm

npc:voce deseja a task de rotworm ? sera necessário matar 100 rotworm's para completa-la

player:yes

 

tivesse um contador,contando a quantidade que ele ta matando , e quando completa-se por exemplo 100 rotworm ele recebe-se a recompensa automaticamente tipo o script de reward por level...

 

seria possível você faze o script ? obrigado

 

obs: gostaria que tipo a task de minotauros por exemplo qualquer tipo de minotauro que eu mata-se contasse por exemplo a task e matar 100 minotauros mais posso mata minotaur guard,minotaur mage,minotaur e minotaur archer, independente do tipo eles contasse igualmente para a task

Editado Setembro 29 por raikilless

bizinhoB
29 de setembro de 2013 às 17:56

Queria um Script ! Você usa certo item em um monstro morto (ou pode ser em vc msm) ai aparece uma criatura diferente (viva)!! por favor me ajude ...

na hora que usar o item some!

2121212
29 de setembro de 2013 às 19:04

Versão: 8.6

Nível: Fácil

Função: Criar uma function para não usar magias se estiver equipado alguma arma na mão: swords, rods, crossbow .. etc. Assim o player receberia uma mensagem informando que ele deve estar com as maõs vazias. Obs: ele pode utilizar shields.

 

No aguardo.

Editado Setembro 29 por 0BoM

LuckOakeL
29 de setembro de 2013 às 19:22

Versão: 8.6

Nível: Fácil

Função: Criar uma function para não usar magias se estiver equipado alguma arma na mão: swords, rods, crossbow .. etc. Assim o player receberia uma mensagem informando que ele deve estar com as maõs vazias. Obs: ele pode utilizar shields.

 

No aguardo.

 

Isso só é possível com modificações nas sources.

luanharmonizeL
29 de setembro de 2013 às 19:50

vc poderia fazer 1 sistema de kages que quando ele mata o kage atual a pessoa passa a ser o kage da quela aldeia e a pessoa que virar kage ganha 1 spell de acordo com a aldeia e os kages ganha 1.3 + exp do que os player normais