New mod: Difficulty for experts players and more

Talk about Severance Blade of Darkness modifications and maps here. No tips or tech support questions please, use the forum above. Note that the game is rated 18 so some content may be unsuitable for younger readers.

Moderators: prospero, Ade

Post Reply
User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

Hello friends, [:)]
I'm advancing little by little in solving the problems and mistakes of the mod, it´s a bit complicated for me to explain them all in detail because I do not speak English properly. (Fortunately exists google´s translator.) [8D]
Sorry, I have not uploaded the mod v1.1 yet because the game crashes frequently, especially when saving or loading the game or when changing maps. [8)]
The version 1.0, that I show in the videos, looks good but it was very simple to my expectations and also had errors when load maps, in multiplayer and in the changes of the maps.

Fortunately I managed to fix bugs of the inventory and add more potions, items, weapons and shields. Although if you have many potions, sometimes the game does not load properly. <font color="yellow">I have also programmed a menu to control the level of difficulty, with three levels: easy, normal and expert. So the novice players may be adapt to the new strategic complexity of the game on Easy difficulty, before trying the real challenge on Expert difficulty.</font id="yellow"> With so many changes that I made, I considered calling the mod version 1.2. [:)]

<font color="white"><b>Well, the are some things that I have left to fix are, for now:</b>

<b>1 -</b> I think I fixed the multiplayer mode, you can play with improved statistics and weapons, and use attack combinations and use a bow and arrows. [:D]
But I have not yet been able to test with another player online, sure the game gets slower... [xx(]

<b>2 -</b> Another thing are the animations of attacks and speed factors. I have corrected all the animations of the new combos of the Amazon and the Barbarian, and the game save and load correctly whit them, almost always. But the animations of the dwarf and the knight become slow.
I modified the file <font color="green"><b>Lib/AnmFact.py</b></font id="green">, also the files <font color="green"><b>Scripts/Combos/DwfCombos.py</b></font id="green">, <font color="green"><b>KgtCombos.py</b></font id="green">, and all the foes, but there is something else that changes the values of <font color="orange"><b>AnmFactor</b></font id="orange"> and puts them by default. This also happens when you save or load the game.
I've been looking animations that have the same name but with different speed factors, assigned to different characters. I have corrected those mistakes that I have seen so far, but I may miss something.
If I put a <font color="yellow"><b>Import </b>AnmFact</font id="yellow"> in the <b><font color="green">DefFuncs.py</font id="green"></b> of the all Maps, the game crashes while loading the map.

<b>An example:</b>
We have this speed factor in this animation, that is the original value: <font color="orange">Bladex.SetAnimationFactor("Dwf_g_01",4)</font id="orange">
I change this: <font color="orange"><b>("Dwf_g_01",6)</b></font id="orange"> But, then when you load or save the game the value returns to be 4.
Anyone knows how to make that the values of <font color="green"><b>Lib/AnmFact.py</b></font id="green"> to remain at 6 and do not return to be 4?
Maybe by putting <font color="orange">Bladex.SetAnimationFactor("Dwf_g_01",6)</font id="orange"> in the <b><font color="green">DefFuncs.py</font id="green"></b> of the all Maps?[?]

<b>3 -</b> I want to assign the ring of fire attack of the Great_Demon to an animation, as if it was the halfmoontrail. For example, when the hero makes the animation <font color="orange"><b>"Bar_g_magic"</b></font id="orange">, throws the halfmoontrail. I want that the hero throw a ring of light, when he does the animation <font color="orange"><b>"Bar_g_magic"</b></font id="orange">.
I'm studying at the codes of Prospero, SirRandom or Mingyue about that, but until now I have not got results, don´t work. [B)]

<b>4 -</b> The combat with twin weapons, I've left that as impossible because i can not edit <font color="red"><b>GetActiveWeapon()</b></font id="red">. [V]

</font id="white">Please, can someone help me a little? Many thanks. [:)]

User avatar
mingyue1371
Dragon
Posts: 206
Joined: Fri Aug 05, 2011 4:46 pm
Location: China
Contact:

Post by mingyue1371 »

Hi MBK,long time no see![:D]
Glad to see you had a new progress in you experts Mod.
I thought I had some advice for you.
About the animation,I had tried to modify the original value: Bladex.SetAnimationFactor("Dwf_g_01",<font color="red">3.5</font id="red">) to <font color="red">("Dwf_g_01",6) </font id="red"> ,Then I loaded the game ,saving and reloading ,the value <font color="brown">6</font id="brown"> did not change and the speed became very fast,As I had seen the origin Anmfact about Dwf,there was some unused clause:

Code: Select all

