<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[SphereCommunity - All Forums]]></title>
		<link>https://forum.spherecommunity.net/</link>
		<description><![CDATA[SphereCommunity - https://forum.spherecommunity.net]]></description>
		<pubDate>Wed, 27 May 2026 05:46:12 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Skull script shop sell, the signature does not buy]]></title>
			<link>https://forum.spherecommunity.net/Thread-Skull-script-shop-sell-the-signature-does-not-buy</link>
			<pubDate>Mon, 04 Aug 2025 13:15:52 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Skull-script-shop-sell-the-signature-does-not-buy</guid>
			<description><![CDATA[Can anyone help me with the Skull shop sell script? (link[/code]<a href="https://forum.spherecommunity.net/sshare/files/809/blizz%20-%20shop%20sell.scp" target="_blank">link</a>) Basically, even after replacing new_buy and new_sell and adding PACKET159=f_packet_0x9f to sphere.ini, when I go to buy something, the list opens, but when I go to sign the purchase, nothing happens and it freezes.<br />
Does anyone know how to fix this?]]></description>
			<content:encoded><![CDATA[Can anyone help me with the Skull shop sell script? (link[/code]<a href="https://forum.spherecommunity.net/sshare/files/809/blizz%20-%20shop%20sell.scp" target="_blank">link</a>) Basically, even after replacing new_buy and new_sell and adding PACKET159=f_packet_0x9f to sphere.ini, when I go to buy something, the list opens, but when I go to sign the purchase, nothing happens and it freezes.<br />
Does anyone know how to fix this?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Moving Blood]]></title>
			<link>https://forum.spherecommunity.net/Thread-Moving-Blood</link>
			<pubDate>Fri, 28 Mar 2025 16:48:29 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Moving-Blood</guid>
			<description><![CDATA[How a create script? After Damage on Zombie he Create Blood on all around? This is:<br />
<br />
ON=@Hit<br />
   DAMAGE<br />
   SRC.NEWITEM i_blood<br />
   DORAND 567 or 8<br />
       MOVE NE<br />
       MOVE SW<br />
       ...<br />
   ENDDO<br />
<br />
Thank you!<br />
<hr />
Thank you! I release this problem:<br />
<br />
[function make_blood]<br />
for 3<br />
serv.newitem { 0122b 1 0122c 1 0122d 1 0122e 1}<br />
new.attr=attr_decay<br />
new.timer=5<br />
new.color=&lt;bloodcolor&gt;<br />
new.p=&lt;p&gt;<br />
dorand 8<br />
new.p=&lt;p&gt;<br />
new.move n<br />
new.move ne<br />
new.move e<br />
new.move se<br />
new.move s<br />
new.move sw<br />
new.move w<br />
new.move nw<br />
enddo<br />
endfor]]></description>
			<content:encoded><![CDATA[How a create script? After Damage on Zombie he Create Blood on all around? This is:<br />
<br />
ON=@Hit<br />
   DAMAGE<br />
   SRC.NEWITEM i_blood<br />
   DORAND 567 or 8<br />
       MOVE NE<br />
       MOVE SW<br />
       ...<br />
   ENDDO<br />
<br />
Thank you!<br />
<hr />
Thank you! I release this problem:<br />
<br />
[function make_blood]<br />
for 3<br />
serv.newitem { 0122b 1 0122c 1 0122d 1 0122e 1}<br />
new.attr=attr_decay<br />
new.timer=5<br />
new.color=&lt;bloodcolor&gt;<br />
new.p=&lt;p&gt;<br />
dorand 8<br />
new.p=&lt;p&gt;<br />
new.move n<br />
new.move ne<br />
new.move e<br />
new.move se<br />
new.move s<br />
new.move sw<br />
new.move w<br />
new.move nw<br />
enddo<br />
endfor]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[LIBMYSQL.DLL]]></title>
			<link>https://forum.spherecommunity.net/Thread-LIBMYSQL-DLL</link>
			<pubDate>Sun, 22 Dec 2024 09:53:37 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-LIBMYSQL-DLL</guid>
			<description><![CDATA[Who have normal file LIBMYSQL.DLL for Sphere 0.56 Beta. Give me please this file. Thank you!]]></description>
			<content:encoded><![CDATA[Who have normal file LIBMYSQL.DLL for Sphere 0.56 Beta. Give me please this file. Thank you!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Question about bonuses]]></title>
			<link>https://forum.spherecommunity.net/Thread-Question-about-bonuses</link>
			<pubDate>Wed, 15 May 2024 16:58:09 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Question-about-bonuses</guid>
			<description><![CDATA[Good afternoon community,<br />
I wanted to inquire about the Sphere Server X modifiers(bonus and/or how interact with differents skills, aspects, etc.), specifically how the default bonuses are calculated on the server using the "SphereCustom -0 option-" combat system, etc. For instance: STR bonus at 0.5%, lumber contributes 20% to weapon x, arms lore, etc.<br />
And the same for crafting.<br />
<br />
I have searched the wiki without success, thanks for the help.<br />
<br />
Regards,<br />
Dae]]></description>
			<content:encoded><![CDATA[Good afternoon community,<br />
I wanted to inquire about the Sphere Server X modifiers(bonus and/or how interact with differents skills, aspects, etc.), specifically how the default bonuses are calculated on the server using the "SphereCustom -0 option-" combat system, etc. For instance: STR bonus at 0.5%, lumber contributes 20% to weapon x, arms lore, etc.<br />
And the same for crafting.<br />
<br />
I have searched the wiki without success, thanks for the help.<br />
<br />
Regards,<br />
Dae]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Noob returning -  spawning a default world?]]></title>
			<link>https://forum.spherecommunity.net/Thread-Noob-returning-spawning-a-default-world</link>
			<pubDate>Mon, 25 Mar 2024 21:36:03 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Noob-returning-spawning-a-default-world</guid>
			<description><![CDATA[I'm looking at trying Sphere again but, it's been years...<br />
<br />
Once you get the server up and running, how do you spawn a vanilla world?]]></description>
			<content:encoded><![CDATA[I'm looking at trying Sphere again but, it's been years...<br />
<br />
Once you get the server up and running, how do you spawn a vanilla world?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Account creation and RESDISP]]></title>
			<link>https://forum.spherecommunity.net/Thread-Account-creation-and-RESDISP</link>
			<pubDate>Wed, 21 Feb 2024 22:57:39 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Account-creation-and-RESDISP</guid>
			<description><![CDATA[Hello everyone! it has been many years!<br />
<br />
I have recently started a new shard, and have run into a weird little thing...<br />
<br />
When and account is created for the first time the RESDISP is automatically set to 1.<br />
After logging out and back in, they are then set to the RESDISP of their current UO version (Normally 9).<br />
<br />
So before they can create an elf or gargoyle character. they have to create a human Mage or warrior, because they apparently don't have the expansion for the rest. they can then log out and back in and create the other classes<br />
<br />
<br />
<br />
I have AUTORESDISP set to 1 in sphere.ini and all expansions activated.<br />
<br />
I have tried many different ways to go about fixing this and well... I'm stuck <img src="images/smilies/tongue.gif" style="vertical-align: middle;" border="0" alt="Tongue" title="Tongue" /><br />
<br />
Any help on this is really appreciated.<br />
<br />
Thank you!]]></description>
			<content:encoded><![CDATA[Hello everyone! it has been many years!<br />
<br />
I have recently started a new shard, and have run into a weird little thing...<br />
<br />
When and account is created for the first time the RESDISP is automatically set to 1.<br />
After logging out and back in, they are then set to the RESDISP of their current UO version (Normally 9).<br />
<br />
So before they can create an elf or gargoyle character. they have to create a human Mage or warrior, because they apparently don't have the expansion for the rest. they can then log out and back in and create the other classes<br />
<br />
<br />
<br />
I have AUTORESDISP set to 1 in sphere.ini and all expansions activated.<br />
<br />
I have tried many different ways to go about fixing this and well... I'm stuck <img src="images/smilies/tongue.gif" style="vertical-align: middle;" border="0" alt="Tongue" title="Tongue" /><br />
<br />
Any help on this is really appreciated.<br />
<br />
Thank you!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sphere Crash]]></title>
			<link>https://forum.spherecommunity.net/Thread-Sphere-Crash</link>
			<pubDate>Tue, 30 Jan 2024 05:18:36 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Sphere-Crash</guid>
			<description><![CDATA[Why when i say vendor Innkeeper 'buy' my sphere crash. When i say vendor 'sell' after i say 'buy' normal work &amp; after normal work i'm dclick to vendor Innkeeper spawn my sphere crash. But if i don't say 'buy' or 'sell' &amp; i'm dclick to spawn Innkeeper normal work. What wrong?<br />
<hr />
My sphere last 56d<br />
<hr />
This is not all time this is random sometime<br />
<hr />
After my sphere write: WARNING:File sphere.pid already exists. Secondary launch or unclean shutdown?]]></description>
			<content:encoded><![CDATA[Why when i say vendor Innkeeper 'buy' my sphere crash. When i say vendor 'sell' after i say 'buy' normal work &amp; after normal work i'm dclick to vendor Innkeeper spawn my sphere crash. But if i don't say 'buy' or 'sell' &amp; i'm dclick to spawn Innkeeper normal work. What wrong?<br />
<hr />
My sphere last 56d<br />
<hr />
This is not all time this is random sometime<br />
<hr />
After my sphere write: WARNING:File sphere.pid already exists. Secondary launch or unclean shutdown?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Spawner bug]]></title>
			<link>https://forum.spherecommunity.net/Thread-Spawner-bug</link>
			<pubDate>Mon, 16 Oct 2023 22:48:21 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Spawner-bug</guid>
			<description><![CDATA[Hi there, <br />
I've found bug with default spawns. If u try manually negate the spawn then some creatures stay in world. Spawner goes again for its amount from 0, so in the end it will spawn more monsters this its amount.<br />
As u can see on the screenshots in attachments I marked spawned creatures in order. After Dclick it let always every second creature alive, but the spawner shows 0 creatures alive.<br />

<div><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=499" target="_blank">56d_test1.jpg</a> (Size: 295.19 KB)</div>

<div><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=500" target="_blank">56d_test2.jpg</a> (Size: 289.41 KB)</div>
<br />
Using sphere 56d nightly and latest scripts.<br />
<br />
Idea to fix?]]></description>
			<content:encoded><![CDATA[Hi there, <br />
I've found bug with default spawns. If u try manually negate the spawn then some creatures stay in world. Spawner goes again for its amount from 0, so in the end it will spawn more monsters this its amount.<br />
As u can see on the screenshots in attachments I marked spawned creatures in order. After Dclick it let always every second creature alive, but the spawner shows 0 creatures alive.<br />

<div><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=499" target="_blank">56d_test1.jpg</a> (Size: 295.19 KB)</div>

<div><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=500" target="_blank">56d_test2.jpg</a> (Size: 289.41 KB)</div>
<br />
Using sphere 56d nightly and latest scripts.<br />
<br />
Idea to fix?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[NPC Caster AI]]></title>
			<link>https://forum.spherecommunity.net/Thread-NPC-Caster-AI</link>
			<pubDate>Tue, 03 Oct 2023 00:30:41 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-NPC-Caster-AI</guid>
			<description><![CDATA[Hi,<br />
<br />
trying to do NPC AI of casters (similar to older spheres) I want to my caster to :<br />
1) always run from his target<br />
2) still casting on close range.<br />
<br />
Case 2 is more urgent for me ... I dont know how to do that the caster can start cast spells even on meele range versus his target. Now if his target come too close, he starts fighting only as meeler. <br />
In best variant should be on close range combined like sometimes hits, sometimes starts to cast.<br />
<br />
In case 1 i´ve find out that i can simulate running through trigger @npcActFollow, but if u have any better ideas, id like to hear them.<br />
<br />
[events e_caster]<br />
on=@NpcActFollow<br />
argn2=3<br />
argn3=1<br />
<br />
<br />
Thanks]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
trying to do NPC AI of casters (similar to older spheres) I want to my caster to :<br />
1) always run from his target<br />
2) still casting on close range.<br />
<br />
Case 2 is more urgent for me ... I dont know how to do that the caster can start cast spells even on meele range versus his target. Now if his target come too close, he starts fighting only as meeler. <br />
In best variant should be on close range combined like sometimes hits, sometimes starts to cast.<br />
<br />
In case 1 i´ve find out that i can simulate running through trigger @npcActFollow, but if u have any better ideas, id like to hear them.<br />
<br />
[events e_caster]<br />
on=@NpcActFollow<br />
argn2=3<br />
argn3=1<br />
<br />
<br />
Thanks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Random Chest and Random Boss]]></title>
			<link>https://forum.spherecommunity.net/Thread-Random-Chest-and-Random-Boss</link>
			<pubDate>Mon, 25 Sep 2023 19:43:33 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Random-Chest-and-Random-Boss</guid>
			<description><![CDATA[I have two question. How can I see which region this script takes the mount to? Also, how can I make a chest or another item appear randomly instead of a random mount like this? Thank you.<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[FUNCTION f_golden_monster]<br />
SERV.NEWNPC c_golden<br />
NEW.MoveToRandomLocation<br />
NEW.TIMERF 86400,REMOVE<br />
<br />
[FUNCTION MoveToRandomLocation]<br />
FOR 1000<br />
&nbsp;&nbsp;ARGS=&lt;R5000&gt;,&lt;R4000&gt;,0,&lt;P.M&gt;<br />
&nbsp;&nbsp;IF (&lt;SERV.MAP(&lt;ARGS&gt;).REGION&gt;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;P=&lt;ARGS&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;IF !(&lt;REGION.FLAGS&gt; &amp; region_flag_ship|region_flag_nobuilding|region_flag_underground|region_flag_safe&#8203;​|region_flag_guarded)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIX&nbsp;&nbsp;&nbsp;&nbsp;// move char to ground Z level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;ENDIF<br />
&nbsp;&nbsp;ENDIF<br />
ENDFOR</code></div></div>
]]></description>
			<content:encoded><![CDATA[I have two question. How can I see which region this script takes the mount to? Also, how can I make a chest or another item appear randomly instead of a random mount like this? Thank you.<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[FUNCTION f_golden_monster]<br />
SERV.NEWNPC c_golden<br />
NEW.MoveToRandomLocation<br />
NEW.TIMERF 86400,REMOVE<br />
<br />
[FUNCTION MoveToRandomLocation]<br />
FOR 1000<br />
&nbsp;&nbsp;ARGS=&lt;R5000&gt;,&lt;R4000&gt;,0,&lt;P.M&gt;<br />
&nbsp;&nbsp;IF (&lt;SERV.MAP(&lt;ARGS&gt;).REGION&gt;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;P=&lt;ARGS&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;IF !(&lt;REGION.FLAGS&gt; &amp; region_flag_ship|region_flag_nobuilding|region_flag_underground|region_flag_safe&#8203;​|region_flag_guarded)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIX&nbsp;&nbsp;&nbsp;&nbsp;// move char to ground Z level<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;ENDIF<br />
&nbsp;&nbsp;ENDIF<br />
ENDFOR</code></div></div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Platemail (t_armor) type armor]]></title>
			<link>https://forum.spherecommunity.net/Thread-Platemail-t-armor-type-armor</link>
			<pubDate>Mon, 25 Sep 2023 18:08:39 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Platemail-t-armor-type-armor</guid>
			<description><![CDATA[How can I prevent the use of magic when wearing Platemail (t_armor) type armor pieces? Can you help me?]]></description>
			<content:encoded><![CDATA[How can I prevent the use of magic when wearing Platemail (t_armor) type armor pieces? Can you help me?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Archery delay after start]]></title>
			<link>https://forum.spherecommunity.net/Thread-Archery-delay-after-start</link>
			<pubDate>Sun, 03 Sep 2023 17:57:55 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Archery-delay-after-start</guid>
			<description><![CDATA[Hi,<br />
<br />
any ideas how to make delay in skill archery after attack started? It has some hardcoded pre-hit which instantly go to @hitTry. Tried timerd, but it works only for other fighting skills.<br />
<br />
on=@attack<br />
tag.firstAttack=1<br />
<br />
on=@skillStart<br />
if (&lt;argn1&gt;==31) //archery<br />
if (&lt;tag.firstAttack&gt;)<br />
timerd=&lt;getswingdelay&gt; // not working<br />
tag.firstattack=""<br />
endif<br />
endif<br />
<br />
on=@hitTry<br />
argn1=&lt;eval 2*&lt;getswingdelay&gt;&gt;<br />
return 0<br />
<br />
Thanks a lot!]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
any ideas how to make delay in skill archery after attack started? It has some hardcoded pre-hit which instantly go to @hitTry. Tried timerd, but it works only for other fighting skills.<br />
<br />
on=@attack<br />
tag.firstAttack=1<br />
<br />
on=@skillStart<br />
if (&lt;argn1&gt;==31) //archery<br />
if (&lt;tag.firstAttack&gt;)<br />
timerd=&lt;getswingdelay&gt; // not working<br />
tag.firstattack=""<br />
endif<br />
endif<br />
<br />
on=@hitTry<br />
argn1=&lt;eval 2*&lt;getswingdelay&gt;&gt;<br />
return 0<br />
<br />
Thanks a lot!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Trigger after @GetHit]]></title>
			<link>https://forum.spherecommunity.net/Thread-Trigger-after-GetHit</link>
			<pubDate>Thu, 10 Aug 2023 18:37:14 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Trigger-after-GetHit</guid>
			<description><![CDATA[Hi,<br />
<br />
is here any default trigger after the victim has received the damage? Or some way how to find ouot it?<br />
 Need some functions which trigger right after getting damage. @GetHit is before receiving the damage.<br />
Thanks a lot.]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
is here any default trigger after the victim has received the damage? Or some way how to find ouot it?<br />
 Need some functions which trigger right after getting damage. @GetHit is before receiving the damage.<br />
Thanks a lot.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[WEREABLE ANIMS]]></title>
			<link>https://forum.spherecommunity.net/Thread-WEREABLE-ANIMS</link>
			<pubDate>Tue, 07 Mar 2023 16:48:19 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-WEREABLE-ANIMS</guid>
			<description><![CDATA[Here I will post some anims. Not best, maybe glitches, most are not tested.<br />
<br />
Ill thx any feedback and will try to fix issues.<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=489" target="_blank">helmetbearmask.rar</a> (Size: 555.61 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=490" target="_blank">Ghostjacket.rar</a> (Size: 736.71 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=492" target="_blank">platemail-bones (1).rar</a> (Size: 743.94 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=491" target="_blank">Masked-chainmail_coif (1).rar</a> (Size: 373.51 KB)</div>
]]></description>
			<content:encoded><![CDATA[Here I will post some anims. Not best, maybe glitches, most are not tested.<br />
<br />
Ill thx any feedback and will try to fix issues.<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=489" target="_blank">helmetbearmask.rar</a> (Size: 555.61 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=490" target="_blank">Ghostjacket.rar</a> (Size: 736.71 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=492" target="_blank">platemail-bones (1).rar</a> (Size: 743.94 KB)</div>
<br />
<br />

<div><img src="images/attachtypes/tar.png" border="0" alt=".rar" />&nbsp;&nbsp;<a href="attachment.php?aid=491" target="_blank">Masked-chainmail_coif (1).rar</a> (Size: 373.51 KB)</div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hello again Ultima Friends]]></title>
			<link>https://forum.spherecommunity.net/Thread-Hello-again-Ultima-Friends</link>
			<pubDate>Wed, 07 Sep 2022 10:06:36 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Hello-again-Ultima-Friends</guid>
			<description><![CDATA[Hello everyone, it's a long time since I don't touch or even more time I don't talk to these forums.<br />
<br />
First things first, I'm a long-time SphereCommunity member, I joined at the end of 2012 (10 years ago), and in those years, I've owned a sphere shard here in Brazil (Dragon Shard) for a few years, I've helped a lot of members here at the forums and also in other communities, like Ultima Online Brazil at Facebook which I'm an administrator.<br />
<br />
Last week a friend asked me to help'em to solve a compatibility issue at an old project of mine called UltimaPHP (<a href="https://github.com/UltimaPHP/UltimaPHP" target="_blank">UltimaPHP</a>), so after years without opening my old good friend client.exe... I decided to get back on it in my free time.<br />
Don't ask me why PHP... I just like it and I wanted to learn about server development/game packet communication.<br />
<br />
So I fixed the issues my friend asked me and many more things I found out (last PR at the repo) but after that, I started to look at old issues I had and I could not solve.<br />
<br />
That's why I'm here. I'm trying to find someone to talk about it at least to try to discover what to do.. so in case you have been playing with the last online server core development, maybe you be able to share this knowledge so we don't lose it!<br />
<br />
<span style="font-weight: bold;">Problem 1 - Socket Encryption</span><br />
I've already started in the past to work on it, but I took a punch on the face after the first connection packet... when I get the client version + client random seed to calculate the crypt hash... the packets start to break.<br />
<br />
The unencrypted client works like a charm, but it would be awesome to have the server work with encryption too.<br />
<br />
I think it's due to some weirdness of PHP "casting", but I may be missing something.<br />
<br />
Do someone knows deeply how it works? or worked on some project that had to do it? like any assistant? any encryption removal tool? this knowledge would be hight appreciated.<br />
<br />
<span style="font-weight: bold;">Problem 2 - Calculating the Z position of objects/mobiles</span><br />
This issue happens when 2 clients connect and walk or I try to send the mobile AI to walk on uneven ground.<br />
<br />
<a href="https://ibb.co/R0hMJWr" target="_blank"><img src="https://i.ibb.co/3Nf8PH6/Captura-de-tela-de-2022-09-07-04-54-08.png" border="0" alt="[Image: Captura-de-tela-de-2022-09-07-04-54-08.png]" /></a><br />
<br />
The char should be at <span style="font-weight: bold;">1351,1461,17</span> (as I can detect client-side using UOAssist/Razor) but when I seek the muls/uop files to get the terrain Z position (as it doesn't' t have static items on it) to sync other clients with the player new position the map file contains <span style="font-weight: bold;">1351,1461,14</span> (Z-3 from the correct position).<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>{<br />
&nbsp;&nbsp;&nbsp;&nbsp;'type': 'land',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'flags': 0,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'unknown': 0,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'texture': 3,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'name': 'grass',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'tile': 3,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'position': {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'x': 1351<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'y': 1461<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'z': 14<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div>
I assume it's due to the uneven ground, but I'm not certain. Did someone know how to calculate this ground distortion?<br />
<br />
Thanks for all these 10 years.]]></description>
			<content:encoded><![CDATA[Hello everyone, it's a long time since I don't touch or even more time I don't talk to these forums.<br />
<br />
First things first, I'm a long-time SphereCommunity member, I joined at the end of 2012 (10 years ago), and in those years, I've owned a sphere shard here in Brazil (Dragon Shard) for a few years, I've helped a lot of members here at the forums and also in other communities, like Ultima Online Brazil at Facebook which I'm an administrator.<br />
<br />
Last week a friend asked me to help'em to solve a compatibility issue at an old project of mine called UltimaPHP (<a href="https://github.com/UltimaPHP/UltimaPHP" target="_blank">UltimaPHP</a>), so after years without opening my old good friend client.exe... I decided to get back on it in my free time.<br />
Don't ask me why PHP... I just like it and I wanted to learn about server development/game packet communication.<br />
<br />
So I fixed the issues my friend asked me and many more things I found out (last PR at the repo) but after that, I started to look at old issues I had and I could not solve.<br />
<br />
That's why I'm here. I'm trying to find someone to talk about it at least to try to discover what to do.. so in case you have been playing with the last online server core development, maybe you be able to share this knowledge so we don't lose it!<br />
<br />
<span style="font-weight: bold;">Problem 1 - Socket Encryption</span><br />
I've already started in the past to work on it, but I took a punch on the face after the first connection packet... when I get the client version + client random seed to calculate the crypt hash... the packets start to break.<br />
<br />
The unencrypted client works like a charm, but it would be awesome to have the server work with encryption too.<br />
<br />
I think it's due to some weirdness of PHP "casting", but I may be missing something.<br />
<br />
Do someone knows deeply how it works? or worked on some project that had to do it? like any assistant? any encryption removal tool? this knowledge would be hight appreciated.<br />
<br />
<span style="font-weight: bold;">Problem 2 - Calculating the Z position of objects/mobiles</span><br />
This issue happens when 2 clients connect and walk or I try to send the mobile AI to walk on uneven ground.<br />
<br />
<a href="https://ibb.co/R0hMJWr" target="_blank"><img src="https://i.ibb.co/3Nf8PH6/Captura-de-tela-de-2022-09-07-04-54-08.png" border="0" alt="[Image: Captura-de-tela-de-2022-09-07-04-54-08.png]" /></a><br />
<br />
The char should be at <span style="font-weight: bold;">1351,1461,17</span> (as I can detect client-side using UOAssist/Razor) but when I seek the muls/uop files to get the terrain Z position (as it doesn't' t have static items on it) to sync other clients with the player new position the map file contains <span style="font-weight: bold;">1351,1461,14</span> (Z-3 from the correct position).<br />
<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>{<br />
&nbsp;&nbsp;&nbsp;&nbsp;'type': 'land',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'flags': 0,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'unknown': 0,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'texture': 3,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'name': 'grass',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'tile': 3,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'position': {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'x': 1351<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'y': 1461<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'z': 14<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</code></div></div>
I assume it's due to the uneven ground, but I'm not certain. Did someone know how to calculate this ground distortion?<br />
<br />
Thanks for all these 10 years.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hit Chance]]></title>
			<link>https://forum.spherecommunity.net/Thread-Hit-Chance</link>
			<pubDate>Sun, 28 Aug 2022 08:27:56 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Hit-Chance</guid>
			<description><![CDATA[// Discord Collection<br />
// Example for sphere.ini custom [CombatHitChanceEra=0]<br />
// // Events related to all players<br />
// // EventsPlayer=<br />
// <br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HitTry<br />
LOCAL.AnimDelay=6          // speed of how early damage happens from swing animation (1=fastest  6=best  10=long anim)<br />
ARGN1=7                        // delay between attacks (1=fastest can cause dbl hits) (7=best)<br />
local.R=&lt;R900&gt;            //  store Random number of 900 in local.R<br />
IF (&lt;ISPLAYER&gt;)         //  <br />
	serv.log (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)  %   // show in console the Rrandom number and the skill amount being used in &lt;&lt;ACTION&gt;&gt;<br />
    IF (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)                  // IF random number is lesser then or equal to the skillbeingused number<br />
      ACTDIFF=1                                             // (1 success) (-1 fail/miss) (1000 skill = 100% chance)<br />
      SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %      //  console show name, skill, skill%<br />
	  ELSE                                              // else if your skill isnt high enough you will have a miss chance<br />
		IF (&lt;EVAL RAND(5)&gt; &gt; 1)       // 1 in 5 chance  //  faster swing maybe need more than 5 // or less than 5	<br />
		SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %%%   &lt;EVAL RAND(2)&gt;   // show in console<br />
		ACTDIFF=-1000       // (1 success) (-1 fail/miss)<br />
    ENDIF<br />
ENDIF<br />
<br />
//or<br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HITTRY<br />
LOCAL.AnimDelay=6  <br />
    actdiff = 1000 //actdiff  above or equal 0always hit<br />
    if ((&lt;argo.isvalid&gt;) &amp;&amp; (&lt;argo.isweapon&gt;))<br />
        local.skill = &lt;&lt;weapon.skill&gt;&gt;<br />
    endif<br />
    if &lt;action&gt; == skill_wrestling<br />
        local.skill = &lt;wrestling&gt;<br />
    endif<br />
        local.x = &lt;R1,&lt;dlocal.skill&gt;&gt;<br />
        if &lt;dlocal.skill&gt; &lt;= &lt;dlocal.x&gt; + 75<br />
            actdiff = -1000 //actdiff &lt; 0 always miss<br />
        endif]]></description>
			<content:encoded><![CDATA[// Discord Collection<br />
// Example for sphere.ini custom [CombatHitChanceEra=0]<br />
// // Events related to all players<br />
// // EventsPlayer=<br />
// <br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HitTry<br />
LOCAL.AnimDelay=6          // speed of how early damage happens from swing animation (1=fastest  6=best  10=long anim)<br />
ARGN1=7                        // delay between attacks (1=fastest can cause dbl hits) (7=best)<br />
local.R=&lt;R900&gt;            //  store Random number of 900 in local.R<br />
IF (&lt;ISPLAYER&gt;)         //  <br />
	serv.log (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)  %   // show in console the Rrandom number and the skill amount being used in &lt;&lt;ACTION&gt;&gt;<br />
    IF (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)                  // IF random number is lesser then or equal to the skillbeingused number<br />
      ACTDIFF=1                                             // (1 success) (-1 fail/miss) (1000 skill = 100% chance)<br />
      SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %      //  console show name, skill, skill%<br />
	  ELSE                                              // else if your skill isnt high enough you will have a miss chance<br />
		IF (&lt;EVAL RAND(5)&gt; &gt; 1)       // 1 in 5 chance  //  faster swing maybe need more than 5 // or less than 5	<br />
		SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %%%   &lt;EVAL RAND(2)&gt;   // show in console<br />
		ACTDIFF=-1000       // (1 success) (-1 fail/miss)<br />
    ENDIF<br />
ENDIF<br />
<br />
//or<br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HITTRY<br />
LOCAL.AnimDelay=6  <br />
    actdiff = 1000 //actdiff  above or equal 0always hit<br />
    if ((&lt;argo.isvalid&gt;) &amp;&amp; (&lt;argo.isweapon&gt;))<br />
        local.skill = &lt;&lt;weapon.skill&gt;&gt;<br />
    endif<br />
    if &lt;action&gt; == skill_wrestling<br />
        local.skill = &lt;wrestling&gt;<br />
    endif<br />
        local.x = &lt;R1,&lt;dlocal.skill&gt;&gt;<br />
        if &lt;dlocal.skill&gt; &lt;= &lt;dlocal.x&gt; + 75<br />
            actdiff = -1000 //actdiff &lt; 0 always miss<br />
        endif]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Regen Rings]]></title>
			<link>https://forum.spherecommunity.net/Thread-Regen-Rings</link>
			<pubDate>Sun, 28 Aug 2022 08:06:38 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Regen-Rings</guid>
			<description><![CDATA[// Discord collection<br />
// EFFECT [type], [item_id], [speed], [loop], [explode], [colour(hue)], [rendermode]<br />
//  (0 3) type (0 Standard flying object, The object will follow its target until it hits, and then explode if that flag is set)<br />
//  (1   Lightning effect , This is the only way to achieve the lightning effect in-game)<br />
//  (2  Ground-based effect , This effect will stay at a particular point on the map until it expires. As a result, it will appear lower than a type 3 effect. This is the only way to get an effect onto an item.<br />
//  (3  Character-based effect , This effect will follow the character as he moves, the way a flamestrike does when the spell is cast. The bottom of the effect is somewhere around the character's knees.)<br />
//********************************************************************************&#8203;******************************<br />
//**Scripted By: Blizzard (<a href="http://www.marchadium.com" target="_blank">http://www.marchadium.com</a>)**//**For Anthony (big_boy_uk89)(bennett_3001@hotmail.com**<br />
//********************************************************************************&#8203;******************************<br />
<br />
[ITEMDEF i_ring_mana_regen]<br />
DEFNAME=i_ring_mana_regen<br />
ID=i_ring_gold<br />
TYPE=t_jewelry<br />
NAME=Mana Regeneration Ring<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=06<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring gives mana.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.MANA&gt; &lt; &lt;TOPOBJ.INT&gt;)<br />
	TOPOBJ.MANA=&lt;TOPOBJ.MANA&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	TOPOBJ.SOUND=0f9<br />
	TOPOBJ.MESSAGE @72 +5 mp<br />
ENDIF<br />
TIMER=3<br />
RETURN 1<br />
<br />
[ITEMDEF i_ring_hits_regen]<br />
DEFNAME=i_ring_hits_regen<br />
ID=i_ring_gold<br />
NAME=Hitpoints Regeneration Ring<br />
TYPE=t_jewelry<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=025<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring heals.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.HITPOINTS&gt; &lt; &lt;TOPOBJ.MAXHITS&gt;)<br />
	TOPOBJ.HITPOINTS=&lt;TOPOBJ.HITPOINTS&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	// TOPOBJ.SOUND=SND_SPELL_HEAL<br />
	TOPOBJ.effect 3,i_fx_sparkle_2,1,11,0,020                                    <br />
    TOPOBJ.MESSAGE @72 +5 hp<br />
ENDIF<br />
TIMER=3                                                                                  <br />
RETURN 1]]></description>
			<content:encoded><![CDATA[// Discord collection<br />
// EFFECT [type], [item_id], [speed], [loop], [explode], [colour(hue)], [rendermode]<br />
//  (0 3) type (0 Standard flying object, The object will follow its target until it hits, and then explode if that flag is set)<br />
//  (1   Lightning effect , This is the only way to achieve the lightning effect in-game)<br />
//  (2  Ground-based effect , This effect will stay at a particular point on the map until it expires. As a result, it will appear lower than a type 3 effect. This is the only way to get an effect onto an item.<br />
//  (3  Character-based effect , This effect will follow the character as he moves, the way a flamestrike does when the spell is cast. The bottom of the effect is somewhere around the character's knees.)<br />
//********************************************************************************&#8203;******************************<br />
//**Scripted By: Blizzard (<a href="http://www.marchadium.com" target="_blank">http://www.marchadium.com</a>)**//**For Anthony (big_boy_uk89)(bennett_3001@hotmail.com**<br />
//********************************************************************************&#8203;******************************<br />
<br />
[ITEMDEF i_ring_mana_regen]<br />
DEFNAME=i_ring_mana_regen<br />
ID=i_ring_gold<br />
TYPE=t_jewelry<br />
NAME=Mana Regeneration Ring<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=06<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring gives mana.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.MANA&gt; &lt; &lt;TOPOBJ.INT&gt;)<br />
	TOPOBJ.MANA=&lt;TOPOBJ.MANA&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	TOPOBJ.SOUND=0f9<br />
	TOPOBJ.MESSAGE @72 +5 mp<br />
ENDIF<br />
TIMER=3<br />
RETURN 1<br />
<br />
[ITEMDEF i_ring_hits_regen]<br />
DEFNAME=i_ring_hits_regen<br />
ID=i_ring_gold<br />
NAME=Hitpoints Regeneration Ring<br />
TYPE=t_jewelry<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=025<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring heals.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.HITPOINTS&gt; &lt; &lt;TOPOBJ.MAXHITS&gt;)<br />
	TOPOBJ.HITPOINTS=&lt;TOPOBJ.HITPOINTS&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	// TOPOBJ.SOUND=SND_SPELL_HEAL<br />
	TOPOBJ.effect 3,i_fx_sparkle_2,1,11,0,020                                    <br />
    TOPOBJ.MESSAGE @72 +5 hp<br />
ENDIF<br />
TIMER=3                                                                                  <br />
RETURN 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SERV.NEWITEM  armor]]></title>
			<link>https://forum.spherecommunity.net/Thread-SERV-NEWITEM-armor</link>
			<pubDate>Sun, 28 Aug 2022 00:10:40 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-SERV-NEWITEM-armor</guid>
			<description><![CDATA[// Gathered from Discord<br />
<br />
[itemdef i_deed_platemailset]<br />
id=i_deed<br />
name=deed for a platemail armor set<br />
type=t_normal<br />
weight=1<br />
<br />
category=111<br />
subsection=dclick deed armor<br />
description=Deed for a Platemail Armor Set<br />
<br />
on=@DClick<br />
serv.newitem i_platemail_chest,,&lt;SRC&gt;  // removes item equipped from slot and equips<br />
NEW.HITS=999           // sets durability hits<br />
NEW.MAXHITS=666   // sets durability maxhits<br />
// NEW.BOUNCE       // uncomment to have the item bounce to inventory instead<br />
// serv.newitem i_platemail_chest   // creates item<br />
// NEW.BOUNCE                           //  bounces to inventory<br />
//serv.newitem i_platemail_helm,,&lt;src&gt;<br />
//serv.newitem i_platemail_gloves,,&lt;src&gt;<br />
//serv.newitem i_platemail_leggings,,&lt;src&gt;<br />
//serv.newitem i_platemail_arms,,&lt;src&gt;<br />
//serv.newitem i_platemail_gorget,,&lt;src&gt;  <br />
remove<br />
Return 1]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
<br />
[itemdef i_deed_platemailset]<br />
id=i_deed<br />
name=deed for a platemail armor set<br />
type=t_normal<br />
weight=1<br />
<br />
category=111<br />
subsection=dclick deed armor<br />
description=Deed for a Platemail Armor Set<br />
<br />
on=@DClick<br />
serv.newitem i_platemail_chest,,&lt;SRC&gt;  // removes item equipped from slot and equips<br />
NEW.HITS=999           // sets durability hits<br />
NEW.MAXHITS=666   // sets durability maxhits<br />
// NEW.BOUNCE       // uncomment to have the item bounce to inventory instead<br />
// serv.newitem i_platemail_chest   // creates item<br />
// NEW.BOUNCE                           //  bounces to inventory<br />
//serv.newitem i_platemail_helm,,&lt;src&gt;<br />
//serv.newitem i_platemail_gloves,,&lt;src&gt;<br />
//serv.newitem i_platemail_leggings,,&lt;src&gt;<br />
//serv.newitem i_platemail_arms,,&lt;src&gt;<br />
//serv.newitem i_platemail_gorget,,&lt;src&gt;  <br />
remove<br />
Return 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SPEEDMODE]]></title>
			<link>https://forum.spherecommunity.net/Thread-SPEEDMODE</link>
			<pubDate>Sat, 27 Aug 2022 23:58:52 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-SPEEDMODE</guid>
			<description><![CDATA[// Gathered from Discord<br />
////////////////////   SPEEDMODE<br />
// For players. Allows setting the speed mode that a client can use (and affects the movement throttle accordingly). There are  4 different speed modes that affect the client:<br />
//  0  - Normal speed.<br />
//  1  - Mount speed on foot, normal speed when mounted.<br />
//  2  - Always walk on foot and when mounted.<br />
//  3+ - Always run on foot, always walk when mounted.<br />
//  <br />
////////////////////////////////////////////////////////////////////////////////<br />
/////////////////////////////////////////////////////////////////////////////////// Human<br />
[FUNCTION hum1]<br />
SRC.body c_man<br />
SRC.obody c_man<br />
// SRC.MODAR=0     // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1<br />
<br />
[FUNCTION hum2]<br />
SRC.body c_woman<br />
SRC.obody c_woman<br />
// SRC.MODAR=0    // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
////////////////////   SPEEDMODE<br />
// For players. Allows setting the speed mode that a client can use (and affects the movement throttle accordingly). There are  4 different speed modes that affect the client:<br />
//  0  - Normal speed.<br />
//  1  - Mount speed on foot, normal speed when mounted.<br />
//  2  - Always walk on foot and when mounted.<br />
//  3+ - Always run on foot, always walk when mounted.<br />
//  <br />
////////////////////////////////////////////////////////////////////////////////<br />
/////////////////////////////////////////////////////////////////////////////////// Human<br />
[FUNCTION hum1]<br />
SRC.body c_man<br />
SRC.obody c_man<br />
// SRC.MODAR=0     // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1<br />
<br />
[FUNCTION hum2]<br />
SRC.body c_woman<br />
SRC.obody c_woman<br />
// SRC.MODAR=0    // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[tag.override.movedelay]]></title>
			<link>https://forum.spherecommunity.net/Thread-tag-override-movedelay</link>
			<pubDate>Sat, 27 Aug 2022 23:54:33 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-tag-override-movedelay</guid>
			<description><![CDATA[// Gathered from Discord<br />
// tag.override.movedelay (1=is too fast) (300=sprint) (1000=slow)<br />
// tag.override.movedelay needs ot be put at the bottom of @CREATE<br />
// PUT in @CREATE of everything you want to move faster than snail.<br />
// if its above other stats in @CREATE it will act weirdly and sometimes turn the CHAR into a gold coin.<br />
<br />
[CHARDEF c_ettinsprint]<br />
ID=c_ettin<br />
NAME=RUNFAST<br />
SOUND=367<br />
ICON=i_pet_ettin<br />
CAN=mt_walk|mt_usehands<br />
<br />
DAM=7,17<br />
ARMOR=38<br />
HEIGHT=32<br />
<br />
CATEGORY=111<br />
SUBSECTION=Giants<br />
DESCRIPTION=Ettin<br />
<br />
ON=@Create<br />
     NPC=brain_monster <br />
     <br />
     FAME=3000<br />
     KARMA=-3000<br />
     <br />
     STR={136, 165}<br />
     DEX={56, 75}<br />
     INT={31, 55}<br />
     MAXHITS={82, 99}<br />
     <br />
     RESPHYSICAL={35, 40}<br />
     RESFIRE={15, 25}<br />
     RESCOLD={40, 50}<br />
     RESPOISON={15, 25}<br />
     RESENERGY={15, 25}<br />
     <br />
     MAGICRESISTANCE={40.1, 55.0}<br />
     TACTICS={50.1, 70.0}<br />
     WRESTLING={50.1, 60.0}<br />
     tag.override.movedelay 300         // always at bottom of @CREATE]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
// tag.override.movedelay (1=is too fast) (300=sprint) (1000=slow)<br />
// tag.override.movedelay needs ot be put at the bottom of @CREATE<br />
// PUT in @CREATE of everything you want to move faster than snail.<br />
// if its above other stats in @CREATE it will act weirdly and sometimes turn the CHAR into a gold coin.<br />
<br />
[CHARDEF c_ettinsprint]<br />
ID=c_ettin<br />
NAME=RUNFAST<br />
SOUND=367<br />
ICON=i_pet_ettin<br />
CAN=mt_walk|mt_usehands<br />
<br />
DAM=7,17<br />
ARMOR=38<br />
HEIGHT=32<br />
<br />
CATEGORY=111<br />
SUBSECTION=Giants<br />
DESCRIPTION=Ettin<br />
<br />
ON=@Create<br />
     NPC=brain_monster <br />
     <br />
     FAME=3000<br />
     KARMA=-3000<br />
     <br />
     STR={136, 165}<br />
     DEX={56, 75}<br />
     INT={31, 55}<br />
     MAXHITS={82, 99}<br />
     <br />
     RESPHYSICAL={35, 40}<br />
     RESFIRE={15, 25}<br />
     RESCOLD={40, 50}<br />
     RESPOISON={15, 25}<br />
     RESENERGY={15, 25}<br />
     <br />
     MAGICRESISTANCE={40.1, 55.0}<br />
     TACTICS={50.1, 70.0}<br />
     WRESTLING={50.1, 60.0}<br />
     tag.override.movedelay 300         // always at bottom of @CREATE]]></content:encoded>
		</item>
	</channel>
</rss>