custom weapon

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
bongobeat
Posts: 1076
Joined: Thu May 16, 2013 5:58 pm
Location: France

Re: custom weapon

Post by bongobeat »

Thank you for the code:

wel i dont know if I m right, but the editor crashes after I m using the weapon.
I'ms sure i have doing something wrong, but what? :lol:
SpoilerShow

Code: Select all

defineObject{
	name = "uranium_gun",
	class = "Item",
	uiName = "Uranium Canon",
	model = "assets/models/items/machine_part/machine_part_south.fbx",
	gfxIndex = 99,
	description = "Unknown weapon. One trigger on one extremity, two pipes on the other",
	attackPower = 100,
	coolDownTime = 0.5,
        attackMethod = "meleeAttack",
--spell = "ugun",
        wandPower = 150,
        charges = 25,
	attackSound = "uraniumgun",
	impactSound = "impact_blade",
        attackMethod = "meleeAttack", 
        attackSwipe = "horizontal",
	weight = 2.0,
	emptyItem = "damaged_uranium_gun",
}
SpoilerShow

Code: Select all

defineObject{
name = "party",
class = "Party",
editorIcon = 32,
onAttack = function(champ, weapon)
if (weapon ~= nil) and (weapon.name == "uranium_gun") then
if party.facing == 0 then
spawn("poison_bolt", party.level, party.x, party.y-1, party.facing)
end
if party.facing == 1 then
spawn("poison_bolt", party.level, party.x+1, party.y, party.facing)
end
if party.facing == 2 then
spawn("poison_bolt", party.level, party.x, party.y+1, party.facing)
end
if party.facing == 3 then
spawn("poison_bolt", party.level, party.x-1, party.y, party.facing)
end
end
end
}
My asset pack: viewtopic.php?f=22&t=9320

Log1 mod : Toorum Manor: viewtopic.php?f=14&t=5505
User avatar
LordGarth
Posts: 500
Joined: Mon Jun 18, 2012 5:07 pm
Location: Colorado USA

Re: custom weapon

Post by LordGarth »

You have two attack methods.

Maybe that is the problem.

If you want it to have charges. Then you can have it spawn a poison spell damage and physical spell damage.

The physical damage will hit all targets.
Define the spell and the object and then put in your wand code the spells name that launches two spells.
Change the sounds and particle effects as you like.

defineSpell{
name = "poison_bolt1",
uiName = "Posion Venom",
runes = "CDG",
skill = "spellcraft",
level = 10,
manaCost = 10,
onCast = function(champ, x, y, direction, skill)
if party.facing == 0 then
spawn("poisonbolt", party.level, party.x, party.y-1, party.facing)
end
if party.facing == 1 then
spawn("poisonbolt", party.level, party.x+1, party.y, party.facing)
end
if party.facing == 2 then
spawn("poisonbolt", party.level, party.x, party.y+1, party.facing)
end
if party.facing == 3 then
spawn("poisonbolt", party.level, party.x-1, party.y, party.facing)
end
if party.facing == 0 then
spawn("physpell", party.level, party.x, party.y-1, party.facing)
end
if party.facing == 1 then
spawn("physpell", party.level, party.x+1, party.y, party.facing)
end
if party.facing == 2 then
spawn("physpell", party.level, party.x, party.y+1, party.facing)
end
if party.facing == 3 then
spawn("physpell", party.level, party.x-1, party.y, party.facing)
end
end
}

defineObject{
name = "physpell",
class = "ProjectileSpell",
uiName = "Physpell",
particleSystem = "lightning_bolt",
hitParticleEffect = "lightning_bolt_hit",
lightColor = vec(0.5, 0.5, 0.5),
lightBrightness = 15,
lightRange = 7,
lightHitBrightness = 40,
lightHitRange = 10,
castShadow = true,
launchSound = "physound",
projectileSound = "physound",
hitSound = "physound",
projectileSpeed = 10,
attackPower = 100,
damageType = "physical",
--cameraShake = true,
tags = { "spell" },

}
Dungeon Master and DOOM will live forever.
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: custom weapon

Post by akroma222 »