#
#Dwarf Set
#
def AnmFactDwarf():
#	Bladex.SetAnimationFactor("Dwf_g_01",4)
#	Bladex.SetAnimationFactor("Dwf_g_02",4)
.....

Did you notice the # before the clause?
If you change in that place ,everything will not be changed in the game.Or you may miss other things.

In the game the ring of fire attack of the Great_Demon belonged to the animation "<b><font color="green">Gdm_g_magic</font id="green"></b>",you can see the relative code in Enemytype.py in scripts.

Code: Select all


	########################################################################
	#____ MAGIC ATTACK FUNCS _______________________________________________
	########################################################################
	def MagicAttackStart (self, EntityName, EventName):
		me= Bladex.GetEntity(EntityName)
		print "MagicAttackStart "
		# enable damage
		
		# turn off claw damage with a scheduled func after concentration is complete
		MagicStopPos= 0.509
		anm_duration= Bladex.GetAnimationDuration<b><font color="green">("Gdm_g_magic")	</font id="green"></b>	
		DeathTime= Bladex.GetTime()+max((MagicStopPos-me.AnmPos)*anm_duration, 0.0)
		period=0.001
		
		x,y,z= me.GraspPos("1H_L")
		lball=Bladex.CreateEntity(self.Name+"_Fire","Entity Particle System D1",x,y,z)
		lball.ParticleType="Flame"
		lball.PPS=256
		lball.YGravity=-300.0
		lball.Friction=0.04
		lball.RandomVelocity=-30.0 		
		lball.DeathTime= DeathTime
		lball.Time2Live=20
		me.LinkToNode(lball, me.GetNodeIndex("L_Hand"))
		self.lballname= lball.Name		
		self.CreateTestParticle(lball.Name, DeathTime, period)
		
		x,y,z= me.GraspPos("1H_R")
		rball=Bladex.CreateEntity(self.Name+"_Fire","Entity Particle System D1",x,y,z)
		rball.ParticleType="Flame"
		rball.PPS=256
		rball.YGravity=-300.0
		rball.Friction=0.04
		rball.RandomVelocity=-30.0
		rball.DeathTime= DeathTime
		rball.Time2Live=20
		me.LinkToNode(rball, me.GetNodeIndex("R_Forearm"))
		self.rballname= rball.Name		
		self.CreateTestParticle(rball.Name, DeathTime, period)
		
	def MagicAttackLink (self, EntityName, EventName):
		<b><font color="teal"># Create a ring of fire radiating from the floor below the demon</font id="teal"></b>
		me= Bladex.GetEntity(EntityName)
		
		# Turn off the flame around the hands
		lball= Bladex.GetEntity(self.lballname)
		if lball: lball.DeathTime= Bladex.GetTime()
		rball= Bladex.GetEntity(self.rballname)
		if rball: rball.DeathTime= Bladex.GetTime()
		
		# Create the firering
		obj=Bladex.CreateEntity(EntityName+"_Disk", "FireRing", 0,0,0)
		obj.Alpha=1.0
		obj.SelfIlum=1.0
		obj.RasterMode="AdditiveAlpha"
		obj.RasterMode="Read"
		obj.Solid= 0

		# Set position & orientation
		me.LinkAnchors("FireRing",obj,"FireRing")
		me.Unlink(obj)
		self.RingName= obj.Name

		TurnOffAfter= 0.4
		AuxFuncs.FadeAndScale(obj.Name, obj.Position, 1.0, 0.0, 0.0, 1.0, 8.0, 0.0, TurnOffAfter, 1, 0)
		Bladex.AddScheduledFunc(Bladex.GetTime()+TurnOffAfter,self.EndOfRingAttack,(EntityName, EventName),"EndOfRingAttack")

		"""
		# Create flame particle system, for collision detection
		period=0.001
		nparticles=10
		effect=Bladex.CreateEntity(obj.Name+"_Fire","Entity Particle System Dobj", 0, 0, 0)
		effect.ObjectName=obj.Name
		effect.ParticleType="LargeFlame"
		effect.YGravity=-12000.0
		effect.Friction=0.1
		#effect.PPS=512
		effect.PPS=32 # not using the visual effect really, real PPS is nparticles/period (10,000)
		effect.RandomVelocity=50.0
		effect.Velocity=0.0, -2000.0, 0.0
		self.RingPSName= effect.Name
		for i in range(nparticles):
			self.CreateTestParticle(effect.Name, Bladex.GetTime()+TurnOffAfter, period)
		"""		
				
	
	def EndOfRingAttack (self, EntityName, EventName):
		obj= Bladex.GetEntity(self.RingName)
		if obj:
			me= Bladex.GetEntity(EntityName)
			if me:
				enemy= Bladex.GetEntity(me.GetEnemyName())
				if enemy and enemy.Life>0:
					distSQ= me.SQDistance2(enemy)
					#if distSQ<64000000.0:
					if distSQ<49000000.0:
						# inflict damage
						xhit_point, yhit_point, zhit_point= enemy.Position
						enemy.DamageFunc(enemy.Name, EntityName, self.RingName, "Fire", 1, -1, xhit_point, yhit_point, zhit_point, 0)
						# Override hurt anim
						if enemy.Life>0:
							Damage.DropInvalidObjectsOnImpact (enemy.Name)
							enemy.Wuea=Reference.WUEA_ENDED
							enemy.InterruptCombat()
							if enemy.InCombat: enemy.LaunchAnmType("hurt_f_big")
							else: enemy.LaunchAnmType("hurt_f_big")
			# destroy ring
			obj.SubscribeToList("Pin")
		
