Postado Maio 8, 2015 10 anos EDITADO E ARRUMADO Olá pessoal! Em meu server quero um lança-granadas estilo Resident Evil 5, que o lançador dispara diferentes munições e cada uma tem um efeito, que vai desde a de ácido, fogo, explosão, até raios e etc. Funcionará assim: o item 2447 precisa estar equipado no slot de arma(SLOT_LEFT) if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true a munição(ID de 11395 até 11400) precisa estar no slot de munição(SLOT_AMMO) if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid ~= item.itemid then doPlayerSendCancel(cid, "A munição deve estar equipado no slot da arma.") return true O lançador será usado como arma(Use With no alvo) e só funcionará se tiver alguma das munições equipadas, e cada munição terá um effect, dist effect e damage diferentes(preciso mesmo é do script, pq configurar eu posso fazer). Esperando ajuda, e a quem ajudar.. grato desde já! Editado Maio 9, 2015 10 anos por biel.stocco (veja o histórico de edições)
Postado Maio 9, 2015 10 anos E como saberia qual munição o jogador quer utilizar? não respondo pms solicitando suporte em programação/scripting
Postado Maio 9, 2015 10 anos Autor Então, estava pensando aqui sobre isso e pelo jeito terá de ser um sistema diferente, irei até abrir um na seção de pedidos.. Funcionará assim: o item 2447 precisa estar equipado no slot de arma(SLOT_LEFT) if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true a munição(ID de 11395 até 11400) precisa estar no slot de munição(SLOT_AMMO) if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid ~= item.itemid then doPlayerSendCancel(cid, "A munição deve estar equipado no slot da arma.") return true O lançador será usado como arma(Use With no alvo) e só funcionará se tiver alguma das munições equipadas, e cada munição terá um effect, dist effect e damage diferentes
Postado Maio 9, 2015 10 anos Solução local ar1 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } local ar2 = createCombatArea{ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0} } local ar3 = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 3, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0} } function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds) if rounds == nil then rounds = 1 end exhaustion.set(cid, 57193, exhaust) doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect) doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect) if rounds == times then return true end addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1) end function onUse(cid, item, fromPosition, itemEx, toPosition) local weapons = { -- [ID da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion}, [2449] = { shots = 1, shots_delay = 50, area = ar1, exha = 5, ammo = { --Configure aqui as munições da arma. [11399] = {min = 25600, max = 35720, effect = 23, dist_effect = 35}, [itemid] = {min = minDamage, max = maxDamage, effect = effect, dist_effect = distanceEffect}, [itemid] = {min = minDamage, max = maxDamage, effect = effect, dist_effect = distanceEffect}, [itemid] = {min = minDamage, max = maxDamage, effect = effect, dist_effect = distanceEffect}, }, }, } local gun = weapons[item.itemid] if gun then if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true elseif getPlayerStorageValue(cid, 18391) == 1 then doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true elseif getPlayerStorageValue(cid, 18393) == 1 then doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true elseif exhaustion.check(cid, 57193) then doPlayerSendCancel(cid, "Você está exausto.") return true elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.") elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then return doPlayerSendCancel(cid, "Wrong ammo for this gun.") elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then doPlayerSendCancel(cid, "Você não possui munição.") return true end local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots) doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha) end return true end Editado Maio 9, 2015 10 anos por zipter98 (veja o histórico de edições) não respondo pms solicitando suporte em programação/scripting
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.