Hey there,
Lord Garth, I have been using your set up here for a while now and I run a lot of different weapon/wand/spell effects from it. Works great hey, THANK YOU!
Here is what I do... clone the party but have it call an in dungeon script (so the game doesnt crash when you mis-code something)
SpoilerShow

Code: Select all

cloneObject{
	name = "party",
	baseObject = "party",
	onAttack = function(champion, weapon, skill)
		return attackingWeaponScripts.specialWeaponAttacks(champion, weapon, skill)								
	end
}	
And this script in dungeon....
SpoilerShow

Code: Select all

function specialWeaponAttacks(champion, weapon)
	
	if (weapon ~= nil) and (weapon.name == "monstrance") then
		return attackingWeaponScripts.monstrance(champion, weapon)
	end
	if (weapon ~= nil) and (weapon.name == "annointed_mace") then
		return attackingWeaponScripts.annointedMace(champion, weapon)
	end
	if (weapon ~= nil) and (weapon.name == "angelfire_stave") then
		return attackingWeaponScripts.angelfireStave(champion, weapon)
	end
	if (weapon ~= nil) and (weapon.name == "psionic_blade") then
		return attackingWeaponScripts.psionicBlade(champion, weapon)
	end
	if (weapon ~= nil) and (weapon.name == "reaper_axe_empty") then
		return attackingWeaponScripts.reaperAxe(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "blightning_stave_empty") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "ice_sabre") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "vorpal_blade") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "shock_maul") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "fetid_talons") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "necro_power_glove_empty") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "robindranarth_fist") then
		return attackingWeaponScripts.burstSpellAttacks(champion,weapon)
	end
	if (weapon ~= nil) and (weapon.name == "returning_throwing_axe") then 
		return grims_returning_axe_script.weaponCheck(champion, weapon)
	end
	if (weapon ~= nil) and (weapon.name == "recurring_nightmare") then 
		return grims_returning_axe_script.weaponCheck(champion, weapon)
	end
end

---------------------------------------------------------------------------------
monstersList = {"amber_slime","ancient_horde","ancient_warrior","bone_slime","crab","crowern","cube","dark_elf_temple_skeleton_archer","dark_elf_temple_skeleton_archer_patrol", "exotic_crab_purple",
			"dark_elf_temple_skeleton_warrior","dark_elf_temple_skeleton_patrol","goromorg","green_lizard","green_slime","herder","herder_big",
			"herder_small","herder_swarm","high_elf_temple_skeleton_archer","high_elf_temple_skeleton_archer_patrol","high_elf_temple_skeleton_warrior","high_elf_temple_skeleton_patrol",
			"ice_slime","isgardian","laguardian","liche","maggot_slime","ogre","red_slime","scavenger","scavenger_swarm","shrakk_torr","skeleton_archer","skeleton_archer_patrol","skeleton_patrol",
			"skeleton_warrior","slug","snail","spider","spider_dark_orange","spider_red","stone_slime05","stone_slime06","stone_slime10","stone_slime11","tentacles","trash_slime",
			"uggardian","urgardian","venom_wyvern","warden","warden_exploding","water_slime","wyvern"}
	
vamp_monster = ""
		
undeadMonsters = {"ancient_horde","ancient_warrior","blood_warrior","dark_elf_temple_skeleton_archer","dark_elf_temple_skeleton_archer_patrol",
			"dark_elf_temple_skeleton_warrior","dark_elf_temple_skeleton_patrol","gold_warrior","gold_warrior_red_eye","high_elf_temple_skeleton_archer",
			"high_elf_temple_skeleton_archer_patrol","high_elf_temple_skeleton_warrior","high_elf_temple_skeleton_patrol","liche","mummy_grunt","sin_eater",
			"skeleton_archer","skeleton_archer_patrol","skeleton_archer_shadow","skeleton_dark","skeleton_patrol","skeleton_warrior"}

smite_monster = ""


function isInMonsterTable(table, element)
  for _,value in pairs(table) do
    if value == element then
      return true
    end
  end
  return false
end


function whichMonster(level,eggs,why)
  for i in entitiesAt(level,eggs,why) do
    if isInMonsterTable(monstersList,i.name) then
      return i.id
    end
  end
  return ""