So I thought you can transplant this magic attack to another animation.

About two-hand weapon attack,check this link:
http://www.arokhslair.net/forum/topic.a ... hichpage=5
Maybe uncle Prospero and SR can give you more help .

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

Oh, thankyou very much Mingyue! Hello again! [:D]
I found this code of SirRandom:

<font color="white">

Code: Select all

<font color="yellow"><b>def </font id="yellow"><font color="green">Start_Weapons</font id="green"></b>(EntityName, Event):
	pers=Bladex.GetEntity(EntityName)
	weapon=pers.InvRight
	weapon1=Bladex.GetEntity(weapon)
	weapon1.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
	weapon1.MessageEvent(Reference.MESSAGE_START_TRAIL,0,0)
	weapon=pers.InvLeft
	weapon2=Bladex.GetEntity(weapon)
	weapon2.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
	weapon2.MessageEvent(Reference.MESSAGE_START_TRAIL,0,0)
</font id="white">

I tried something similar, but my code had an unknown error and the game crash. I hope it works the adaptation of this code to the mod. [:)]
if it worked, would have to correct the inventory, until I got that left hand weapons are stored as shields, but with its own statistics, as weapons. [8D] What I had achieved so far was that by taking a 1h weapon from the floor and have free left hand, put the 1h weapon in his left hand. Is an easy way to save coding, with a conditionals in <font color="yellow"><b>Lib/Actions.py</b></font id="yellow">.

I will continue looking <font color="yellow"><b>Anmfact </b></font id="yellow">,<font color="yellow"><b>Basic_Funcs</b></font id="yellow"> and more, and testing the things you told me. [:)]
Thank you and I will comment my progress. [;)]

User avatar
mingyue1371
Dragon
Posts: 206
Joined: Fri Aug 05, 2011 4:46 pm
Location: China
Contact:

Post by mingyue1371 »

Hi MBK[:)]£¬About the two-hands weapon you can refer to Pro's MOD Drawf WarsII or DalsRevengeII,there were two-hands NPC in the mod £¬so you can study about the code.

In this process, there would be lots of work to do in anm_def,combos,anmset,and so on.So the console was necessary for the error message.In the console window you could trace the reason that cause the game crash.[:)]

I had successfully put Dalguark's magic code from Enemytype.py to Basic_Funcs to enable Knight or DWF to launch magic combos.Which was simple to do it ,but to transplant Dark Load's magic ablity was hard and I had not succeeded.

I had seen your post about how to made char larger like weapon,Pro had said it cannot be achived just with python code.Instead,you should enlarge the model in 3Dmax.

Harrison had decrypting all the BOD-files of Chars and Objects to .max files which you can download in this page:
http://www.arokhslair.net/forum/topic.a ... hichpage=1

Wish you succeed as early as possible![:p]

Sir Random
Dragon
Posts: 737
Joined: Thu Nov 15, 2001 12:58 am
Location: Ireland
Contact:

Post by Sir Random »

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by MBK_MBK</i>

Oh, thankyou very much Mingyue! Hello again! [:D]
I found this code of SirRandom:

<font color="white">

Code: Select all

<font color="yellow"><b>def </font id="yellow"><font color="green">Start_Weapons</font id="green"></b>(EntityName, Event):
	pers=Bladex.GetEntity(EntityName)
	weapon=pers.InvRight
	weapon1=Bladex.GetEntity(weapon)
	weapon1.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
	weapon1.MessageEvent(Reference.MESSAGE_START_TRAIL,0,0)
	weapon=pers.InvLeft
	weapon2=Bladex.GetEntity(weapon)
	weapon2.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
	weapon2.MessageEvent(Reference.MESSAGE_START_TRAIL,0,0)
