Ir para conteúdo

Exemplificando Customização Ataque Básico


Skulls

Posts Recomendados

Bom dia galera, tudo bem?

Decidi fazer uma talkaction para ilustrar o sistema que criei de customização de ataque básico: Personalizando Ataques Básicos

Óbviamente, ela não é a melhor forma de usar o sistema (afinal assim o player poderia definir qualquer range / tipo de combate/ efeito que ele quiser), mas serve para ilustrar como o sistema funciona.

Sem mais delongas, vá em talkactions.xml e cole a tag abaixo:

<talkaction words="/cbh" separator=" " script="changeBasicHit.lua" />

Em talkactions/scripts crie um arquivo chamado changeBasicHit.lua e cole o script abaixo nele:

local combats = {	["physical"] = COMBAT_PHYSICALDAMAGE,	["energy"] = COMBAT_ENERGYDAMAGE,	["earth"] = COMBAT_EARTHDAMAGE,	["fire"] = COMBAT_FIREDAMAGE,	["undefined"] = COMBAT_UNDEFINEDDAMAGE,	["life_drain"] = COMBAT_LIFEDRAIN,	["mana_drain"] = COMBAT_MANADRAIN,	["healing"] = COMBAT_HEALING,	["drown"] = COMBAT_DROWNDAMAGE,	["ice"] = COMBAT_ICEDAMAGE,	["holy"] = COMBAT_HOLYDAMAGE,	["death"] = COMBAT_DEATHDAMAGE}local distanceEffects = {	["spear"] = CONST_ANI_SPEAR,	["bolt"] = CONST_ANI_BOLT,	["arrow"] = CONST_ANI_ARROW,	["fire"] = CONST_ANI_FIRE,	["energy"] = CONST_ANI_ENERGY,	["poison_arrow"] = CONST_ANI_POISONARROW,	["burst_arrow"] = CONST_ANI_BURSTARROW,	["throwing_star"] = CONST_ANI_THROWINGSTAR,	["throwing_knife"] = CONST_ANI_THROWINGKNIFE,	["smallstone"] = CONST_ANI_SMALLSTONE,	["death"] = CONST_ANI_DEATH,	["large_rock"] = CONST_ANI_LARGEROCK,	["snowball"] = CONST_ANI_SNOWBALL,	["power_bolt"] = CONST_ANI_POWERBOLT,	["poison"] = CONST_ANI_POISON,	["infernal_bolt"] = CONST_ANI_INFERNALBOLT,	["hunting_spear"] = CONST_ANI_HUNTINGSPEAR,	["enchanted_spear"] = CONST_ANI_ENCHANTEDSPEAR,	["red_star"] = CONST_ANI_REDSTAR,	["green_star"] = CONST_ANI_GREENSTAR,	["royal_spear"] = CONST_ANI_ROYALSPEAR,	["sniper_arrow"] = CONST_ANI_SNIPERARROW,	["onyx_arrow"] = CONST_ANI_ONYXARROW,	["piercing_bolt"] = CONST_ANI_PIERCINGBOLT,	["sword"] = CONST_ANI_WHIRLWINDSWORD,	["axe"] = CONST_ANI_WHIRLWINDAXE,	["club"] = CONST_ANI_WHIRLWINDCLUB,	["ethereal_spear"] = CONST_ANI_ETHEREALSPEAR,	["ice"] = CONST_ANI_ICE,	["earth"] = CONST_ANI_EARTH,	["holy"] = CONST_ANI_HOLY,	["sudden_death"] = CONST_ANI_SUDDENDEATH,	["flash_arrow"] = CONST_ANI_FLASHARROW,	["flamming_arrow"] = CONST_ANI_FLAMMINGARROW,	["shiver_arrow"] = CONST_ANI_SHIVERARROW,	["energy_ball"] = CONST_ANI_ENERGYBALL,	["small_ice"] = CONST_ANI_SMALLICE,	["small_holy"] = CONST_ANI_SMALLHOLY,	["small_earth"] = CONST_ANI_SMALLEARTH,	["earth_arrow"] = CONST_ANI_EARTHARROW,	["explosion"] = CONST_ANI_EXPLOSION,	["cake"] = CONST_ANI_CAKE,	["tarsal_arrow"] = CONST_ANI_TARSALARROW,	["vortex_bolt"] = CONST_ANI_VORTEXBOLT,	["prismatic_bolt"] = CONST_ANI_PRISMATICBOLT,	["crystalline_arrow"] = CONST_ANI_CRYSTALLINEARROW,	["drill_bolt"] = CONST_ANI_DRILLBOLT,	["envenomed_arrow"] = CONST_ANI_ENVENOMEDARROW,	["physical"] = CONST_ANI_GLOOTHSPEAR,	["simple_arrow"] = CONST_ANI_SIMPLEARROW,}function onSay(player, words, param)	local config = string.split(param, " ")	if #config ~= 3 then		doPlayerSendCancel(player, "Invalid params number. You must specify three params: range combat type effect!")		doSendMagicEffect(getCreaturePosition(player), CONST_ME_POFF)		return false	end	if not tonumber(config[1]) then		doPlayerSendCancel(player, "Pay attention: 1. Params order is: range combat effect. 2. Range must be a number.")		doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_BLUE)		return false	end	player:setFistConditions(config[1], combats[config[2]] or COMBAT_PHYSICALDAMAGE, distanceEffects[config[3]] or config[1] == 1 and CONST_ANI_NONE or CONST_ANI_SNOWBALL)	doSendMagicEffect(getCreaturePosition(player), CONST_ME_MAGIC_BLUE)end

Imagem:


giphy.gif



Enfim, espero que gostem.

Abraços,

Editado por Skulls
Link para o comentário
Compartilhar em outros sites

Excelente script @@Skulls

É muito bom ver você se empenhando nessa área, da pra fazer coisas incríveis.

Obrigado Daniel! Achei mt útil fazer algo do tipo no meu contexto, uma vez que vou ressuscitar o fist fight como a base do dano básico do player.

 

Sim, as vezes eu mesmo me surpreendo com as possibilidades.

 

Grande abraço.

Link para o comentário
Compartilhar em outros sites

Muito bom, eu gostei haha! rep+.

# Pelo menos alguem ainda se interessa em ajudar a comunidade, coisa rara de hoje em dia..

Hahaha muito obrigado!

Pois é, na medida do possível eu tento.

Uma pena a sessão de cpp estar morta :/

 

Abraços!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...