end

function whichUndeadMonster(level,eggs,why)
  for i in entitiesAt(level,eggs,why) do
    if isInMonsterTable(undeadMonsters,i.name) then
      return i.id
    end
  end
  return ""
end

----------------------Vampric weapons------------------------------------------------
function reaperAxe(champion,weapon,skill)
  local dx,dy = getForward(party.facing)
  vamp_champ = champion
  vamp_monster = whichMonster(party.level,party.x+dx,party.y+dy)
  if vamp_monster == "" then
    return true
  end
  local skill = champion:getSkillLevel("axes")
  party:playScreenEffect("damage_screen")
  vamp_champ:modifyStat("health", (skill/3))
  return true
end

--------------------Syphon weapons---------------------------
function psionicBlade(champion,weapon,skill)
  local dx,dy = getForward(party.facing)
  syph_champ = champion
  vamp_monster = whichMonster(party.level,party.x+dx,party.y+dy)
  if vamp_monster == "" then
    return true
  end
  local skill = champion:getSkillLevel("swords")
  party:playScreenEffect("damage_screen_blue")
  syph_champ:modifyStat("energy", (skill/2))
  return true
end

-------------------Spellfire----------------------------------------------

function shieldSpellfire(champion,item)
  	local skill = champion:getSkillLevel("fire_magic")
	local e = champion:getStat("energy")
  
  	for i = 7,8 do
      	local item2 = champion:getItem(i)
      		if item2 and item2.name == "spellfire_stave" then
				local slot = i
				if spellfireCounter1:getValue() < 1 then
					spellfireCounter1:increment()
					hudPrint("The Spellfire Burst resonates with the Stave....")
				else
					spellfireCounter1:reset()
					champion:removeItem(slot)
					setMouseItem(spawn("spellfire_stave_charged"))
					party:playScreenEffect("damage_screen_pink")
					hudPrint("Spellfire Trinity - The Bursts from the Shield have charged the Stave!!")
					return true
				end
			end
		end
	end


----------------------Annointed weapons------------------------------------------------
function annointedMace(champion,weapon,skill)
  local dx,dy = getForward(party.facing)
  smite_champ = champion
  smite_monster = whichUndeadMonster(party.level,party.x+dx,party.y+dy)
  if smite_monster == "" then
    return true
  end
  local skill = champion:getSkillLevel("staves")
  party:playScreenEffect("damage_screen_yellow")
  smiteDamage(champion,weapon,skill)
  return true
end

function monstrance(champion,weapon,skill)
  local dx,dy = getForward(party.facing)
  smite_champ = champion
  smite_monster = whichUndeadMonster(party.level,party.x+dx,party.y+dy)
  if smite_monster == "" then
    return true
  end
  local skill = champion:getSkillLevel("staves")
  party:playScreenEffect("damage_screen_yellow")
  smiteDamage(champion,weapon,skill)
  return true
end

function angelfireStave(champion,weapon,skill)
  local dx,dy = getForward(party.facing)
  smite_champ = champion
  smite_monster = whichUndeadMonster(party.level,party.x+dx,party.y+dy)
  if smite_monster == "" then
    return true
  end
  local skill = champion:getSkillLevel("staves")
  party:playScreenEffect("damage_screen_yellow")
  smiteDamage(champion,weapon,skill)
  return true
end

function smiteDamage(champion,weapon,skill)
  local smite_mon = findEntity(smite_monster)
  if smite_mon ~= "" then
	spawn("lightburst",smite_mon.level, smite_mon.x, smite_mon.y, smite_mon.facing)
	spawn("fx", smite_mon.level, smite_mon.x, smite_mon.y, smite_mon.facing)
      :setLight(2, 1, 1, 100, 3, 5, true)
      :translate(0, 2, 0)
	damageTile(smite_mon.level,smite_mon.x,smite_mon.y,(smite_mon.facing + 2)%4,0, 'physical',skill*7)
  end
end

---------------------------------------------------------------