</font id="white">

I tried something similar, but my code had an unknown error and the game crash. I hope it works the adaptation of this code to the mod. [:)]
if it worked, would have to correct the inventory, until I got that left hand weapons are stored as shields, but with its own statistics, as weapons. [8D] What I had achieved so far was that by taking a 1h weapon from the floor and have free left hand, put the 1h weapon in his left hand. Is an easy way to save coding, with a conditionals in <font color="yellow"><b>Lib/Actions.py</b></font id="yellow">.

I will continue looking <font color="yellow"><b>Anmfact </b></font id="yellow">,<font color="yellow"><b>Basic_Funcs</b></font id="yellow"> and more, and testing the things you told me. [:)]
Thank you and I will comment my progress. [;)]
<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
You need to create a sword as a shield:
DefaultObjectData['Orksword']=[OBJ_SHIELD, 30, 5000, GolpeMetalLigero, 180.0*DEG2RADS, 2000, 750, 15]

Then it will be equipped in the player's left hand and cycled with shields.

To make it work as a weapon, add my function above as an AnmEventFunc (you must also add a 'Stop_Weapons' func) and then you must add calls to 'Start_Weapons' and 'Stop_Weapons' as 'AddAnmEvent's in every two-handed attack animation.

If a two-handed attack is attempted without the left-hand weapon being equipped then my code will cause an error, so you need some code to detect when the left-hand sword is selected, and only enable the two-handed attacks when this is true.

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

<font color="white">
Hello friends! [:D]
Thanks Sir Random, finally I got that work double weapons! [8D] It Works well, but sometimes fails the animations of response to hits, and the character gets slow. So I leave it off for now.

Mingyue, I'm still studying the things you told me, for now it works well, thanks! [:D]
<hr noshade size="1">
Here I show you some videos with examples of the things I'm getting:</font id="white">

Example of damage messages: http://youtu.be/6ILDIiwW19Q
Example of stunned enemies: http://youtu.be/prtEC5g-Fd4
Example of extras menu, expert difficulty: http://youtu.be/qoGjUk9aAt8
Example of selecting hero: http://youtu.be/VrJvQ-G3YM0

<font color="white"> So far I've managed to correct almost all errors fatter. I only have to fix combos knight and dwarf, and correct some things from maps, to terminate this version of the mod. </font id="white"> [:D][:p] Already remains for me less, See you soon! [;)]

User avatar
mingyue1371
Dragon
Posts: 206
Joined: Fri Aug 05, 2011 4:46 pm
Location: China
Contact:

Post by mingyue1371 »

Wow,Excellent work,MBK![:D]

The new texture seems very cool![^]

By the way,which program do you use to made the texture look more three-dimensional besides .mmp Explorer?

Are you deal with photoshop or other simply way?

Image

<font color="beige">I had lots of bmp files and I will add them to my map but do not know how to deal with it.
Also, I would like to help to improve the other Mods' texture to make them looks better.</font id="beige">

Btw2,Are you considering adding new enemies in the game ?

Such as <font color="green">Ninja Knights,fire-bolting Orcs or other magical enemies</font id="green">?

That would be exciting for the experts's Mod!

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

Hello Mingyue, and thanks! [:)]

Yes, I use photoshop to modify the textures. With underexpose and overexpose tools. I modify the layer mode to Color overexpose. And then a correction filter for the saturation, brightness and contrast.
The texture you show is made by Cuthberth, I think he also uses photoshop and his changes in the textures are better than mine. [^]
I use them because they are very cool. I just add some shadows and lights at the original textures, so that there is an effect of depth. [:D]

It´s easy to do, but it should be time and patience. [:)]
To change the textures, with <font color="green"><b>.mmp format</b></font id="green">, first I use the <font color="beige"><b>mmpconverter</b></font id="beige"> of Amlach, to unzip them to <font color="green"><b>.bmp</b></font id="green"> files. I edit them whit photoshop, then I compress them again to the <font color="green"><b>.mmp</b></font id="green"> format. Finally, reload the map and look the changes.
<hr noshade size="1"> <font color="white">
About the new characters: I would love to know how to do this! [8D][:p]
Add new characters, enemies and heroes, like ninjas and wizards. But for now, that is far from my modest knowledge and possibilities. [8)]
What more would it cost me is to create new animations in 3DMAX for new characters. In fact, I would love to replicate all the animations of attacks the knight and the dwarf, to be used also with the left hand; because I've finally managed to double weapons work. Now I'm editing the inventory functions for the bow and arrows, and for the weapons in the left hand. What I mean is that if you hit with your right hand, then repeat a similar movement with the left. For example the combo with the Elf sword, giving three strokes with the right. I want it also, whith the left hand.[:)]
<font color="yellow"><b>So I encourage everyone who can to duplicate and modify the animations of the dwarf and the knight, for the hero and the foes can to use both hands at once with a weapon in each, and then everyone will can add them to a mod. [:D]
Courage and thank you very much! [8D][:p]</b></font id="yellow">
</font id="white">

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

