Delay problem

Here you can post threads requesting help on the official POL Ultima Online Emulator Core 095. Note: Core 095 is no longer officially supported.

Moderator: POL Developer

Post Reply
User avatar
ELSoft
Journeyman Poster
Posts: 61
Joined: Sun Jun 18, 2006 7:45 pm

Delay problem

Post by ELSoft »

I try to make a delay when a pj tries to equip an armor (like a Chainmail or a Platemail) but there is a problem because when i put a delay in the equip script ... the delay does not work!!.

I am modifying the equip.src and the equip.inc.

Someone has some suggestion ??

Code: Select all

var armorDelay:={
           //  {ObjetcType,Delay}
	{ 0x140c , 1000 },      //Bascinet
	{ 0x140d , 1000 },      //Bascinet2
	{ 0x144e , 1000 },      //Bonearms 
	{ 0x1450 , 1000 },      //Bonegloves
	{ 0x1451 , 1000 },      //Bonehelm 
	{ 0x1452 , 1000 },      //Bonelegs 
	{ 0x144f , 1000 },      //Bonetunic 
	{ 0x1b72 , 1000 },      //BronzeShield
 	{ 0x1b73 , 1000 },      //Buckler
  	{ 0x13bb , 1000 },      //ChainmailCoif
 	{ 0x13c0 , 1000 },      //ChainmailCoif2
 	{ 0x13be , 1000 },      //ChainmailLeggings
 	{ 0x13c3 , 1000 },      //ChainmailLeggings2
 	{ 0x13bf , 1000 },      //ChainmailTunic
	{ 0x13c4 , 1000 },      //ChainmailTunic2
 	{ 0x1bc3 , 1000 },      //Chaosshield
 	{ 0x1408 , 1000 },      //CloseHelm
 	{ 0x1409 , 1000 },      //CloseHelm2
 	{ 0x1c06 , 1000 },      //FemaleLeather
 	{ 0x1c04 , 1000 },      //FemalePlate
	{ 0x1c02 , 1000 },      //FemaleStudded
 	{ 0x1b76 , 1000 },      //HeaterShield
	{ 0x1b77 , 1000 },      //HeaterShield2
 	{ 0x140a , 1000 },      //Helmet
 	{ 0x140b , 1000 },      //Helmet2
 	{ 0x1b74 , 1000 },      //KiteShield
 	{ 0x1b75 , 1000 },      //KiteShield2
	{ 0x1b78 , 1000 },      //KiteShieldB1
 	{ 0x1b79 , 1000 },      //KiteShieldB2
 	{ 0x170b , 1000 },      //LeatherBoots
 	{ 0x1c0a , 1000 },      //LeatherBustier
 	{ 0x1db9 , 1000 },      //LeatherCap
 	{ 0x13c6 , 1000 },      //LeatherGloves
 	{ 0x13c7 , 1000 },      //LeatherGorget
 	{ 0x13cb , 1000 },      //LeatherLeggings
 	{ 0x1c00 , 1000 },      //LeatherShorts
	{ 0x1c08 , 1000 },      //LeatherSkirt
 	{ 0x13cd , 1000 },      //LeatherSleeves
 	{ 0x13cc , 1000 },      //LeatherTunic
 	{ 0x13d3 , 1000 },      //LeatherTunic2
 	{ 0x1b7b , 1000 },      //MetalShield
 	{ 0x140e , 1000 },      //NoseHelm
 	{ 0x140f , 1000 },      //NoseHelm2
 	{ 0x1f0b , 1000 },      //Orchelm
 	{ 0x1bc4 , 1000 },      //Ordershield
	{ 0x1412 , 5000 },      //PlateHelm
 	{ 0x1419 , 5000 },      //PlateHelm2
 	{ 0x1410 , 1000 },      //PlatemailArms
 	{ 0x1417 , 1000 },      //PlatemailArms2
 	{ 0x1415 , 20000 },      //PlatemailBreastplate
 	{ 0x1416 , 20000 },      //PlatemailBreastplate2
	{ 0x1414 , 1000 },      //PlatemailGloves
 	{ 0x1418 , 1000 },      //PlatemailGloves2
 	{ 0x1413 , 1000 },      //PlatemailGorget
 	{ 0x1411 , 1000 },      //PlatemailLegs
 	{ 0x141a , 1000 },      //PlatemailLegs2
 	{ 0x988d , 1000 },      //practiceshield
	{ 0x8101 , 1000 },      //RangerGloves
 	{ 0x8100 , 1000 },      //RangerGorget
 	{ 0x8103 , 1000 },      //RangerLeggings
 	{ 0x8102 , 1000 },      //RangerSleeves
 	{ 0x8104 , 1000},      //RangerTunic
 	{ 0x13f2 , 1000 },      //RingmailGloves
 	{ 0x13f0 , 1000 },      //RingmailLeggings
 	{ 0x13f1 , 1000 },      //RingmailLeggings2
	{ 0x13ee , 1000 },      //RingmailSleeves
 	{ 0x13ef , 1000 },      //RingmailSleeves2
 	{ 0x13ec , 1000 },      //RingmailTunic
 	{ 0x13ed , 1000 },      //RingmailTunic2
	{ 0x1c0c , 1000 },      //StuddedBustier
 	{ 0x13d5 , 1000 },      //StuddedGloves
 	{ 0x13d6 , 1000 },      //StuddedGorget
 	{ 0x13da , 1000 },      //StuddedLeggings
 	{ 0x13d4 , 1000 },      //StuddedSleeves
 	{ 0x13db , 1000 },      //StuddedTunic
 	{ 0x1b7a , 1000 }      //WoodenShield
} ;

function RunDelay(who,item)
var cont;
	if  (IsOnline(who)=="True")
		for(cont:=1;cont<=76;cont:=cont+1)
			if (armorDelay[cont][1] == item.objtype) 
				who.paralyzed:=1;
                 Sleepms(armorDelay[cont][2]);
				who.paralyzed:=0;
				break;
			endif
		endfor
	endif
endfunction

function IsOnline(who)
var onlinechr;
	foreach onlinechr in EnumerateOnlineCharacters()
        		if (onlinechr.name == who.name)
			return "True";
       		endif
    	endforeach
	return "False";
endfunction 
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

As the documentation notes for the equip scripts, they run critical which means sleep statements are ignored.

http://poldoc.fem.tu-ilmenau.de/pol095/scripttypes.php
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

There is a workaround that you can try. Create a use script for the armour so that when you double click it it will delay for the desired length then equip the item.
User avatar
ELSoft
Journeyman Poster
Posts: 61
Joined: Sun Jun 18, 2006 7:45 pm

Post by ELSoft »

the equip scripts, they run critical which means sleep statements are ignored
I was imagining that is the motive for that was not working....
Create a use script for the armour so that when you double click it it will delay for the desired length then equip the item.
I supposed it .... but I must stop using the equip.src ... which I do not want

But if there is no alternative....

Some another idea????????
Post Reply