function burstSpellAttacks(champion, weapon, skill)

	if (weapon ~= nil) and (weapon.name == "ice_sabre") then
		if party.facing == 0 then
			spawn("frostburst", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("frostburst", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("frostburst", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("frostburst", party.level, party.x-1, party.y, party.facing)
		end
	end
		if (weapon ~= nil) and (weapon.name == "vorpal_blade") then
		if party.facing == 0 then
			spawn("poison_cloud", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("poison_cloud", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("poison_cloud", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("poison_cloud", party.level, party.x-1, party.y, party.facing)
		end
	end
		if (weapon ~= nil) and (weapon.name == "shock_maul") then
		if party.facing == 0 then
			spawn("shockburst", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("shockburst", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("shockburst", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("shockburst", party.level, party.x-1, party.y, party.facing)
		end
	end	
		if (weapon ~= nil) and (weapon.name == "fetid_talons") then
		if party.facing == 0 then
			spawn("poison_cloud", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("poison_cloud", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("poison_cloud", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("poison_cloud", party.level, party.x-1, party.y, party.facing)
		end
	end
	if (weapon ~= nil) and (weapon.name == "necro_power_glove_empty") then
		if party.facing == 0 then
			spawn("darkburst", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("darkburst", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("darkburst", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("darkburst", party.level, party.x-1, party.y, party.facing)
		end
	end
	if (weapon ~= nil) and (weapon.name == "robindranarth_fist") then
		if party.facing == 0 then
			spawn("lightburst", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("lightburst", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("lightburst", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("lightburst", party.level, party.x-1, party.y, party.facing)
		end
	end
	if (weapon ~= nil) and (weapon.name == "blightning_stave_empty") then
		if party.facing == 0 then
			spawn("darkburst", party.level, party.x, party.y-1, party.facing)
		end
		if party.facing == 1 then
			spawn("darkburst", party.level, party.x+1, party.y, party.facing)
		end
		if party.facing == 2 then
			spawn("darkburst", party.level, party.x, party.y+1, party.facing)
		end
		if party.facing == 3 then
			spawn("darkburst", party.level, party.x-1, party.y, party.facing)
		end
	end
end	
Basically there is a sorting function, asking what the name is and then that returns other specific functions. There are weapons that spawn burst spells, weapons that leach HP and MP, weapons that deal higher damage to certain monsters (undead for example...) Works great hey :D

And I do the same for spells....
The party clone:
SpoilerShow

Code: Select all

cloneObject{
	name = "party",
	baseObject = "party",
	onCastSpell = function(champion, spell)
		return partySpellScripts.spellEnhancements(champion, spell)								
	end
}	
and then the script in dungeon:
SpoilerShow

Code: Select all

spellCasters = 0  

spellbook = {darkness = 0, enchant_fire_arrow = 0, enchant_frost_arrow = 0, enchant_shock_arrow = 0,
 enchant_poison_arrow = 0, fire_shield = 0, fireball = 0, fireburst = 0, frost_shield = 0, frostbolt = 0,
 ice_shards = 0, invisibility = 0, light = 0, lightning_bolt = 0, poison_bolt = 0, poison_cloud = 0,
 poison_shield = 0, shock = 0, shock_shield = 0}

--I have not added my custom spells here yet...


spellNames = {darkness = "Darkness", enchant_fire_arrow = "Enchant Fire Arrow",
 enchant_frost_arrow = "Enchant Frost Arrow", enchant_shock_arrow = "Enchant Lightning Arrow",
 enchant_poison_arrow = "Enchant Poison Arrow", fire_shield = "Fire Shield", fireball = "Fireball",
 fireburst = "Fireburst", frost_shield = "Frost Shield", frostbolt = "Frostbolt",
 ice_shards = "Ice Shards", invisibility = "Invisibility", light = "Light",
 lightning_bolt = "Lightning Bolt", poison_bolt = "Poison Bolt", poison_cloud = "Poison Cloud",
 poison_shield = "Poison Shield", shock="Shock", shock_shield = "Shock Shield"}


function learnSpell(champ, spell, skill, reqSkill)
  	if champ:getSkillLevel(skill) >= reqSkill then
    	if (spellbook[spell] == 0) then
      		if spellNames[spell] ~= nil then
        		spellbook[spell] = 1
        		playSound("scribe_spell")
        hudPrint(champ:getName() .. " scribes the spell \"" .. spellNames[spell] .. ".\"")
       else
         hudPrint(champ:getName() .. " does not know what the spell " .. spell .. " is.")
       end
    else
      hudPrint(champ:getName() .. " already knows that spell.")
    end
  else
    hudPrint(champ:getName() .. " isn't skilled enough to learn that spell.")
  end
end


function spellEnhancements(champion, spell)
	
	local name = champion:getName()
	
	for i in entitiesAt(party.level,party.x,party.y) do
    	if i.name == "antimagic_zone" then
      		hudPrint(name .. "'s spell fizzles! You are standing on an anti-magic zone!")
      		playSound("spellfizzle1")
			return false
		end
	end
-------------------------------------------------------------------------
	if spellbook[spell] == 0 then
    	hudPrint(champion:getName() .. " must learn that spell before casting it.")
    	playSound("spellfizzle1")
		return false
  	elseif spellbook[spell] == 1 then
    	return true
	end	
	if spell == "invisibility" then
		return buffing_scripts.invisibility(champion, spell)
	end
	if spell == "enchant_fire_arrow" then
		hudPrint(""..name.." enchants the ammunition with poison...")
		playSound("enchant_arrow")
		party:playScreenEffect("damage_screen")
	end
	if spell == "enchant_frost_arrow" then
		hudPrint(""..name.." enchants the ammunition with poison...")
		playSound("enchant_arrow")
		party:playScreenEffect("damage_screen_blue")
	end
	if spell == "enchant_poison_arrow" then
		hudPrint(""..name.." enchants the ammunition with poison...")
		playSound("enchant_arrow")
		party:playScreenEffect("damage_screen_green")
	end
	if spell == "enchant_shock_arrow" then
		hudPrint(""..name.." enchants the ammunition with poison...")
		playSound("enchant_arrow")
		party:playScreenEffect("damage_screen_white")
	end
	if spell == "fire_shield" then
		hudPrint("The party's fire resistance has increased...")
		playSound("enchant_arrow")
		party:playScreenEffect("cold_glow_enchantedblade")
	end
	if spell == "poison_shield" then
		hudPrint("The party's poison resistance has increased...")
		playSound("enchant_arrow")
		party:playScreenEffect("cold_glow_magicshield")
	end
	if spell == "shock_shield" then
		hudPrint("The party's shock resistance has increased...")
		playSound("enchant_arrow")
		party:playScreenEffect("cold_glow_bless")
	end
	if spell == "frost_shield" then
		hudPrint("The party's ice resistance has increased...")
		playSound("enchant_arrow")
		party:playScreenEffect("cold_glow_reflexion")
	end
	if spell == "shock" then
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "spark_staff") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "spark_staff") then
        	return grimwold_AOEspell_script.stormSpell(champion:getOrdinal(),"shock","shockburst","shockburst",100,"") 	
		end
	end
	if spell == "lightning_bolt" then
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "spark_staff") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "spark_staff") then
			local dx,dy = getForward(party.facing)
			spawn("lightning_bolt_greater",party.level,party.x+ dx,party.y+ dy,party.facing)
		end
	end
	if spell == "poison_cloud" then
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "venom_staff") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "venom_staff") then
        	local dx,dy = getForward(party.facing)
			return grimwold_AOEspell_script.stormSpell(champion:getOrdinal(),"poison","poison_cloud","poison_cloud",30,"")	
		end
	end
	if spell == "poison_bolt" then
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "venom_staff") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "venom_staff") then
        	local dx,dy = getForward(party.facing)
			spawn("poison_bolt_greater", party.level, party.x + dx,party.y + dy, party.facing)	
		end
	end
	if spell == "ice_shards" then
		local skill = champion:getSkillLevel("ice_magic")
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "bowl_seven_seasons") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "bowl_seven_seasons") then
			local dx,dy = getForward(party.facing)
			return grimwold_AOEspell_script.stormSpell(champion:getOrdinal(),"cold","iceflame_hit","iceglass_shatter",skill*6,"line") 	
		end
	end
	if spell == "deadly_vapors" then
		local a = champion:getSkillLevel("air_magic")
		if (champion:getItem(7) ~= nil and champion:getItem(7).name == "serpent_staff") or (champion:getItem(8) ~= nil and champion:getItem(8).name == "serpent_staff") then
				return grimwold_AOEspell_script.stormSpell(champion:getOrdinal(),"poison","poison_pocket","poison_bolt_launch",math.random(60,80),"bigsquare")	
		end
	end
	if spell == "spellfire_burst" then
		for i = 7,8 do
      		item = champion:getItem(i)
      		if item and item.name == "shield_spellfire" then
         		return attackingWeaponScripts.shieldSpellfire(champion, item)
      		end
   		end
	end
end
from that script I run the code for forcing players to 'learn' spells from scrolls before they can cast, checks for antimagic zones, upgrades for spells, game effects like intense fire for any spell I want ( if caster has a certain skill or is holding a specific item) etc etc...

Anyways... thought I would share and back you on how effective a method this is for sorting and doing cool things with weapons and spells...

Thanks again
Akroma
User avatar
LordGarth
Posts: 500
Joined: Mon Jun 18, 2012 5:07 pm
Location: Colorado USA

Re: custom weapon

Post by LordGarth »

cool

Looks and sounds great.

LordGarth
Dungeon Master and DOOM will live forever.
bongobeat
Posts: 1076
Joined: Thu May 16, 2013 5:58 pm
Location: France

Re: custom weapon

Post by bongobeat »

Hi all,

thanks for you answer

I got some crashes when using the 2 spells together, but no panic, prefer to not lose much time on so small details. I will definitely use the first weapon definition, which I have add your physpell, looks crazy now, and very... lethal! :D

dont know if it is still a grimrock rpg or if it becomes a doom like game :D

Hey akroma!
did you publish an addon with this?
I have already see that somewhere, but I dont remenber where.
Thanks for your job, maybe I will use your spell definition, the purpose to learn spell before using is nice! it looks like the same concept than in the sunsetgate mod!
Last edited by bongobeat on Thu Jul 25, 2013 4:00 pm, edited 1 time in total.
My asset pack: viewtopic.php?f=22&t=9320

Log1 mod : Toorum Manor: viewtopic.php?f=14&t=5505
User avatar
LordGarth
Posts: 500
Joined: Mon Jun 18, 2012 5:07 pm
Location: Colorado USA

Re: custom weapon

Post by LordGarth »

You can make the spells burst spell so they only do damage right in front of the party instead of it being a launch spell.

LordGarth
Dungeon Master and DOOM will live forever.
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: custom weapon

Post by akroma222 »

Hey Bongobeat,

This is the thread from which I acquired the 'learn before casting' spell script:
viewtopic.php?f=14&t=4629&hilit=+learn+spells

I have only published a half completed version of Labyrinth of Lies (last November/December) - full version will be available in 5 weeks time.

Unfortunately I have not played the Sunset gate mod (any mods for that matter other than a few I tested like The Mines of Malan Vael)
I will be glad once Lab of Lies is done. Its taken so flaming long :(
bongobeat
Posts: 1076
Joined: Thu May 16, 2013 5:58 pm
Location: France

Re: custom weapon

Post by bongobeat »

true!

thanks for the link
same to me, I want to play a lot of other mods, but i did not have much time while doing mine... :roll:
My asset pack: viewtopic.php?f=22&t=9320

Log1 mod : Toorum Manor: viewtopic.php?f=14&t=5505
bongobeat
Posts: 1076
Joined: Thu May 16, 2013 5:58 pm
Location: France

Re: custom weapon

Post by bongobeat »

by the way, it is not in the sunset gate, I saw the spell learning, but in the eye of the dragon! :roll:
apologies!
LordGarth wrote:You can make the spells burst spell so they only do damage right in front of the party instead of it being a launch spell.

LordGarth
well no, I wanted something like a laser gun. But it's ok now.
the one thing who bothers me, is that you didnt have xp when you kill some monsters. :cry:
My asset pack: viewtopic.php?f=22&t=9320

Log1 mod : Toorum Manor: viewtopic.php?f=14&t=5505
Post Reply