<font color="white">
Hello again! [:)]

Here I show 3 more videos an example:

<font color="orange"><b>Example of damage with the left weapon: The enemy is poisoned by the left hand weapon. </b></font id="orange">
http://www.youtube.com/watch?v=LqfzHThtQBg

<font color="orange"><b>Example of damage with the left weapon: vampiric sword in his right hand, and electric mace in left hand. </b></font id="orange">
http://www.youtube.com/watch?v=0oD9EFrm ... e=youtu.be


<font color="orange"><b>Example of fast shot with the bow: You can aim at enemies while shooting faster. </b></font id="orange">
http://www.youtube.com/watch?v=mnAGJiiBQnc

<hr noshade size="1">
Well friends.
This is the code I'm using to be able to use double weapons. It´s very simple, compared to the instructions of Prospero or SirRandom.
What I am interested is that this code really works in the original game, and allows all one-handed weapon can be used with the left, without changing their libs, or their statistics in Reference.py.

I just modified conditionals in the file <font color="green"><b>.../Lib/Actions.py</b></font id="green">.

Code: Select all

<font face="Arial">
<b><font color="limegreen">#############################################################################
## MBEASTKING. file: .../Lib/Actions.py
#
# MODIFICACIONES PARA QUE GOLPEEN LAS ARMAS DE UNA MANO, CUANDO SE EQUIPEN EN LA MANO IZQ.
# CHANGES FOR: THE ONE 1H WEAPONS HITS, WHEN THEY ARE EQUIPPED IN THE LEFT HAND.
#</font id="limegreen"></b>
<font color="yellow"><b>def </font id="yellow"> <font color="orange">Start_Weapon</font id="orange"></b> (EntityName,EventName):
	me = Bladex.GetEntity(EntityName)
	<font color="yellow"><b>if </b></font id="yellow">me:
		inv= me.GetInventory()
		<font color="yellow"><b>if </b></font id="yellow">inv:
			weapon_name= inv.GetActiveWeapon()
			<font color="yellow"><b>if </b></font id="yellow">weapon_name:
				weapon= Bladex.GetEntity(weapon_name)
				<font color="yellow"><b>if </b></font id="yellow">weapon:
					weapon.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
	<font color="limegreen">#if Reference.GiveObjectFlag(me.InvRight)==Reference.OBJ_WEAPON:<b><font color="red"># THIS DON´T WORKS WELL, BECAUSE THE CHARACTER CAN NOT HIT UNARMED.</font id="red"></b>
	#	weapon1=Bladex.GetEntity(me.InvRight)#
	#	weapon1.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)#</font id="limegreen">
	<b><font color="yellow">if </font id="yellow"></b>Reference.GiveObjectFlag(me.InvLeft)==Reference.OBJ_WEAPON:
		weapon2=Bladex.GetEntity(me.InvLeft)
		weapon2.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
<font color="limegreen"><b>#</b></font id="limegreen">
<font color="yellow"><b>def </font id="yellow"><font color="orange">Stop_Weapon</b> </font id="orange">(EntityName,EventName):
	me = Bladex.GetEntity(EntityName)
	<font color="yellow"><b>if </b></font id="yellow">me:
		inv= me.GetInventory()
		<font color="yellow"><b>if </b></font id="yellow">inv:
			weapon_name= inv.GetActiveWeapon()
			<font color="yellow"><b>if </b></font id="yellow">weapon_name:
				weapon= Bladex.GetEntity(weapon_name)
				<font color="yellow"><b>if </b></font id="yellow">weapon:
					weapon.MessageEvent(Reference.MESSAGE_STOP_WEAPON,0,0)
	<font color="limegreen">#if Reference.GiveObjectFlag(me.InvRight)==Reference.OBJ_WEAPON:#
	#	weapon1=Bladex.GetEntity(me.InvRight)#
	#	weapon1.MessageEvent(Reference.MESSAGE_STOP_WEAPON,0,0)#</font id="limegreen">
	<font color="yellow"><b>if </b></font id="yellow">Reference.GiveObjectFlag(me.InvLeft)==Reference.OBJ_WEAPON:
		weapon2=Bladex.GetEntity(me.InvLeft)
		weapon2.MessageEvent(Reference.MESSAGE_STOP_WEAPON,0,0)
<font color="limegreen"><b>#
#############################################

# -------------------------------------------------------------------------------------------------------------

#############################################
#
## MBEASTKING.
# CHANGES FOR: WHEN THE HERO GETS A 1H WEAPON FROM THE FLOOR, THE 1H WEAPON PASS TO LEFT HAND, IF THE LEFT HAND IS FREE.
#
#</b></font id="limegreen">
<font color="yellow"><b>def </font id="yellow"><font color="orange">TakeObject2Left</font id="orange"></b>(EntityName):
	me = Bladex.GetEntity(EntityName)
	<font color="yellow"><b>if </b></font id="yellow">me.Data and not (me.Data.pickup_entity==me.InvRight):
		<font color="limegreen">#print "    ERROR INVENT!!!!"
		#print "    pickup_entity is " + me.Data.pickup_entity</font id="limegreen">
		<font color="yellow"><b>if </b></font id="yellow">me.InvRight:
			<font color="limegreen">#print "    Right was" + me.InvRight</font id="limegreen">
			<font color="yellow"><b>return </b></font id="yellow">FALSE
	<font color="yellow"><b>if </b></font id="yellow">me.Data and me.Data.pickup_entity:
		<font color="yellow"><b>if </b></font id="yellow">not me.InvLeft:
			object_flag= Reference.GiveObjectFlag(me.Data.pickup_entity)
			<font color="yellow"><b>if </b></font id="yellow">object_flag==Reference.OBJ_SHIELD:
				<font color="limegreen"><b>## <font color="red">MBEASTKING. Removed so that the shields are equipped, when you have spears or broadswords.</font id="red">
				#if TwoHandedWeaponOnBack(EntityName):
				#	return FALSE#</b></font id="limegreen">
				<font color="yellow"><b>if </b></font id="yellow">not me.InvLeftBack <font color="yellow"><b>or not</b></font id="yellow"> me.InvLeft:<font color="limegreen"><b>#</b></font id="limegreen">
					<font color="yellow"><b>return </b></font id="yellow">TRUE<font color="limegreen"><b>#</b></font id="limegreen">
			<font color="limegreen"><b>### MBEASTKING. <font color="red">IF THE LEFT HAND IS FREE, THE 1H WEAPON PASS TO LEFT HAND.</font id="red"></b></font id="limegreen">
			<font color="yellow"><b>if </b></font id="yellow">object_flag==Reference.OBJ_WEAPON:<font color="limegreen"><b>#</b></font id="limegreen">
				<font color="yellow"><b>if </b></font id="yellow">TwoHandedWeaponOnBack(EntityName):<font color="limegreen"><b>#</b></font id="limegreen">
					<font color="yellow"><b>return </b></font id="yellow">FALSE<font color="limegreen"><b>#</b></font id="limegreen">
				<font color="yellow"><b>if </b></font id="yellow">not me.InvLeftBack <font color="yellow"><b>or not</b></font id="yellow"> me.InvLeft:<font color="limegreen"><b>#</b></font id="limegreen">
					<font color="yellow"><b>return </b></font id="yellow">TRUE<font color="limegreen"><b>#</b></font id="limegreen">
			<font color="yellow"><b>if </b></font id="yellow">object_flag==Reference.OBJ_BOW:
				<font color="limegreen"><b># MBEASTKING. <font color="red">Bow requires both hands free, to be equipped directly.</font id="red"></b></font id="limegreen">
				<font color="yellow"><b>if not</b></font id="yellow"> me.InvLeftBack <font color="yellow"><b>and not</b></font id="yellow"> me.InvRightBack:<font color="limegreen"><b>#</b></font id="limegreen">
					<font color="yellow"><b>return </b></font id="yellow">TRUE<font color="limegreen"><b>#</b></font id="limegreen">
	<font color="yellow"><b>return </b></font id="yellow">FALSE

<font color="limegreen"><b>#############################################</b></font id="limegreen"></font id="Arial">
This is the code I used in the file .../Lib/Actions.py. [:)]

I am now modifying conditionals in the file <font color="green"><b>.../Lib/ScorerActions.py</b></font id="green"> to correct errors in the inventory, for the double weapons.

<font color="orange">To finish correcting the functioning of the bow and arrow, I want to achieve that you can choose an enemy while shooting with the bow. Then, the hero looks directly at the foe which is in front, and is easier to aim. I want to do that only the Amazon and the Knight shoot quickly, while the dwarf and barbarian have to aim manually. Or if you think best, that depending on the bow you have equipped, this allows manually aim or shoot quickly. [:)][8D]
</font id="orange">

What do you think guys? [?] when I get something that works, with the file ScorerActions.py, I will comment it. Thank you very much![:D]

</font id="white">

User avatar
mingyue1371
Dragon
Posts: 206
Joined: Fri Aug 05, 2011 4:46 pm
Location: China
Contact:

Post by mingyue1371 »

Great work MBK !!![:D]
The left-hand weapon was cool,if with some trail will be better.
Uncle Propero had said that the bow's code was in blade.exe and was encode by C++,Maybe it was hard to improve it .
The texture you made was very cool,too!!! Keep up the excellent work![8D]
Pro has made some tut about how to creat new characters,but I thought the simpliest way was change the existing enemies ,you can change the skin of enemies to made some evil heros ,and define there combat with gladiator's action.Still you can make friends with Orcs by Ally mod's file.Check this link:
http://www.arokhslair.net/forum/topic.a ... hichpage=3

I had transplant some magic ablity from Vamp, Chaos Knight and Darkload to Orcs, it was easy to do .Just modify Enemytypes,combos and so on,Also you can give the magical attack to any badguys. That would be tricky that an Orc suddenly appeared in your back like Vampire.[:D]Check this link to d/l.Hope to be a hint for you.(Although it was not perfect enough. )

http://www.fileden.com/files/2012/1/12/ ... agicOrc.7z

I thought that would funny to import to the game.[:D]

Greetings and see you soon my friend ![:)][:D][8D]

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

<font color="white">
Oh my God, many thanks Mingyue![:D][;)]
Wow, [:0] I will study carefully the files...[:p] as I'm reading it seems easier than I thought... when I get understand how it works, of course. [:D] Thank you very much, Prospero, for your tutorial.
If this works, in version 1.3, I will add magic attacks to the stronger enemies: Chaos_Knight, Minotaur, Golems, Dark_Ork, Gold_ork, Vampires...[8D] The Great_Demon and the Lord of Chaos already have new magic attacks![:p]

<hr noshade size="1">
About the trails:
Between the things I've done that can equip shields with spears and broadswords, one of them was to modify <b><font color="orange">W2hToLeftHandler </font id="orange"></b>and <b><font color="orange">W2hToRightHandler</font id="orange"></b>. But this in conflicts with the trails.

This is the code, with the only change I made, that conflicts with the trails:

Code: Select all

<font face="Arial"><font color="limegreen"><b>#############################################################
#</b></font id="limegreen">
<font color="yellow"><b>def </font id="yellow"><font color="orange">W2hToLeftHandler</font id="orange"></b>(EntityName, EventName):
	me= Bladex.GetEntity(EntityName)
	ObjectName=me.InvRight
	<font color="yellow"><b>if </b></font id="yellow">ObjectName=="None" or not ObjectName:
		<font color="yellow"><b>print </b></font id="yellow">"W2hToLeftHandle-> Event in a unexpected situation!!! Entity " + EntityName + " in animation " +me.AnimName
		<font color="yellow"><b>return</b></font id="yellow">
	inv=me.GetInventory()
	<font color="limegreen"><b>#inv.LinkRightHand("None")# MBEASTKING. </font id="limegreen"><font color="red">Deleted to prevent that the shield is removed, when using two hand weapons.</font id="red"></b>
	object=Bladex.GetEntity(ObjectName)
	node= me.GetNodeIndex("L_Hand")
	me.LinkToNode(object,node)
	me.Data.TmpW2h=ObjectName
<font color="limegreen"><b>#</b></font id="limegreen">
<b><font color="yellow">def </font id="yellow"><font color="orange">W2hToRightHandler</font id="orange"></b>(EntityName, EventName):
	me= Bladex.GetEntity(EntityName)
	<font color="yellow"><b>if not</b></font id="yellow">("TmpW2h" in dir(me.Data)):
		me.Data.TmpW2h=""
		<font color="yellow"><b>return</b></font id="yellow">
	<font color="yellow"><b>if </b></font id="yellow">me.Data.TmpW2h == None:
		<font color="yellow"><b>return</b></font id="yellow">
	<font color="yellow"><b>if </b></font id="yellow">me.Data.TmpW2h=="":
		<font color="yellow"><b>return</b></font id="yellow">
	inv=me.GetInventory()
	object=Bladex.GetEntity(me.Data.TmpW2h)
	me.Unlink(object)
	<font color="limegreen"><b>#inv.LinkRightHand("None")# MBEASTKING. </font id="limegreen"><font color="red">Deleted to prevent that the shield is removed, when using two hand weapons.</font id="red"></b>
	inv.LinkRightHand(me.Data.TmpW2h)
	me.Data.TmpW2h=""
<font color="limegreen"><b>#############################################################</b></font id="limegreen"></font id="Arial">
Simply with doing this, the trails do not follow the marked route correctly. [B)] Anyway, the game goes faster without trails. [^]
It does not matter me the trails. It´s just only a visual effect, and this subtracts speed to the game. So I have disabled it.[:)]

Thanks again for your great help Mingyue, greetings and see you soon my friend! [;)][8D]

</font id="white">

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »


The Pilgrim
Hatchling
Posts: 3
Joined: Sat Mar 10, 2012 4:26 pm
Location: Spain

Post by The Pilgrim »

¡Genial un trabajo espectacular! Estoy deseando poder jugar tu mod. ¿Crees que sería factible desarrollar un mmorpg gratuito de este juegazo?

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

<font color="white">¡Saludos Pilgrim! [:)]
Qué alegría poder hablar en mi idioma natal con alguien que me entienda... jajaja ¡Muchas gracias amigo! [;)]
¡Yo también estoy deseando poder terminar el mod de una vez, y que quede todo perfecto! [:D]

Sobre un modo mmorpg en línea... comparto tu ilusión, sería genial.[^] [:p]
Cuando termine mi mod y la gente lo pruebe, además de verificar posibles errores de programación, quisiera hacer realidad un modo cooperativo en línea para la historia del juego. ¡En el mod dificultad experto hay enemigos de sobra para varios héroes a la vez! [8D] Para ello voy a necesitar mucha ayuda, pues mis conocimientos de Phyton y de C++ aún no dan para tanto... [8)]

Precisamente se ha hablado en el foro sobre algo parecido, un modo online diferente al "Death-Match"; pero es difícil de desarrollar.
Según he leído, se hacen multitud de operaciones matemáticas durante el juego. La velocidad y la transferencia de datos entre el servidor y los clientes puede ralentizarse mucho, eso sería un problema para la fluidez del juego mientras se está en línea, y los clientes no podrían jugar bien.
El planteamiento sería diferente si se usara un motor distinto, como el de Doom3. Hay un post sobre ello y puedes comprobar cómo va avanzando el proyecto poco a poco pero sin pausa. [:)]

Existen excelentes mods, por ejemplo los de Prospero, que añaden multitud de cosas alucinantes: "Fugitive 1", "Fugitive 2","Fugitive 3". "Moria". "Gladiator". "Dal´s revenge". "Wizard domain". Y más...

Te recomiendo que preguntes a los moderadores del foro, seguramente te podrán informar mucho mejor que yo. [?] [^]

¡Hasta pronto! [:)]</font id="white">
<hr noshade size="1">
<font color="limegreen">(I translate it for that everyone understands. Well, you know, using the Google translator. )</font id="limegreen">

Greetings Pilgrim! [:)]
What a joy to speak my native language with someone who understands me... Hahaha, Thank you very much, friend! [;)]
I am also looking forward to finishing the mod, and that remaining all perfect! [:D]

About a mmorpg online mode... I share your hope, would be great. [^][:p]
When I finish my mod and people will test, addition to verifying programming mistakes, I would like to realize a cooperative mode online for the game's history. In the mod Expert difficulty there are a good quantity of enemies for several heroes at once! [8D] To do this I will need much help, because my knowledge of Python and C + + still are not enough to much ... [8)]

Indeed there has been talk in the forum about something similar, an online mode other than "Death-Match"; but it is difficult to develop.
As I read, it made many mathematical operations during the game. The speed and data transfer between server and clients can slow down a lot, that would be a problem for the flow of the game while you are online, and clients could not play well.
The approach would be different if you used a different engine, such as Doom3. There is a post about it and you can see how the project is progressing slowly but surely. [:)]

There are excellent mods, for example those of Prospero, adding many amazing things: "Fugitive 1", "Fugitive 2","Fugitive 3". "Moria". "Gladiator". "Dal´s revenge". "Wizard domain". And more...

I recommend you ask to the moderators of the forum, surely they can inform you much better than me. [?] [^]

See you soon! [:)]

User avatar
MBK_MBK
Dragon
Posts: 413
Joined: Sun Jun 19, 2011 9:06 am
Location: Spain
Contact:

Post by MBK_MBK »

<font color="white">
<font color="limegreen">I put this post here, just in case...</font id="limegreen"> [^]

I have already changed all the textures of all the original maps! [:p][8D]
I hope you like it, friends. Of course, these modifications, I will include them in the mod "expert difficulty and much more". [8D]
If you find an error or a file is missing, please let me know and I will correct it. [:)]

Use this link:
http://www.4shared.com/rar/9bdAougW/MBK ... -2012.html

Greetings!</font id="white">

Post Reply