<?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[Wake of Gods Forum | Форум Во Имя Богов - Скрипты]]></title>
		<link>http://wforum.heroes35.net/</link>
		<description><![CDATA[Wake of Gods Forum | Форум Во Имя Богов - http://wforum.heroes35.net]]></description>
		<pubDate>Sun, 26 Jul 2026 01:08:11 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Apollo Neuro Coupon Code [APOLLOZEN&#93; $99 Off USA &#x26; Canada Verified Deal]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=7688</link>
			<pubDate>Wed, 22 Jul 2026 10:32:01 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=7688</guid>
			<description><![CDATA[You can redeem the exclusive code APOLLOZEN to unlock an instant &#36;99 discount across the USA, Canada, Germany, Europe, and Brazil. This promotion is fully active for online shopping enthusiasts worldwide.<br />
<br />
Biohackers and wellness enthusiasts can easily apply this Apollo Neuro promo code &#36;99 discount during checkout. Grab your fitness band today using the trusted Apollo Neuro &#36;99 off coupon code.<br />
<br />
What Is The Latest Apollo Neuro &#36;99 Off Coupon Code?<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to get an instant &#36;99 discount on the fitness band and fitness tracking app available for both new and existing users in July 2026.<br />
<br />
This tested promotion is designed to support both new and existing customers seeking consumer discounts on wearable tech. You can easily apply the Apollo Neuro coupon &#36;99 off to reduce your upfront hardware costs. Claim your &#36;99 off Apollo Neuro coupon today for reliable health tracking.<br />
<br />
APOLLOZEN: flat &#36;99 discount<br />
<br />
APOLLOZEN: &#36;99 discount on the fitness band<br />
<br />
APOLLOZEN: &#36;99 off for first-time buyers<br />
<br />
APOLLOZEN: an extra &#36;99 for the fitness tracking app subscription<br />
<br />
APOLLOZEN: &#36;99 discount coupon for USA/Canada/Germany/Europe/Brazil<br />
<br />
Apollo Neuro Coupon Code &#36;99 Off For New &amp; Existing Customers In 2026<br />
Use the Apollo Neuro promo code “APOLLOZEN” to claim an instant &#36;99 discount for new and existing users on wellness bands and apps across global regions.<br />
<br />
This promotion ensures that shoppers looking for an Apollo Neuro coupon &#36;99 off for new customers enjoy immediate savings. Returning buyers can also benefit from the Apollo Neuro coupon code &#36;99 discount for existing users during online shopping.<br />
<br />
APOLLOZEN: flat &#36;99 for new customers<br />
<br />
APOLLOZEN: &#36;99 additional discount for Apollo Neuro subscribers<br />
<br />
APOLLOZEN: &#36;99 discount for the fitness band/wellness band<br />
<br />
APOLLOZEN: an additional &#36;99 discount on the fitness tracking app<br />
<br />
APOLLOZEN: an extra &#36;99 off for all Apollo Neuro customers<br />
<br />
How To Redeem The Apollo Neuro Coupon &#36;99 Off For New &amp; Existing Users?<br />
Follow these simple steps to redeem your Apollo Neuro &#36;99 coupon for 2026 and secure the Apollo Neuro &#36;99 discount code for new customers.<br />
<br />
Visit the official Apollo Neuro online store using your web browser.<br />
<br />
Select your desired fitness band or health tracker and add it to your cart.<br />
<br />
Proceed to the checkout page where payment details are requested.<br />
<br />
Locate the promotional code input box on the screen.<br />
<br />
Enter the code APOLLOZEN exactly as shown to activate the savings.<br />
<br />
Verify that the price drops by the expected amount before completing your purchase.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Healthcare Providers<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to secure an exclusive &#36;99 price reduction for healthcare professionals shopping for wearable tech.<br />
<br />
Medical workers can now access verified Apollo Neuro &#36;99 coupon codes for healthcare providers to enhance patient care and personal wellness. This special offer serves as a trusted Apollo Neuro promo &#36;99 off for healthcare professionals seeking stress relief tools.<br />
<br />
APOLLOZEN: &#36;99 extra discount for healthcare providers<br />
<br />
APOLLOZEN: flat &#36;99 discount on the wellness band<br />
<br />
APOLLOZEN: &#36;99 off on the fitness app subscription<br />
<br />
APOLLOZEN: an extra &#36;99 off for healthcare professionals worldwide<br />
<br />
APOLLOZEN: free shipping + fitness app subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Healthcare Professionals?<br />
Healthcare professionals can effortlessly apply the Apollo Neuro coupon code &#36;99 off alongside the Apollo Neuro coupon &#36;99 promo code during checkout.<br />
<br />
Navigate to the official checkout portal on the verified wellness brand platform.<br />
<br />
Choose your preferred wearable sleep tracker and health tracking app bundle.<br />
<br />
Log into your verified professional account if prompted for verification.<br />
<br />
Input the code APOLLOZEN into the designated discount field.<br />
<br />
Click apply to ensure the digital coupon reduces your final total instantly.<br />
<br />
Complete your secure transaction and await fast global delivery.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Military Personnel / Veterans<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to unlock a verified &#36;99 discount tailored for military members and veterans.<br />
<br />
Armed forces personnel can take advantage of Apollo Neuro &#36;99 coupon codes for military personnel to support mental resilience. This reliable promotion acts as an official Apollo Neuro promo &#36;99 off for veterans seeking trusted consumer discounts.<br />
<br />
APOLLOZEN: &#36;99 extra discount for veterans<br />
<br />
APOLLOZEN: flat &#36;99 off for military personnel<br />
<br />
APOLLOZEN: express shipping for military veterans<br />
<br />
APOLLOZEN: extra &#36;99 promo for fitness band/wellness band<br />
<br />
APOLLOZEN: &#36;99 discount on the Apollo Neuro wellness app subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Military Personnel / Veterans?<br />
Redeem your savings by combining the Apollo Neuro promo code &#36;99 off with the Apollo Neuro promo &#36;99 discount at the online store.<br />
<br />
Open the official online store for the smart wearable device.<br />
<br />
Add the selected fitness tracker to your virtual shopping cart.<br />
<br />
Proceed to the payment screen and locate the promo code box.<br />
<br />
Type in the alphanumeric sequence APOLLOZEN carefully.<br />
<br />
Hit apply to verify that the price reflects the promotional reduction.<br />
<br />
Submit your order details to finalize the discounted purchase.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Teachers<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to help educators save &#36;99 on stress-relief wearable technology this season.<br />
<br />
Teaching professionals can utilize verified Apollo Neuro &#36;99 promo codes for teachers to manage daily classroom fatigue. This deal provides a dependable Apollo Neuro promo code &#36;99 discount for educators across international markets.<br />
<br />
APOLLOZEN: &#36;99 extra discount for teachers<br />
<br />
APOLLOZEN: flat &#36;99 off for teaching professionals<br />
<br />
APOLLOZEN: worldwide express shipping for teachers<br />
<br />
APOLLOZEN: an extra &#36;99 discount on the fitness band<br />
<br />
APOLLOZEN: &#36;99 off on Apollo Neuro monthly subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Teachers?<br />
Educators can easily apply the Apollo Neuro coupon code &#36;99 off and secure the Apollo Neuro &#36;99 discount for teachers in seconds.<br />
<br />
Go to the brand checkout page after selecting your wellness band.<br />
<br />
Review your cart contents to ensure all desired items are included.<br />
<br />
Paste the code APOLLOZEN into the coupon redemption box.<br />
<br />
Confirm that the discount reflects on your order summary.<br />
<br />
Fill in your shipping address for local or international delivery.<br />
<br />
Finish checking out securely to secure your promotional savings.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Kids<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to provide children with a verified &#36;99 discount on calming wearable devices.<br />
<br />
Parents can leverage Apollo Neuro &#36;99 coupon codes for kids to support young users dealing with anxiety or sensory challenges. This offer serves as a helpful Apollo Neuro &#36;99 promo for autism management and relaxation.<br />
<br />
APOLLOZEN: &#36;99 extra discount for kids<br />
<br />
APOLLOZEN: &#36;99 discount for kids with anxiety/autism<br />
<br />
APOLLOZEN: express shipping for kids<br />
<br />
APOLLOZEN: an extra &#36;99 discount for kids' wellness band<br />
<br />
APOLLOZEN: &#36;99 promo on Apollo Neuro app subscription for kids<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Kids?<br />
Apply the Apollo Neuro &#36;99 off coupon for kids along with the Apollo Neuro promo &#36;99 discount for anxiety seamlessly online.<br />
<br />
Access the official product ordering page from your device.<br />
<br />
Select the specific youth-friendly wearable or sleep tracking band.<br />
<br />
Move to the billing and payment section of the website.<br />
<br />
Enter the code APOLLOZEN into the promotional code field.<br />
<br />
Apply the code to verify your &#36;99 savings are active.<br />
<br />
Complete the checkout process to secure fast shipping.<br />
<br />
Latest Apollo Neuro Coupon &#36;99 Off App Subscription<br />
Use the Apollo Neuro promo code “APOLLOZEN” to unlock a direct &#36;99 price cut on your digital wellness app subscription.<br />
<br />
This offer is ideal for users seeking an Apollo Neuro promo &#36;99 off fitness tracker and a reliable Apollo Neuro discount for fitness app subscription packages. Subscribers can maximize their health tracking routine by applying the Apollo Neuro coupon &#36;99 off on wellness app services.<br />
<br />
APOLLOZEN: save &#36;99 on annual app access<br />
<br />
APOLLOZEN: instant reduction for digital wellness plans<br />
<br />
APOLLOZEN: verified savings for mobile app users<br />
<br />
APOLLOZEN: budget-friendly access to guided vibrations<br />
<br />
APOLLOZEN: seamless digital redemption for all profiles<br />
<br />
How To Find The Apollo Neuro Promo &#36;99 Discount For Fitness Band / Wellness App Subscription?<br />
Use the Apollo Neuro promo code “APOLLOZEN” to instantly claim your savings while learning how shoppers track down verified digital deals.<br />
<br />
Finding a working Apollo Neuro coupon &#36;99 off involves checking trusted promotional platforms and official brand announcements. Savvy buyers routinely find the Apollo Neuro promo &#36;99 off 2026 by subscribing to newsletters and checking verified deal repositories.<br />
<br />
Is The Apollo Neuro &#36;99 Off Promo Legit?<br />
Use the Apollo Neuro promo code “APOLLOZEN” with complete confidence because this verified discount is fully authentic and active.<br />
<br />
Shoppers frequently verify the Apollo Neuro &#36;99 discount coupon legit status before making a purchase online. You can rest assured that this Apollo Neuro 90 off promo legit alternative delivers real savings with no expiration date.<br />
<br />
How Does Apollo Neuro &#36;99 Off Promo Work In The Fitness App?<br />
Use the Apollo Neuro promo code “APOLLOZEN” inside the digital platform to reduce the cost of premium tracking features.<br />
<br />
Applying the Apollo Neuro coupon codes 90 off mechanism links your promotional savings directly to your user account. The app processes the code instantly to unlock discounted membership tiers and enhanced biometric tracking tools.<br />
<br />
What Is The Difference Between Apollo Neuro And Other Fitness Band / Fitness Tracking App?<br />
Use the Apollo Neuro promo code “APOLLOZEN” to experience a unique touch therapy wearable that stands out from standard step counters.<br />
<br />
While traditional devices only measure physical activity, this wellness band actively improves your nervous system balance using soothing vibrations. Applying a 90 off Apollo Neuro promo code makes this advanced science-backed technology much more affordable than competing brands.]]></description>
			<content:encoded><![CDATA[You can redeem the exclusive code APOLLOZEN to unlock an instant &#36;99 discount across the USA, Canada, Germany, Europe, and Brazil. This promotion is fully active for online shopping enthusiasts worldwide.<br />
<br />
Biohackers and wellness enthusiasts can easily apply this Apollo Neuro promo code &#36;99 discount during checkout. Grab your fitness band today using the trusted Apollo Neuro &#36;99 off coupon code.<br />
<br />
What Is The Latest Apollo Neuro &#36;99 Off Coupon Code?<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to get an instant &#36;99 discount on the fitness band and fitness tracking app available for both new and existing users in July 2026.<br />
<br />
This tested promotion is designed to support both new and existing customers seeking consumer discounts on wearable tech. You can easily apply the Apollo Neuro coupon &#36;99 off to reduce your upfront hardware costs. Claim your &#36;99 off Apollo Neuro coupon today for reliable health tracking.<br />
<br />
APOLLOZEN: flat &#36;99 discount<br />
<br />
APOLLOZEN: &#36;99 discount on the fitness band<br />
<br />
APOLLOZEN: &#36;99 off for first-time buyers<br />
<br />
APOLLOZEN: an extra &#36;99 for the fitness tracking app subscription<br />
<br />
APOLLOZEN: &#36;99 discount coupon for USA/Canada/Germany/Europe/Brazil<br />
<br />
Apollo Neuro Coupon Code &#36;99 Off For New &amp; Existing Customers In 2026<br />
Use the Apollo Neuro promo code “APOLLOZEN” to claim an instant &#36;99 discount for new and existing users on wellness bands and apps across global regions.<br />
<br />
This promotion ensures that shoppers looking for an Apollo Neuro coupon &#36;99 off for new customers enjoy immediate savings. Returning buyers can also benefit from the Apollo Neuro coupon code &#36;99 discount for existing users during online shopping.<br />
<br />
APOLLOZEN: flat &#36;99 for new customers<br />
<br />
APOLLOZEN: &#36;99 additional discount for Apollo Neuro subscribers<br />
<br />
APOLLOZEN: &#36;99 discount for the fitness band/wellness band<br />
<br />
APOLLOZEN: an additional &#36;99 discount on the fitness tracking app<br />
<br />
APOLLOZEN: an extra &#36;99 off for all Apollo Neuro customers<br />
<br />
How To Redeem The Apollo Neuro Coupon &#36;99 Off For New &amp; Existing Users?<br />
Follow these simple steps to redeem your Apollo Neuro &#36;99 coupon for 2026 and secure the Apollo Neuro &#36;99 discount code for new customers.<br />
<br />
Visit the official Apollo Neuro online store using your web browser.<br />
<br />
Select your desired fitness band or health tracker and add it to your cart.<br />
<br />
Proceed to the checkout page where payment details are requested.<br />
<br />
Locate the promotional code input box on the screen.<br />
<br />
Enter the code APOLLOZEN exactly as shown to activate the savings.<br />
<br />
Verify that the price drops by the expected amount before completing your purchase.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Healthcare Providers<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to secure an exclusive &#36;99 price reduction for healthcare professionals shopping for wearable tech.<br />
<br />
Medical workers can now access verified Apollo Neuro &#36;99 coupon codes for healthcare providers to enhance patient care and personal wellness. This special offer serves as a trusted Apollo Neuro promo &#36;99 off for healthcare professionals seeking stress relief tools.<br />
<br />
APOLLOZEN: &#36;99 extra discount for healthcare providers<br />
<br />
APOLLOZEN: flat &#36;99 discount on the wellness band<br />
<br />
APOLLOZEN: &#36;99 off on the fitness app subscription<br />
<br />
APOLLOZEN: an extra &#36;99 off for healthcare professionals worldwide<br />
<br />
APOLLOZEN: free shipping + fitness app subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Healthcare Professionals?<br />
Healthcare professionals can effortlessly apply the Apollo Neuro coupon code &#36;99 off alongside the Apollo Neuro coupon &#36;99 promo code during checkout.<br />
<br />
Navigate to the official checkout portal on the verified wellness brand platform.<br />
<br />
Choose your preferred wearable sleep tracker and health tracking app bundle.<br />
<br />
Log into your verified professional account if prompted for verification.<br />
<br />
Input the code APOLLOZEN into the designated discount field.<br />
<br />
Click apply to ensure the digital coupon reduces your final total instantly.<br />
<br />
Complete your secure transaction and await fast global delivery.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Military Personnel / Veterans<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to unlock a verified &#36;99 discount tailored for military members and veterans.<br />
<br />
Armed forces personnel can take advantage of Apollo Neuro &#36;99 coupon codes for military personnel to support mental resilience. This reliable promotion acts as an official Apollo Neuro promo &#36;99 off for veterans seeking trusted consumer discounts.<br />
<br />
APOLLOZEN: &#36;99 extra discount for veterans<br />
<br />
APOLLOZEN: flat &#36;99 off for military personnel<br />
<br />
APOLLOZEN: express shipping for military veterans<br />
<br />
APOLLOZEN: extra &#36;99 promo for fitness band/wellness band<br />
<br />
APOLLOZEN: &#36;99 discount on the Apollo Neuro wellness app subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Military Personnel / Veterans?<br />
Redeem your savings by combining the Apollo Neuro promo code &#36;99 off with the Apollo Neuro promo &#36;99 discount at the online store.<br />
<br />
Open the official online store for the smart wearable device.<br />
<br />
Add the selected fitness tracker to your virtual shopping cart.<br />
<br />
Proceed to the payment screen and locate the promo code box.<br />
<br />
Type in the alphanumeric sequence APOLLOZEN carefully.<br />
<br />
Hit apply to verify that the price reflects the promotional reduction.<br />
<br />
Submit your order details to finalize the discounted purchase.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Teachers<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to help educators save &#36;99 on stress-relief wearable technology this season.<br />
<br />
Teaching professionals can utilize verified Apollo Neuro &#36;99 promo codes for teachers to manage daily classroom fatigue. This deal provides a dependable Apollo Neuro promo code &#36;99 discount for educators across international markets.<br />
<br />
APOLLOZEN: &#36;99 extra discount for teachers<br />
<br />
APOLLOZEN: flat &#36;99 off for teaching professionals<br />
<br />
APOLLOZEN: worldwide express shipping for teachers<br />
<br />
APOLLOZEN: an extra &#36;99 discount on the fitness band<br />
<br />
APOLLOZEN: &#36;99 off on Apollo Neuro monthly subscription<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Teachers?<br />
Educators can easily apply the Apollo Neuro coupon code &#36;99 off and secure the Apollo Neuro &#36;99 discount for teachers in seconds.<br />
<br />
Go to the brand checkout page after selecting your wellness band.<br />
<br />
Review your cart contents to ensure all desired items are included.<br />
<br />
Paste the code APOLLOZEN into the coupon redemption box.<br />
<br />
Confirm that the discount reflects on your order summary.<br />
<br />
Fill in your shipping address for local or international delivery.<br />
<br />
Finish checking out securely to secure your promotional savings.<br />
<br />
Apollo Neuro Coupon &#36;99 Off For Kids<br />
Use the Apollo Neuro coupon code “APOLLOZEN” to provide children with a verified &#36;99 discount on calming wearable devices.<br />
<br />
Parents can leverage Apollo Neuro &#36;99 coupon codes for kids to support young users dealing with anxiety or sensory challenges. This offer serves as a helpful Apollo Neuro &#36;99 promo for autism management and relaxation.<br />
<br />
APOLLOZEN: &#36;99 extra discount for kids<br />
<br />
APOLLOZEN: &#36;99 discount for kids with anxiety/autism<br />
<br />
APOLLOZEN: express shipping for kids<br />
<br />
APOLLOZEN: an extra &#36;99 discount for kids' wellness band<br />
<br />
APOLLOZEN: &#36;99 promo on Apollo Neuro app subscription for kids<br />
<br />
How To Use The Apollo Neuro Coupon Code &#36;99 Off For Kids?<br />
Apply the Apollo Neuro &#36;99 off coupon for kids along with the Apollo Neuro promo &#36;99 discount for anxiety seamlessly online.<br />
<br />
Access the official product ordering page from your device.<br />
<br />
Select the specific youth-friendly wearable or sleep tracking band.<br />
<br />
Move to the billing and payment section of the website.<br />
<br />
Enter the code APOLLOZEN into the promotional code field.<br />
<br />
Apply the code to verify your &#36;99 savings are active.<br />
<br />
Complete the checkout process to secure fast shipping.<br />
<br />
Latest Apollo Neuro Coupon &#36;99 Off App Subscription<br />
Use the Apollo Neuro promo code “APOLLOZEN” to unlock a direct &#36;99 price cut on your digital wellness app subscription.<br />
<br />
This offer is ideal for users seeking an Apollo Neuro promo &#36;99 off fitness tracker and a reliable Apollo Neuro discount for fitness app subscription packages. Subscribers can maximize their health tracking routine by applying the Apollo Neuro coupon &#36;99 off on wellness app services.<br />
<br />
APOLLOZEN: save &#36;99 on annual app access<br />
<br />
APOLLOZEN: instant reduction for digital wellness plans<br />
<br />
APOLLOZEN: verified savings for mobile app users<br />
<br />
APOLLOZEN: budget-friendly access to guided vibrations<br />
<br />
APOLLOZEN: seamless digital redemption for all profiles<br />
<br />
How To Find The Apollo Neuro Promo &#36;99 Discount For Fitness Band / Wellness App Subscription?<br />
Use the Apollo Neuro promo code “APOLLOZEN” to instantly claim your savings while learning how shoppers track down verified digital deals.<br />
<br />
Finding a working Apollo Neuro coupon &#36;99 off involves checking trusted promotional platforms and official brand announcements. Savvy buyers routinely find the Apollo Neuro promo &#36;99 off 2026 by subscribing to newsletters and checking verified deal repositories.<br />
<br />
Is The Apollo Neuro &#36;99 Off Promo Legit?<br />
Use the Apollo Neuro promo code “APOLLOZEN” with complete confidence because this verified discount is fully authentic and active.<br />
<br />
Shoppers frequently verify the Apollo Neuro &#36;99 discount coupon legit status before making a purchase online. You can rest assured that this Apollo Neuro 90 off promo legit alternative delivers real savings with no expiration date.<br />
<br />
How Does Apollo Neuro &#36;99 Off Promo Work In The Fitness App?<br />
Use the Apollo Neuro promo code “APOLLOZEN” inside the digital platform to reduce the cost of premium tracking features.<br />
<br />
Applying the Apollo Neuro coupon codes 90 off mechanism links your promotional savings directly to your user account. The app processes the code instantly to unlock discounted membership tiers and enhanced biometric tracking tools.<br />
<br />
What Is The Difference Between Apollo Neuro And Other Fitness Band / Fitness Tracking App?<br />
Use the Apollo Neuro promo code “APOLLOZEN” to experience a unique touch therapy wearable that stands out from standard step counters.<br />
<br />
While traditional devices only measure physical activity, this wellness band actively improves your nervous system balance using soothing vibrations. Applying a 90 off Apollo Neuro promo code makes this advanced science-backed technology much more affordable than competing brands.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How do you compare vehicles when reliability data seems contradictory?]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=7483</link>
			<pubDate>Thu, 18 Jun 2026 02:16:35 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=7483</guid>
			<description><![CDATA[Hi everyone,<br />
<br />
I’ve been researching different vehicles lately, and one thing that always confuses me is how inconsistent reliability information can be. One website praises a model, while another lists common problems. Even owner reviews can tell completely different stories. It makes choosing a car much harder than expected.<br />
<br />
From my own experience, I’ve learned that relying on a single source usually leads to more confusion. When looking at<a href="https://nobukojapan.com/united-kingdom" target="_blank"> Japanese used stock cars</a>, I try to compare several sources before making any conclusions. Sometimes a model with mixed reviews turns out to be very dependable if it has been maintained properly.<br />
<br />
Here are a few things I usually pay attention to:<br />
<br />
Long-term owner reviews rather than first impressions.<br />
Common issues reported across multiple forums.<br />
Maintenance history and service records.<br />
Availability and cost of replacement parts.<br />
Real-world fuel economy and ownership costs.<br />
Auction grades and inspection reports when browsing Japanese used stock cars.<br />
<br />
I also noticed that some vehicles have a bad reputation because of one problematic generation, while newer or older versions perform much better. That’s why I try to separate model years instead of judging an entire nameplate.<br />
<br />
Another thing I’ve found helpful is reading feedback from people who have owned the car for several years. Their experiences often provide more value than general rankings. This approach has made comparing Japanese used stock cars much easier for me.<br />
<br />
How do you all handle conflicting reliability data? Do you trust consumer reports, owner forums, mechanics, or your own experience when making a decision?]]></description>
			<content:encoded><![CDATA[Hi everyone,<br />
<br />
I’ve been researching different vehicles lately, and one thing that always confuses me is how inconsistent reliability information can be. One website praises a model, while another lists common problems. Even owner reviews can tell completely different stories. It makes choosing a car much harder than expected.<br />
<br />
From my own experience, I’ve learned that relying on a single source usually leads to more confusion. When looking at<a href="https://nobukojapan.com/united-kingdom" target="_blank"> Japanese used stock cars</a>, I try to compare several sources before making any conclusions. Sometimes a model with mixed reviews turns out to be very dependable if it has been maintained properly.<br />
<br />
Here are a few things I usually pay attention to:<br />
<br />
Long-term owner reviews rather than first impressions.<br />
Common issues reported across multiple forums.<br />
Maintenance history and service records.<br />
Availability and cost of replacement parts.<br />
Real-world fuel economy and ownership costs.<br />
Auction grades and inspection reports when browsing Japanese used stock cars.<br />
<br />
I also noticed that some vehicles have a bad reputation because of one problematic generation, while newer or older versions perform much better. That’s why I try to separate model years instead of judging an entire nameplate.<br />
<br />
Another thing I’ve found helpful is reading feedback from people who have owned the car for several years. Their experiences often provide more value than general rankings. This approach has made comparing Japanese used stock cars much easier for me.<br />
<br />
How do you all handle conflicting reliability data? Do you trust consumer reports, owner forums, mechanics, or your own experience when making a decision?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Все артефакты - сборные]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6905</link>
			<pubDate>Sun, 22 Oct 2023 23:07:11 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6905</guid>
			<description><![CDATA[Одна из проблем игры на больших сгенерированных картах является накопление большого количества артефактов.<br />
<br />
Предлагаю сделать возможность объединять два одинаковых артефакта в один с чуть более улучшенными характеристиками, новые артефакты также объединять, и так далее, а на пятом, финальном объединении уже будут уникальные свойства.<br />
<br />
1 уровень объединения = 2 артефакта<br />
2 = 4<br />
3 = 8<br />
4 = 16<br />
5 = 32]]></description>
			<content:encoded><![CDATA[Одна из проблем игры на больших сгенерированных картах является накопление большого количества артефактов.<br />
<br />
Предлагаю сделать возможность объединять два одинаковых артефакта в один с чуть более улучшенными характеристиками, новые артефакты также объединять, и так далее, а на пятом, финальном объединении уже будут уникальные свойства.<br />
<br />
1 уровень объединения = 2 артефакта<br />
2 = 4<br />
3 = 8<br />
4 = 16<br />
5 = 32]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Исправление скрипта "capture mills and gardens"]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6904</link>
			<pubDate>Fri, 13 Oct 2023 16:23:12 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6904</guid>
			<description><![CDATA[Прошу помощи в исправлении скрипта 879.<br />
Нужно запретить захватывать мельницы и сады союзников.<br />
Самому, к сожалению, не получилось исправить.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE
ERMS_ScriptDate=22.9(September).2012
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945
** Author orig.  : DracoLich
** Name          : Capture the mills and leprechaun's gardens
** Name rus.     : Захват мельниц и садов лепрекона
** Changes rus.  : [Algor&#93; вынос опции в отдельный файл для мода ERA, построчные комментарии
**                 [Algor&#93; вынос текстов в ert-файл
**                 [Algor&#93; технология быстрого поиска для UN:U
**                 [Algor&#93; Замена TM100 на "стандартный" TM51, перенумерация функций/переменных и пр.
** Options       : 879
** Dialogs       : -
** Variables     : -
** Tmp variables : v1-v3, z1
** Timers        : TM51 (standard)
** Functions     : FU7934
** PO-values     : V0,V1 (mills and leprechaun's gardens squares)

** дублирование стандартных триггеров
!#TM99:S1/999/1/255;          [каждый день для всех игроков&#93;

!?OB109;                      [посещение Водяной мельницы игроком-человеком&#93;
!!UN:P879/?y1;                [проверяем включена ли опция в y1&#93;
!!FU&#x26;y1=0:E;                  [выход, если опция не включена&#93;
!!PO998:O?y1;                 [y1 - хозяин объекта&#93;
!!OW:C?y2;                    [y2 - текущий игрок&#93;
!!OB998:R;                    [разрешаем посещение объекта всем игрокам&#93;
!!PO998:Oy2;                  [меняем владельца мельницы&#93;
!!WM998&#x26;y1=-1:B?y3 B0;        [y3 - количество золота на мельнице, если мельница ничейная&#93;
!!VRy3&#x26;y1=-1:*500;            [...&#93;
!!OW&#x26;y1=-1:R-1/6/dy3;         [увеличиваем игроку золото, если мельница была ничейной&#93;
!!PO998&#x26;y1=-1:V0/6 V1/y3;     [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки&#93;
!!FU&#x26;-1000:E;                 [выход, если игрок ИИ&#93;
!!OB998:S;                    [запрещаем посещение объекта всем игрокам&#93;
!!VRz1&#x26;y1=y2:Sz179072;        [сообщение, если игрок уже получал золото&#93;
!!IF&#x26;y1=y2:M^%Z1^;            [...&#93;
!!VRz1&#x26;y1=-1:Sz179073;        [сообщение о захвате и получении ресурсов&#93;
!!IF&#x26;y1=-1:Q2/6/y3/1^%Z1^;    [...&#93;
!!VRz1&#x26;y1<>y2/y1>-1:Sz179074; [сообщение о захвате мельницы&#93;
!!IF&#x26;y1<>y2/y1>-1:M^%Z1^;     [...&#93;

!?OB112;                      [посещение Ветряной мельницы&#93;
!!UN:P879/?y1;                [проверяем включена ли опция в y1&#93;
!!FU&#x26;y1=0:E;                  [выход, если опция не включена&#93;
!!PO998:O?y1;                 [y1 - хозяин объекта&#93;
!!OW:C?y2;                    [y2 - текущий игрок&#93;
!!OB998:R;                    [разрешаем посещение объекта всем игрокам&#93;
!!PO998:Oy2;                  [меняем владельца мельницы&#93;
!!ML998&#x26;y1=-1:B?y3/?y4 Bd/0;  [y3/y4 - тип/количество ресурса на мельнице, если мельница ничейная&#93;
!!OW&#x26;y1=-1:R-1/y3/dy4;        [увеличиваем игроку ресурсы, если мельница была ничейной&#93;
!!PO998&#x26;y1=-1:V0/y3 V1/y4;    [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки&#93;
!!FU&#x26;-1000:E;                 [выход, если игрок ИИ&#93;
!!OB998:S;                    [запрещаем посещение объекта всем игрокам&#93;
!!VRz1&#x26;y1=y2:Sz179075;        [сообщение, если игрок уже получал ресурсы&#93;
!!IF&#x26;y1=y2:M^%Z1^;            [...&#93;
!!VRz1&#x26;y1=-1:Sz179076;        [сообщение о захвате и получении ресурсов&#93;
!!IF&#x26;y1=-1:Q2/y3/y4/1^%Z1^;   [...&#93;
!!VRz1&#x26;y1<>y2/y1>-1:Sz179077; [сообщение о захвате мельницы&#93;
!!IF&#x26;y1<>y2/y1>-1:M^%Z1^;     [...&#93;

!?OB55;                       [посещение Сада лепрекона&#93;
!!UN:P879/?y1;                [проверяем включена ли опция в y1&#93;
!!FU&#x26;y1=0:E;                  [выход, если опция не включена&#93;
!!PO998:O?y1;                 [y1 - хозяин объекта&#93;
!!OW:C?y2;                    [y2 - текущий игрок&#93;
!!OB998:R;                    [разрешаем посещение объекта всем игрокам&#93;
!!PO998:Oy2;                  [меняем владельца мельницы&#93;
!!GD998:B?y3; B0;              [y3/y4 - тип/количество ресурса в саду, если сад ничейный&#93;
!!VRy4&#x26;y3<>6:S5;              [...&#93;
!!VRy4&#x26;y3=6:S500;             [...&#93;
!!OW&#x26;y1=-1:R-1/y3/dy4;        [увеличиваем игроку ресурсы, если сад был ничейным&#93;
!!PO998&#x26;y1=-1:V0/y3 V1/y4;    [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки&#93;
!!FU&#x26;-1000:E;                 [выход, если игрок ИИ&#93;
!!OB998:S;                    [запрещаем посещение объекта всем игрокам&#93;
!!VRz1&#x26;y1=y2:Sz179078;        [сообщение, если игрок уже получал ресурсы&#93;
!!IF&#x26;y1=y2:M^%Z1^;            [...&#93;
!!VRz1&#x26;y1=-1:Sz179079;        [сообщение о захвате и получении ресурсов&#93;
!!IF&#x26;y1=-1:Q2/y3/y4/1^%Z1^;   [...&#93;
!!VRz1&#x26;y1<>y2/y1>-1:Sz179080; [сообщение о захвате сада&#93;
!!IF&#x26;y1<>y2/y1>-1:M^%Z1^;     [...&#93;

!?CM0;                        [информация по ПКМ на карте/объекте&#93;
!!UN:P879/?y1;                [проверяем включена ли опция в y1&#93;
!!CM:F?y2;                    [тип клика 512-ПКМ&#93;
!!FU|y1=0/y2<>512:E;          [выход, если опция не включена или не ПКМ&#93;
!!CM:P?v2/?v3/?v4;            [v2-v4 - координаты клика&#93;
!!FU420000:P;                 [корректировка координат&#93;
!!OB2:T?y1;                   [y1 - тип объекта&#93;
!!FU&#x26;y1<>112/y1<>109/y1<>55:E;[выход если клик не на мельнице/садке&#93;
!!CM:R0;                      [отключаем стандартное ПКМ-действие&#93;
!!PO2:O?y2;                   [y2 - владелец объекта&#93;
!!OW:C?y3;                    [y3 - текущий игрок&#93;
!!UN:P36/?y9;                 [y9 - проверка скрипта Mithril Enhancements&#93;
!!PO2&#x26;y9>0:N?y10;             [y10 - пользовательское число, если Mithril Enhancements активен (см. скрипт 42wog)&#93;
!!VRz1&#x26;y2<>y3/y1=112/y2=-1:Sz179081;[сообщение "ничейная возд. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=112/y2>-1:Sz179084;[сообщение "чужая возд. мельница"&#93;
!!VRz1&#x26;y2=y3/y1=112:Sz179088; [сообщение "своя ветряная мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=112/y2=-1/y10<4/y10>1:Sz179651;[сообщение "ничейная улучшенная возд. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=112/y2>-1/y10<4/y10>1:Sz179652;[сообщение "чужая улучшенная возд. мельница"&#93;
!!VRz1&#x26;y2=y3/y1=112/y10<4/y10>1:Sz179653; [сообщение "своя улучшенная ветряная мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=109/y2=-1:Sz179082;[сообщение "ничейная водн. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=109/y2>-1:Sz179085;[сообщение "чужая водн. мельница"&#93;
!!VRz1&#x26;y2=y3/y1=109:Sz179650; [сообщение "своя водн. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=109/y2=-1/y10<4/y10>1:Sz179654;[сообщение "ничейная улучшенная водн. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=109/y2>-1/y10<4/y10>1:Sz179655;[сообщение "чужая улучшенная водн. мельница"&#93;
!!VRz1&#x26;y2=y3/y1=109/y10<4/y10>1:Sz179656; [сообщение "своя улучшенная водн. мельница"&#93;
!!VRz1&#x26;y2<>y3/y1=55/y2=-1:Sz179083;[сообщение "ничейный сад"&#93;
!!VRz1&#x26;y2<>y3/y1=55/y2>-1:Sz179086;[сообщение "чужой сад"&#93;
!!VRz1&#x26;y2=y3/y1=55:Sz179087;  [сообщение "свой сад"&#93;
!!PO2&#x26;y2=y3:V0/?y4 V1/?y5;    [y4/y5 - тип и количество принесенных ресурсов, если объект свой&#93;
!!IF&#x26;y2=-1:Q2/-1/-1/4/z1;     [вывод сообщения "ничейный"&#93;
!!IF&#x26;y3<>y2/y2>-1:Q2/10/y2/4/z1;[вывод сообщения "чужой"&#93;
!!IF&#x26;y3=y2:Q2/y4/y5/4/z1;     [вывод сообщения "свой"&#93;

!?TM99;                       [поставка ресурсов владельцам мельниц/садов каждый первый день недели, начиная с 8го дня&#93;
!!UN:P879/?y1;                [проверяем включена ли опция в y1&#93;
!!FU&#x26;y1=0:E;                  [выход, если опция не включена&#93;
!!VRy1:Sc; !!FU&#x26;y1<2:E;       [автосбор отключен в первый день&#93;
!!VRy1:%7; !!FU&#x26;y1<>1:E;      [автосбор ресурсов по понедельникам&#93;
!!OW:C?y1;                    [y1 - текущий игрок&#93;
!!UN:U112/-1/?y2;             [y2 - количество Ветряных мельниц&#93;
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска&#93;
!!DO7934/1/y2/1:Py1/112;      [для каждого объекта передаем ресурсы владельцу&#93;
!!UN:U109/-1/?y2;             [y2 - количество Водных мельниц&#93;
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска&#93;
!!DO7934/1/y2/1:Py1/109;      [для каждого объекта передаем ресурсы владельцу&#93;
!!UN:U55/-1/?y2;              [y2 - количество Садов лепрекона&#93;
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска&#93;
!!DO7934/1/y2/1:Py1/55;       [для каждого объекта передаем ресурсы владельцу&#93;

!?FU7934;                     [x1 - текущий игрок, x2 - тип объекта&#93;
!!UN:Ux2/-1/-1/1;             [получаем координаты объекта в v1-v3&#93;
!!PO1:O?y1;                   [y1 - владелец объекта&#93;
!!FU&#x26;y1<>x1:E;                [выход, если текущий игрок не владелец&#93;
!!UN:P36/?y9;                 [y9 - проверка скрипта Mithril Enhancements&#93;
!!PO1&#x26;y9>0:N?y10;             [y10 - пользовательское число, если Mithril Enhancements активен (см. скрипт 42wog)&#93;
!!ML1&#x26;x2=112:B?y2/?y3 By2/0;  [y2/y3 - тип/количество текущих ресурсов объекта. обнуляем количество&#93;
!!VRy3&#x26;x2=112/y9>0/y10<4/y10>1:*2; [*2 количества ресурсов за апгрейд&#93;
!!WM1&#x26;x2=109:B?y3 B0;         [...&#93;
!!VRy3&#x26;x2=109:*500;           [...&#93;
!!VRy2&#x26;x2=109:S6;             [...&#93;
!!VRy3&#x26;x2=109/y9>0/y10<4/y10>1:*2; [х2 количества денег за апгрейд&#93;
!!GD1&#x26;x2=55:B?y2;             [...&#93;
!!VRy3&#x26;x2=55/y2<>6:S5;        [...&#93;
!!VRy3&#x26;x2=55/y2=6:S500;       [...&#93;
!!PO1:V0/y2 V1/y3;            [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки&#93;
!!OW:Rx1/y2/dy3;              [увеличиваем ресурсы игрока&#93;

!?FU420000;                   Координаты объекта в v2/v3/v4 обновляются на правильные (желтый квадрат). Автор: gamecreator
; v2/v3/v4 - coords
!!UN:C6919480/4/?y1;          0x699538
!!VRy1:+130112;               0x1FC40
!!UN:Cy1/4/?y2;               y2 = map tiles
!!VRy1:+4;
!!UN:Cy1/4/?y3;               y3 = map size
!!VRy5:Sv4 *y3 +v3 *y3 +v2 *38 +y2; this object, 0x26 is tile size
!!VRv2:C0/0/0;                reuse vars
**SN:E4239120/2/?v2/y5/0/0;   thiscall 0x40AF10 (map tile, screenX?, screenY?) for struct{0,0,0}
!!SN:E5230832/2/y5; !!VRv1&#x26;v1<1:Sy5; [(c) igrik&#93;
; v1 = yellow tile
!!VRv1:-y2 :38;               object index
!!VRv2:Sv1 %y3;               x
!!VRv3:Sv1 :y3 %y3;           y
!!VRv4:Sv1 :y3 :y3;           l

** end

</script></div>
<br />
#	Text resource for "option 879 - capture mills and gardens.erm"		<br />
179072	{Водяная Мельница}<br />
<br />
На этой неделе Водяная мельница уже отсылала золото. <br />
Новое будет только на следующей неделе.		<br />
179073	{Водяная Мельница}<br />
<br />
Вы захватили Водяную мельницу под свой контроль. <br />
Теперь каждую неделю Водяная мельница будет приносить Вам золото. <br />
Сейчас она Вам отдает:		<br />
179074	{Водяная Мельница}<br />
<br />
Вы захватили Водяную мельницу под свой контроль. <br />
Теперь каждую неделю Водяная мельница будет приносить Вам золото.		<br />
179075	{Ветряная Мельница}<br />
<br />
На этой неделе Ветряная мельница уже отсылала ресурсы. <br />
Новые будут только на следующей неделе.		<br />
179076	{Ветряная Мельница}<br />
<br />
Вы захватили Ветряную мельницу под свой контроль. <br />
Теперь каждую неделю Ветряная мельница будет приносить Вам ресурсы. <br />
Сейчас она Вам отдает:		<br />
179077	{Ветряная Мельница}<br />
<br />
Вы захватили Ветряную мельницу под свой контроль. <br />
Теперь каждую неделю Ветряная мельница будет приносить Вам ресурсы.		<br />
179078	{Мистический сад}<br />
<br />
На этой неделе Мистический сад уже отсылал ресурсы. <br />
Новые будут только на следующей неделе.		<br />
179079	{Мистический сад}<br />
<br />
Вы захватили Мистический сад под свой контроль. <br />
Теперь каждую неделю Мистический сад будет приносить Вам ресурсы. <br />
Сейчас он Вам отдает:		<br />
179080	{Мистический сад}<br />
<br />
Вы захватили Мистический сад под свой контроль. <br />
Теперь каждую неделю Мистический сад будет приносить Вам ресурсы.		<br />
179081	{Ветряная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179082	{Водяная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179083	{Мистический сад}<br />
<br />
Никому не принадлежит.		<br />
179084	{Ветряная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179085	{Водяная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179086	{Мистический сад}<br />
<br />
Принадлежит игроку:		<br />
179087	{Мистический сад}<br />
<br />
На этой неделе мистический сад принес:		<br />
179088	{Ветряная Мельница}<br />
<br />
На этой неделе ветряная мельница принесла:		<br />
179650	{Водяная Мельница}<br />
<br />
На этой неделе водяная мельница принесла:		<br />
179651	{Улучшенная Ветряная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179652	{Улучшенная Ветряная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179653	{Улучшенная Ветряная Мельница}<br />
<br />
На этой неделе ветряная мельница принесла:		<br />
179654	{Улучшенная Водяная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179655	{Улучшенная Водяная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179656	{Улучшенная Водяная Мельница}<br />
<br />
На этой неделе водяная мельница принесла:		<br />
179657]]></description>
			<content:encoded><![CDATA[Прошу помощи в исправлении скрипта 879.<br />
Нужно запретить захватывать мельницы и сады союзников.<br />
Самому, к сожалению, не получилось исправить.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE
ERMS_ScriptDate=22.9(September).2012
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945
** Author orig.  : DracoLich
** Name          : Capture the mills and leprechaun's gardens
** Name rus.     : Захват мельниц и садов лепрекона
** Changes rus.  : [Algor] вынос опции в отдельный файл для мода ERA, построчные комментарии
**                 [Algor] вынос текстов в ert-файл
**                 [Algor] технология быстрого поиска для UN:U
**                 [Algor] Замена TM100 на "стандартный" TM51, перенумерация функций/переменных и пр.
** Options       : 879
** Dialogs       : -
** Variables     : -
** Tmp variables : v1-v3, z1
** Timers        : TM51 (standard)
** Functions     : FU7934
** PO-values     : V0,V1 (mills and leprechaun's gardens squares)

** дублирование стандартных триггеров
!#TM99:S1/999/1/255;          [каждый день для всех игроков]

!?OB109;                      [посещение Водяной мельницы игроком-человеком]
!!UN:P879/?y1;                [проверяем включена ли опция в y1]
!!FU&y1=0:E;                  [выход, если опция не включена]
!!PO998:O?y1;                 [y1 - хозяин объекта]
!!OW:C?y2;                    [y2 - текущий игрок]
!!OB998:R;                    [разрешаем посещение объекта всем игрокам]
!!PO998:Oy2;                  [меняем владельца мельницы]
!!WM998&y1=-1:B?y3 B0;        [y3 - количество золота на мельнице, если мельница ничейная]
!!VRy3&y1=-1:*500;            [...]
!!OW&y1=-1:R-1/6/dy3;         [увеличиваем игроку золото, если мельница была ничейной]
!!PO998&y1=-1:V0/6 V1/y3;     [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки]
!!FU&-1000:E;                 [выход, если игрок ИИ]
!!OB998:S;                    [запрещаем посещение объекта всем игрокам]
!!VRz1&y1=y2:Sz179072;        [сообщение, если игрок уже получал золото]
!!IF&y1=y2:M^%Z1^;            [...]
!!VRz1&y1=-1:Sz179073;        [сообщение о захвате и получении ресурсов]
!!IF&y1=-1:Q2/6/y3/1^%Z1^;    [...]
!!VRz1&y1<>y2/y1>-1:Sz179074; [сообщение о захвате мельницы]
!!IF&y1<>y2/y1>-1:M^%Z1^;     [...]

!?OB112;                      [посещение Ветряной мельницы]
!!UN:P879/?y1;                [проверяем включена ли опция в y1]
!!FU&y1=0:E;                  [выход, если опция не включена]
!!PO998:O?y1;                 [y1 - хозяин объекта]
!!OW:C?y2;                    [y2 - текущий игрок]
!!OB998:R;                    [разрешаем посещение объекта всем игрокам]
!!PO998:Oy2;                  [меняем владельца мельницы]
!!ML998&y1=-1:B?y3/?y4 Bd/0;  [y3/y4 - тип/количество ресурса на мельнице, если мельница ничейная]
!!OW&y1=-1:R-1/y3/dy4;        [увеличиваем игроку ресурсы, если мельница была ничейной]
!!PO998&y1=-1:V0/y3 V1/y4;    [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки]
!!FU&-1000:E;                 [выход, если игрок ИИ]
!!OB998:S;                    [запрещаем посещение объекта всем игрокам]
!!VRz1&y1=y2:Sz179075;        [сообщение, если игрок уже получал ресурсы]
!!IF&y1=y2:M^%Z1^;            [...]
!!VRz1&y1=-1:Sz179076;        [сообщение о захвате и получении ресурсов]
!!IF&y1=-1:Q2/y3/y4/1^%Z1^;   [...]
!!VRz1&y1<>y2/y1>-1:Sz179077; [сообщение о захвате мельницы]
!!IF&y1<>y2/y1>-1:M^%Z1^;     [...]

!?OB55;                       [посещение Сада лепрекона]
!!UN:P879/?y1;                [проверяем включена ли опция в y1]
!!FU&y1=0:E;                  [выход, если опция не включена]
!!PO998:O?y1;                 [y1 - хозяин объекта]
!!OW:C?y2;                    [y2 - текущий игрок]
!!OB998:R;                    [разрешаем посещение объекта всем игрокам]
!!PO998:Oy2;                  [меняем владельца мельницы]
!!GD998:B?y3; B0;              [y3/y4 - тип/количество ресурса в саду, если сад ничейный]
!!VRy4&y3<>6:S5;              [...]
!!VRy4&y3=6:S500;             [...]
!!OW&y1=-1:R-1/y3/dy4;        [увеличиваем игроку ресурсы, если сад был ничейным]
!!PO998&y1=-1:V0/y3 V1/y4;    [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки]
!!FU&-1000:E;                 [выход, если игрок ИИ]
!!OB998:S;                    [запрещаем посещение объекта всем игрокам]
!!VRz1&y1=y2:Sz179078;        [сообщение, если игрок уже получал ресурсы]
!!IF&y1=y2:M^%Z1^;            [...]
!!VRz1&y1=-1:Sz179079;        [сообщение о захвате и получении ресурсов]
!!IF&y1=-1:Q2/y3/y4/1^%Z1^;   [...]
!!VRz1&y1<>y2/y1>-1:Sz179080; [сообщение о захвате сада]
!!IF&y1<>y2/y1>-1:M^%Z1^;     [...]

!?CM0;                        [информация по ПКМ на карте/объекте]
!!UN:P879/?y1;                [проверяем включена ли опция в y1]
!!CM:F?y2;                    [тип клика 512-ПКМ]
!!FU|y1=0/y2<>512:E;          [выход, если опция не включена или не ПКМ]
!!CM:P?v2/?v3/?v4;            [v2-v4 - координаты клика]
!!FU420000:P;                 [корректировка координат]
!!OB2:T?y1;                   [y1 - тип объекта]
!!FU&y1<>112/y1<>109/y1<>55:E;[выход если клик не на мельнице/садке]
!!CM:R0;                      [отключаем стандартное ПКМ-действие]
!!PO2:O?y2;                   [y2 - владелец объекта]
!!OW:C?y3;                    [y3 - текущий игрок]
!!UN:P36/?y9;                 [y9 - проверка скрипта Mithril Enhancements]
!!PO2&y9>0:N?y10;             [y10 - пользовательское число, если Mithril Enhancements активен (см. скрипт 42wog)]
!!VRz1&y2<>y3/y1=112/y2=-1:Sz179081;[сообщение "ничейная возд. мельница"]
!!VRz1&y2<>y3/y1=112/y2>-1:Sz179084;[сообщение "чужая возд. мельница"]
!!VRz1&y2=y3/y1=112:Sz179088; [сообщение "своя ветряная мельница"]
!!VRz1&y2<>y3/y1=112/y2=-1/y10<4/y10>1:Sz179651;[сообщение "ничейная улучшенная возд. мельница"]
!!VRz1&y2<>y3/y1=112/y2>-1/y10<4/y10>1:Sz179652;[сообщение "чужая улучшенная возд. мельница"]
!!VRz1&y2=y3/y1=112/y10<4/y10>1:Sz179653; [сообщение "своя улучшенная ветряная мельница"]
!!VRz1&y2<>y3/y1=109/y2=-1:Sz179082;[сообщение "ничейная водн. мельница"]
!!VRz1&y2<>y3/y1=109/y2>-1:Sz179085;[сообщение "чужая водн. мельница"]
!!VRz1&y2=y3/y1=109:Sz179650; [сообщение "своя водн. мельница"]
!!VRz1&y2<>y3/y1=109/y2=-1/y10<4/y10>1:Sz179654;[сообщение "ничейная улучшенная водн. мельница"]
!!VRz1&y2<>y3/y1=109/y2>-1/y10<4/y10>1:Sz179655;[сообщение "чужая улучшенная водн. мельница"]
!!VRz1&y2=y3/y1=109/y10<4/y10>1:Sz179656; [сообщение "своя улучшенная водн. мельница"]
!!VRz1&y2<>y3/y1=55/y2=-1:Sz179083;[сообщение "ничейный сад"]
!!VRz1&y2<>y3/y1=55/y2>-1:Sz179086;[сообщение "чужой сад"]
!!VRz1&y2=y3/y1=55:Sz179087;  [сообщение "свой сад"]
!!PO2&y2=y3:V0/?y4 V1/?y5;    [y4/y5 - тип и количество принесенных ресурсов, если объект свой]
!!IF&y2=-1:Q2/-1/-1/4/z1;     [вывод сообщения "ничейный"]
!!IF&y3<>y2/y2>-1:Q2/10/y2/4/z1;[вывод сообщения "чужой"]
!!IF&y3=y2:Q2/y4/y5/4/z1;     [вывод сообщения "свой"]

!?TM99;                       [поставка ресурсов владельцам мельниц/садов каждый первый день недели, начиная с 8го дня]
!!UN:P879/?y1;                [проверяем включена ли опция в y1]
!!FU&y1=0:E;                  [выход, если опция не включена]
!!VRy1:Sc; !!FU&y1<2:E;       [автосбор отключен в первый день]
!!VRy1:%7; !!FU&y1<>1:E;      [автосбор ресурсов по понедельникам]
!!OW:C?y1;                    [y1 - текущий игрок]
!!UN:U112/-1/?y2;             [y2 - количество Ветряных мельниц]
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска]
!!DO7934/1/y2/1:Py1/112;      [для каждого объекта передаем ресурсы владельцу]
!!UN:U109/-1/?y2;             [y2 - количество Водных мельниц]
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска]
!!DO7934/1/y2/1:Py1/109;      [для каждого объекта передаем ресурсы владельцу]
!!UN:U55/-1/?y2;              [y2 - количество Садов лепрекона]
!!VRv1:S-1;                   [инициализация v1 для быстрого поиска]
!!DO7934/1/y2/1:Py1/55;       [для каждого объекта передаем ресурсы владельцу]

!?FU7934;                     [x1 - текущий игрок, x2 - тип объекта]
!!UN:Ux2/-1/-1/1;             [получаем координаты объекта в v1-v3]
!!PO1:O?y1;                   [y1 - владелец объекта]
!!FU&y1<>x1:E;                [выход, если текущий игрок не владелец]
!!UN:P36/?y9;                 [y9 - проверка скрипта Mithril Enhancements]
!!PO1&y9>0:N?y10;             [y10 - пользовательское число, если Mithril Enhancements активен (см. скрипт 42wog)]
!!ML1&x2=112:B?y2/?y3 By2/0;  [y2/y3 - тип/количество текущих ресурсов объекта. обнуляем количество]
!!VRy3&x2=112/y9>0/y10<4/y10>1:*2; [*2 количества ресурсов за апгрейд]
!!WM1&x2=109:B?y3 B0;         [...]
!!VRy3&x2=109:*500;           [...]
!!VRy2&x2=109:S6;             [...]
!!VRy3&x2=109/y9>0/y10<4/y10>1:*2; [х2 количества денег за апгрейд]
!!GD1&x2=55:B?y2;             [...]
!!VRy3&x2=55/y2<>6:S5;        [...]
!!VRy3&x2=55/y2=6:S500;       [...]
!!PO1:V0/y2 V1/y3;            [устанавливаем тип/количество текущих ресурсов в V0/V1 значения клетки]
!!OW:Rx1/y2/dy3;              [увеличиваем ресурсы игрока]

!?FU420000;                   Координаты объекта в v2/v3/v4 обновляются на правильные (желтый квадрат). Автор: gamecreator
; v2/v3/v4 - coords
!!UN:C6919480/4/?y1;          0x699538
!!VRy1:+130112;               0x1FC40
!!UN:Cy1/4/?y2;               y2 = map tiles
!!VRy1:+4;
!!UN:Cy1/4/?y3;               y3 = map size
!!VRy5:Sv4 *y3 +v3 *y3 +v2 *38 +y2; this object, 0x26 is tile size
!!VRv2:C0/0/0;                reuse vars
**SN:E4239120/2/?v2/y5/0/0;   thiscall 0x40AF10 (map tile, screenX?, screenY?) for struct{0,0,0}
!!SN:E5230832/2/y5; !!VRv1&v1<1:Sy5; [(c) igrik]
; v1 = yellow tile
!!VRv1:-y2 :38;               object index
!!VRv2:Sv1 %y3;               x
!!VRv3:Sv1 :y3 %y3;           y
!!VRv4:Sv1 :y3 :y3;           l

** end

</script></div>
<br />
#	Text resource for "option 879 - capture mills and gardens.erm"		<br />
179072	{Водяная Мельница}<br />
<br />
На этой неделе Водяная мельница уже отсылала золото. <br />
Новое будет только на следующей неделе.		<br />
179073	{Водяная Мельница}<br />
<br />
Вы захватили Водяную мельницу под свой контроль. <br />
Теперь каждую неделю Водяная мельница будет приносить Вам золото. <br />
Сейчас она Вам отдает:		<br />
179074	{Водяная Мельница}<br />
<br />
Вы захватили Водяную мельницу под свой контроль. <br />
Теперь каждую неделю Водяная мельница будет приносить Вам золото.		<br />
179075	{Ветряная Мельница}<br />
<br />
На этой неделе Ветряная мельница уже отсылала ресурсы. <br />
Новые будут только на следующей неделе.		<br />
179076	{Ветряная Мельница}<br />
<br />
Вы захватили Ветряную мельницу под свой контроль. <br />
Теперь каждую неделю Ветряная мельница будет приносить Вам ресурсы. <br />
Сейчас она Вам отдает:		<br />
179077	{Ветряная Мельница}<br />
<br />
Вы захватили Ветряную мельницу под свой контроль. <br />
Теперь каждую неделю Ветряная мельница будет приносить Вам ресурсы.		<br />
179078	{Мистический сад}<br />
<br />
На этой неделе Мистический сад уже отсылал ресурсы. <br />
Новые будут только на следующей неделе.		<br />
179079	{Мистический сад}<br />
<br />
Вы захватили Мистический сад под свой контроль. <br />
Теперь каждую неделю Мистический сад будет приносить Вам ресурсы. <br />
Сейчас он Вам отдает:		<br />
179080	{Мистический сад}<br />
<br />
Вы захватили Мистический сад под свой контроль. <br />
Теперь каждую неделю Мистический сад будет приносить Вам ресурсы.		<br />
179081	{Ветряная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179082	{Водяная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179083	{Мистический сад}<br />
<br />
Никому не принадлежит.		<br />
179084	{Ветряная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179085	{Водяная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179086	{Мистический сад}<br />
<br />
Принадлежит игроку:		<br />
179087	{Мистический сад}<br />
<br />
На этой неделе мистический сад принес:		<br />
179088	{Ветряная Мельница}<br />
<br />
На этой неделе ветряная мельница принесла:		<br />
179650	{Водяная Мельница}<br />
<br />
На этой неделе водяная мельница принесла:		<br />
179651	{Улучшенная Ветряная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179652	{Улучшенная Ветряная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179653	{Улучшенная Ветряная Мельница}<br />
<br />
На этой неделе ветряная мельница принесла:		<br />
179654	{Улучшенная Водяная Мельница}<br />
<br />
Никому не принадлежит.		<br />
179655	{Улучшенная Водяная Мельница}<br />
<br />
Принадлежит игроку:		<br />
179656	{Улучшенная Водяная Мельница}<br />
<br />
На этой неделе водяная мельница принесла:		<br />
179657]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Скрипт&#93; Запрет тактики «ударил и сбежал»]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6882</link>
			<pubDate>Mon, 03 Jul 2023 14:45:33 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6882</guid>
			<description><![CDATA[Если использовалось заклинание, то сбежать до действия следующего отряда не получится.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE2
; Name:     Forbid Hit'n'Run
; Author:   Berserker aka EtherniDee
; Engine:   ERM 2.0+
; Requires: ERA 3.9+, Era Erm Framework

; AI will not be able to retreat or surrender until the next stack turn if any spell was casted.
; Humans will not be able to retreat or surrender until the next round if any spell was casted.

!?FU(OnBeforeBattleUniversal)&#x26;(ERM_FLAG_REAL_BATTLE);
!!VRi^pm.isActionRedirection^:S(FALSE);

!?FU(OnBeforeBattleAction)&#x26;i^battle_round^>=(FIRST_NON_TACTICS_ROUND);
!!BG:A?(battleAction:y) Q?(actingSide:y);

!!VR(isRetreatOrSurrender:y):S(FALSE);
!!VR(isRetreatOrSurrender)|(battleAction)=(BATTLE_ACTION_RETREAT)/(battleAction)=(BATTLE_ACTION_SURRENDER):S(TRUE);

!!if&#x26;(isRetreatOrSurrender);
  !!BH(actingSide):M?(hasCasted:y);

  !!if&#x26;i^battle_human_%(actingSide)^/(hasCasted);
    !!IF:M^%T(pm.hit_and_run_warning)^;
    !!BG:A(BATTLE_ACTION_CANCEL);
  !!en;
!!el&#x26;i^battle_ai_%(actingSide)^/i^battle_hero_%(actingSide)^<>(NO_HERO);
  !!if&#x26;i^pm.isActionRedirection^;
    !!VRi^pm.isActionRedirection^:S(FALSE);
    !!BG:A(BATTLE_ACTION_HERO_CAST) Si^pm.actionSpell^ Di^pm.actionDestination^;
  !!el&#x26;(battleAction)=(BATTLE_ACTION_HERO_CAST);
    !!VRi^pm.isActionRedirection^:S(TRUE);
    !!BG:A(BATTLE_ACTION_CANCEL) S?i^pm.actionSpell^ D?i^pm.actionDestination^;
  !!en;
!!en;</script></div>]]></description>
			<content:encoded><![CDATA[Если использовалось заклинание, то сбежать до действия следующего отряда не получится.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE2
; Name:     Forbid Hit'n'Run
; Author:   Berserker aka EtherniDee
; Engine:   ERM 2.0+
; Requires: ERA 3.9+, Era Erm Framework

; AI will not be able to retreat or surrender until the next stack turn if any spell was casted.
; Humans will not be able to retreat or surrender until the next round if any spell was casted.

!?FU(OnBeforeBattleUniversal)&(ERM_FLAG_REAL_BATTLE);
!!VRi^pm.isActionRedirection^:S(FALSE);

!?FU(OnBeforeBattleAction)&i^battle_round^>=(FIRST_NON_TACTICS_ROUND);
!!BG:A?(battleAction:y) Q?(actingSide:y);

!!VR(isRetreatOrSurrender:y):S(FALSE);
!!VR(isRetreatOrSurrender)|(battleAction)=(BATTLE_ACTION_RETREAT)/(battleAction)=(BATTLE_ACTION_SURRENDER):S(TRUE);

!!if&(isRetreatOrSurrender);
  !!BH(actingSide):M?(hasCasted:y);

  !!if&i^battle_human_%(actingSide)^/(hasCasted);
    !!IF:M^%T(pm.hit_and_run_warning)^;
    !!BG:A(BATTLE_ACTION_CANCEL);
  !!en;
!!el&i^battle_ai_%(actingSide)^/i^battle_hero_%(actingSide)^<>(NO_HERO);
  !!if&i^pm.isActionRedirection^;
    !!VRi^pm.isActionRedirection^:S(FALSE);
    !!BG:A(BATTLE_ACTION_HERO_CAST) Si^pm.actionSpell^ Di^pm.actionDestination^;
  !!el&(battleAction)=(BATTLE_ACTION_HERO_CAST);
    !!VRi^pm.isActionRedirection^:S(TRUE);
    !!BG:A(BATTLE_ACTION_CANCEL) S?i^pm.actionSpell^ D?i^pm.actionDestination^;
  !!en;
!!en;</script></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Скрипт&#93; Мгновенная тактическая растановка]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6881</link>
			<pubDate>Mon, 03 Jul 2023 14:44:21 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6881</guid>
			<description><![CDATA[Позволяет быстро расставлять отряды мышкой без анимации передвижения.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE2
; Name:     Instant Tactical Alignment
; Author:   Berserker aka EtherniDee
; Engine:   ERM 2.0+
; Requires: ERA 3.9+, Era Erm Framework

; Troops are selected by LMB in tactics phase and are placed in the desired position instantly wihout moving.

; TODO: Allow LMB on active stack, allow to place wide stack [here&#93;[W&#93;[W&#93; and provide better acting side check for hot seat (non-real multiplayer)
; introduce mouse_owner

!?FU(pm_GetTacticsRange);
; Returns tactics range. Must be called only in battle.
!#VA(result:x);

!!VR(result):S0;

!!BH0:N?(leftHero:y);
!!BH1:N?(rightHero:y);

!!HE(leftHero):S(SKILL_TACTICS)/?(leftHeroTactics:y);
!!VR(rightHeroTactics:y):S0;
!!HE(rightHero)&#x26;(rightHero)>=(HERO_FIRST):S(SKILL_TACTICS)/?(rightHeroTactics);

!!VR(result):S(leftHeroTactics) -(rightHeroTactics) *2;
!!VR(result)&#x26;(result)<0:*-1;

!?FU(pm_SetStackPos);
!#VA(stackId:x);
!#VA(newPos:x);

!!BM(stackId):P(newPos);

!?FU(OnBattleScreenMouseClick)
  &#x26;i^battle_round^<(FIRST_NON_TACTICS_ROUND)
  /i^mouse_action^=(MOUSE_LMB_PRESSED)/i^mouse_flags^=(NO_MOUSE_FLAGS)
  /i^mouse_battleHex^>=(BATTLE_HEX_FIRST)/i^mouse_battleHex^<=(BATTLE_HEX_LAST)
  /i^battle_current_stack^<>(NO_STACK);

!!OW:C?t/?(thisPcPlayer:y);
!!FU&#x26;i^battle_owner_%i(battle_current_side)^<>(thisPcPlayer):E;

!!VR(hexY:y):Si^mouse_battleHex^ :(BATTLE_HEXES_PER_ROW);
!!VR(hexX:y):Si^mouse_battleHex^ %(BATTLE_HEXES_PER_ROW);

; Ignore 0-th and 16-th colums, they cannot be used for placing stacks
!!VR(edgeX:y):S(BATTLE_HEXES_PER_ROW) -1;
!!FU|(hexX)=0/(hexX)=(edgeX):E;

!!CM:R(FALSE);

!!BU:Ei^mouse_battleHex^/?(stackAtMouse:y);
!!BG:N?(currentStack:y) Q?(currentSide:y);

!!if&#x26;(stackAtMouse)<>(NO_STACK);
  !!BM(stackAtMouse):F?(stackFlags:y);
  !!VR(stackFlags):&#x26;(MON_FLAG_SIEGE_WEAPON);
  !!FU&#x26;(stackFlags)<>0:E;

  !!VR(stackSide:y):S(stackAtMouse) :(BATTLE_STACKS_PER_SIDE);
  !!FU&#x26;(stackSide)<>(currentSide):E;

  !!FU(BattleStack_MakeActive):P(stackAtMouse);
  !!FU(BattleStack_MakeActive):D(stackAtMouse);
!!el;
  !!FU(pm_GetTacticsRange):P?(tacticsRange:y);
  !!VR(newX:y):S(hexX);

  ; Compensate position offset for wide stacks: -1 for left, +1 for right
  !!BM(currentStack):F?(stackFlags:y);
  !!VR(stackFlags):&#x26;(MON_FLAG_WIDE);

  !!VR(posOffset:y):S0;
  !!VR(posOffset)&#x26;(stackFlags)<>0:S(currentSide) -1 *2 +1;
  !!VR(newX):+(posOffset);

  !!if&#x26;(currentSide)=(BATTLE_LEFT);
    !!VR(maxX:y):S1 +(tacticsRange) +(posOffset);
    !!FU|(newX)<1/(newX)>(maxX):E;
  !!el;
    !!VR(minX:y):S15 -(tacticsRange) +(posOffset);
    !!FU|(newX)<(minX)/(newX)>15:E;
  !!en;

  !!VR(newPos:y):Si^mouse_battleHex^ +(posOffset);
  !!BM(currentStack):P(newPos);
  !!FU(pm_SetStackPos):D(currentStack)/(newPos);
!!en;</script></div>]]></description>
			<content:encoded><![CDATA[Позволяет быстро расставлять отряды мышкой без анимации передвижения.<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE2
; Name:     Instant Tactical Alignment
; Author:   Berserker aka EtherniDee
; Engine:   ERM 2.0+
; Requires: ERA 3.9+, Era Erm Framework

; Troops are selected by LMB in tactics phase and are placed in the desired position instantly wihout moving.

; TODO: Allow LMB on active stack, allow to place wide stack [here][W][W] and provide better acting side check for hot seat (non-real multiplayer)
; introduce mouse_owner

!?FU(pm_GetTacticsRange);
; Returns tactics range. Must be called only in battle.
!#VA(result:x);

!!VR(result):S0;

!!BH0:N?(leftHero:y);
!!BH1:N?(rightHero:y);

!!HE(leftHero):S(SKILL_TACTICS)/?(leftHeroTactics:y);
!!VR(rightHeroTactics:y):S0;
!!HE(rightHero)&(rightHero)>=(HERO_FIRST):S(SKILL_TACTICS)/?(rightHeroTactics);

!!VR(result):S(leftHeroTactics) -(rightHeroTactics) *2;
!!VR(result)&(result)<0:*-1;

!?FU(pm_SetStackPos);
!#VA(stackId:x);
!#VA(newPos:x);

!!BM(stackId):P(newPos);

!?FU(OnBattleScreenMouseClick)
  &i^battle_round^<(FIRST_NON_TACTICS_ROUND)
  /i^mouse_action^=(MOUSE_LMB_PRESSED)/i^mouse_flags^=(NO_MOUSE_FLAGS)
  /i^mouse_battleHex^>=(BATTLE_HEX_FIRST)/i^mouse_battleHex^<=(BATTLE_HEX_LAST)
  /i^battle_current_stack^<>(NO_STACK);

!!OW:C?t/?(thisPcPlayer:y);
!!FU&i^battle_owner_%i(battle_current_side)^<>(thisPcPlayer):E;

!!VR(hexY:y):Si^mouse_battleHex^ :(BATTLE_HEXES_PER_ROW);
!!VR(hexX:y):Si^mouse_battleHex^ %(BATTLE_HEXES_PER_ROW);

; Ignore 0-th and 16-th colums, they cannot be used for placing stacks
!!VR(edgeX:y):S(BATTLE_HEXES_PER_ROW) -1;
!!FU|(hexX)=0/(hexX)=(edgeX):E;

!!CM:R(FALSE);

!!BU:Ei^mouse_battleHex^/?(stackAtMouse:y);
!!BG:N?(currentStack:y) Q?(currentSide:y);

!!if&(stackAtMouse)<>(NO_STACK);
  !!BM(stackAtMouse):F?(stackFlags:y);
  !!VR(stackFlags):&(MON_FLAG_SIEGE_WEAPON);
  !!FU&(stackFlags)<>0:E;

  !!VR(stackSide:y):S(stackAtMouse) :(BATTLE_STACKS_PER_SIDE);
  !!FU&(stackSide)<>(currentSide):E;

  !!FU(BattleStack_MakeActive):P(stackAtMouse);
  !!FU(BattleStack_MakeActive):D(stackAtMouse);
!!el;
  !!FU(pm_GetTacticsRange):P?(tacticsRange:y);
  !!VR(newX:y):S(hexX);

  ; Compensate position offset for wide stacks: -1 for left, +1 for right
  !!BM(currentStack):F?(stackFlags:y);
  !!VR(stackFlags):&(MON_FLAG_WIDE);

  !!VR(posOffset:y):S0;
  !!VR(posOffset)&(stackFlags)<>0:S(currentSide) -1 *2 +1;
  !!VR(newX):+(posOffset);

  !!if&(currentSide)=(BATTLE_LEFT);
    !!VR(maxX:y):S1 +(tacticsRange) +(posOffset);
    !!FU|(newX)<1/(newX)>(maxX):E;
  !!el;
    !!VR(minX:y):S15 -(tacticsRange) +(posOffset);
    !!FU|(newX)<(minX)/(newX)>15:E;
  !!en;

  !!VR(newPos:y):Si^mouse_battleHex^ +(posOffset);
  !!BM(currentStack):P(newPos);
  !!FU(pm_SetStackPos):D(currentStack)/(newPos);
!!en;</script></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Новые свойства для бланковых артефактов WoG]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6405</link>
			<pubDate>Mon, 01 Nov 2021 00:24:40 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6405</guid>
			<description><![CDATA[Доброго всем дня!<br />
Я являюсь давним поклонником игры WoG версии 3.58f и по совету друзей решил обратиться к вам за помощью. <br />
Дело в том, что в игре есть 10 пустых артефактов и у меня появилась идея их «оживить».<br />
Почитав help по ERM и прошерстив форумы я нашел много полезной информации и скриптов,<br />
Которые мне сильно помогли для осуществления идеи. Я увлекаюсь программированием в Delphi и C++, но скрипты еще не писал, поэтому меня это заинтересовало вдвойне. <br />
По замыслу артефакты должны иметь следующие названия и свойства:<br />
161 – Шлем Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Лазурного дракона. Стоимость 35000 золота.<br />
162 – Меч Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Барона Ада. Стоимость 35000 золота.<br />
163 – Щит Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Духу Погребального Костра. Стоимость 35000 золота.<br />
164 – Перстень Тамплиера. Дает + 5 ко всем параметрам героя и максимальную удачу герою. Стоимость 35000 золота. <br />
165 – Кольцо Тамплиера. Дает + 5 ко всем параметрам героя и максимальный боевой дух. Стоимость 35000 золота.<br />
166 – Ожерелье Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Драколича. Стоимость 35000 золота.<br />
167 – Кираса Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Громовержца. Стоимость 35000 золота.<br />
168 – Сюрко Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Кошмарную Гидру. Стоимость 35000 золота.<br />
169 – Сабатоны Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Верховного Архангела. Стоимость 35000 золота.<br />
170 – Призывный Рог Тамплиера. Дает + 5 ко всем параметрам героя. В начале недели дает + 5 ко всем ресурсам и 10000 золота. Стоимость 35000 золота.<br />
В дальнейшем есть идея, чтобы они собирались в сборный артефакт «Доспехи Тамплиера», который будет давать герою эксперта всех стихий и в начале каждой битвы кастовать на врага<br />
Яд, страх, болезнь и кислотную атаку. <br />
Пока что удалось увеличивать параметры героя и частично получилось реализовать прирост существ у героя в начале каждой недели.<br />
Не могу разобраться почему не дают существ 167(Кираса) и 168(Сюрко) артефакты. Там какая-то ерунда с командой !!OW: I-1/?v10; Если везде ставить I-1, то ошибку выдает сразу после WoGификации, если чередовать I-1 и I-0, то работает, но не всех существ дает.<br />
Таймер ставлю в конце скрипта, где идет описание последнего артефакта, иначе существа каждый день прибавляются.<br />
Помогите разобраться в чем причина?<br />
<div class="notranslate"><div class="spoiler_header">Скрипт прилагается: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE 
AUTO_PoweredBy=ERM Script Editor v.1.2.6.32 
!#VRz10:S^Шлем Тамплиера^; 
!#VRz11:S^{Шлем Тамплиера} 
Приносит по 1 Лазурному Дракону в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A161/1/35000; 
!#UN:A161/3/16; 
!#UN:A161/9/10; 
!#UN:A161/10/11; 
!#VRv20:S1*65536+132; 
!!OW:I-1/?v10; 
!!VRv11:S0; 
!!DO10/0/155/1&#x26;v10=0:P; 
!?FU10; 
!!HEv11:A2/161/d/?v12; 
!!HEv11&#x26;v12=1:C2/132/1/0; 
!!HEv11&#x26;v12=1:O?v13; 
!!OW&#x26;v12=1:Iv13/?v14; 
!!HEv11&#x26;v12=1/v14=0:B0/?z10; 
!!IF&#x26;v12=1/v14=0:Q1/21/v20/1^К герою по имени %Z10 присоединяется Лазурный Дракон, благодаря Шлему Тамплиера.^; 
!!VRv11:Sd1; 
!?AE1&#x26;v998=161; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=161; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz30:S^Меч Тамплиера^; 
!#VRz31:S^{Меч Тамплиера} 
Приносит по 1 Барону Ада в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A162/1/35000; 
!#UN:A162/3/16; 
!#UN:A162/9/30; 
!#UN:A162/10/31; 
!#VRv21:S1*65536+153; 
!!OW:I-0/?v30; 
!!VRv31:S0; 
!!DO11/0/155/1&#x26;v30=0:P; 
!?FU11; 
!!HEv31:A2/162/d/?v32; 
!!HEv31&#x26;v32=1:C2/153/1/0; 
!!HEv31&#x26;v32=1:O?v33; 
!!OW&#x26;v32=1:Iv33/?v34; 
!!HEv31&#x26;v32=1/v34=0:B0/?z30; 
!!IF&#x26;v32=1/v34=0:Q1/21/v21/1^К герою по имени %Z30 присоединяется Барон Ада, благодаря Мечу Тамплиера.^; 
!!VRv31:Sd1; 
!?AE1&#x26;v998=162; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=162; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz40:S^Щит Тамплиера^; 
!#VRz41:S^{Щит Тамплиера} 
Приносит по 1 Духу Погребального Костра в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A163/1/35000; 
!#UN:A163/3/16; 
!#UN:A163/9/40; 
!#UN:A163/10/41; 
!#VRv22:S1*65536+158; 
!!OW:I-1/?v40; 
!!VRv41:S0; 
!!DO12/0/155/1&#x26;v40=0:P; 
!?FU12; 
!!HEv41:A2/163/d/?v42; 
!!HEv41&#x26;v42=1:C2/158/1/0; 
!!HEv41&#x26;v42=1:O?v43; 
!!OW&#x26;v42=1:Iv43/?v44; 
!!HEv41&#x26;v42=1/v44=0:B0/?z40; 
!!IF&#x26;v42=1/v44=0:Q1/21/v22/1^К герою по имени %Z40 присоединяется Дух Погребального Костра, благодаря Щиту Тамплиера.^; 
!!VRv41:Sd1; 
!?AE1&#x26;v998=163; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=163; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz60:S^Сюрко Тамплиера^; 
!#VRz61:S^{Сюрко Тамплиера} 
Приносит по 1 Кошмарной Гидре в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A168/1/35000; 
!#UN:A168/3/16; 
!#UN:A168/9/60; 
!#UN:A168/10/61; 
!#VRv24:S1*65536+157; 
!!OW:I-0/?v60; 
!!VRv61:S0; 
!!DO14/0/155/1&#x26;v60=0:P; 
!?FU14; 
!!HEv61:A2/168/d/?v62; 
!!HEv61&#x26;v62=1:C2/157/1/0; 
!!HEv61&#x26;v62=1:O?v63; 
!!OW&#x26;v62=1:Iv63/?v64; 
!!HEv61&#x26;v62=1/v64=0:B0/?z60; 
!!IF&#x26;v62=1/v64=0:Q1/21/v24/1^К герою по имени %Z60 присоединяется Кошмарная Гидра, благодаря Сюрко Тамплиера.^; 
!!VRv61:Sd1; 
!?AE1&#x26;v998=168; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=168; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz70:S^Сабатоны Тамплиера^; 
!#VRz71:S^{Сабатоны Тамплиера} 
Приносит по 1 Верховному Архангелу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A169/1/35000; 
!#UN:A169/3/16; 
!#UN:A169/9/70; 
!#UN:A169/10/71; 
!#VRv25:S1*65536+150; 
!!OW:I-1/?v70; 
!!VRv71:S0; 
!!DO15/0/155/1&#x26;v70=0:P; 
!?FU15; 
!!HEv71:A2/169/d/?v72; 
!!HEv71&#x26;v72=1:C2/150/1/0; 
!!HEv71&#x26;v72=1:O?v73; 
!!OW&#x26;v72=1:Iv73/?v74; 
!!HEv71&#x26;v72=1/v74=0:B0/?z70; 
!!IF&#x26;v72=1/v74=0:Q1/21/v25/1^К герою по имени %Z70 присоединяется Верховный Архангел, благодаря Сабатонам Тамплиера.^; 
!!VRv71:Sd1; 
!?AE1&#x26;v998=169; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=169; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz80:S^Ожерелье Тамплиера^; 
!#VRz81:S^{Ожерелье Тамплиера} 
Приносит по 1 Драколичу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A166/1/35000; 
!#UN:A166/3/16; 
!#UN:A166/9/80; 
!#UN:A166/10/81; 
!#VRv26:S1*65536+196; 
!!OW:I-1/?v80; 
!!VRv81:S0; 
!!DO16/0/155/1&#x26;v80=0:P; 
!?FU16; 
!!HEv81:A2/166/d/?v82; 
!!HEv81&#x26;v82=1:C2/196/1/0; 
!!HEv81&#x26;v82=1:O?v83; 
!!OW&#x26;v82=1:Iv83/?v84; 
!!HEv81&#x26;v82=1/v84=0:B0/?z80; 
!!IF&#x26;v82=1/v84=0:Q1/21/v26/1^К герою по имени %Z80 присоединяется Драколич, благодаря Ожерелью Тамплиера.^; 
!!VRv81:Sd1; 
!?AE1&#x26;v998=166; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=166; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz700:S^Кираса Тамплиера^; 
!#VRz710:S^{Кираса Тамплиера} 
Приносит по 1 Громовержцу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A167/1/35000; 
!#UN:A167/3/16; 
!#UN:A167/9/700; 
!#UN:A167/10/710; 
!#VRv27:S1*65536+152; 
!#TM10:S1/999/7/255; 
!?TM10; 
!!OW:I-1/?v700; 
!!VRv710:S0; 
!!DO17/0/155/1&#x26;v700=0:P; 
!?FU17; 
!!HEv710:A2/170/d/?v720; 
!!HEv710&#x26;v720=1:C2/152/1/0; 
!!HEv710&#x26;v720=1:O?v730; 
!!OW&#x26;v720=1:Iv730/?v740; 
!!HEv710&#x26;v720=1/v740=0:B0/?z700; 
!!IF&#x26;v720=1/v740=0:Q1/21/v27/1^К герою по имени %Z700 присоединяется Громовержец, благодаря Кирасе Тамплиера.^; 
!!VRv710:Sd1; 
!?AE1&#x26;v998=167; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&#x26;v998=167; 
!!HE-1:Fd-5/d-5/d-5/d-5;</script></div></div></div>]]></description>
			<content:encoded><![CDATA[Доброго всем дня!<br />
Я являюсь давним поклонником игры WoG версии 3.58f и по совету друзей решил обратиться к вам за помощью. <br />
Дело в том, что в игре есть 10 пустых артефактов и у меня появилась идея их «оживить».<br />
Почитав help по ERM и прошерстив форумы я нашел много полезной информации и скриптов,<br />
Которые мне сильно помогли для осуществления идеи. Я увлекаюсь программированием в Delphi и C++, но скрипты еще не писал, поэтому меня это заинтересовало вдвойне. <br />
По замыслу артефакты должны иметь следующие названия и свойства:<br />
161 – Шлем Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Лазурного дракона. Стоимость 35000 золота.<br />
162 – Меч Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Барона Ада. Стоимость 35000 золота.<br />
163 – Щит Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Духу Погребального Костра. Стоимость 35000 золота.<br />
164 – Перстень Тамплиера. Дает + 5 ко всем параметрам героя и максимальную удачу герою. Стоимость 35000 золота. <br />
165 – Кольцо Тамплиера. Дает + 5 ко всем параметрам героя и максимальный боевой дух. Стоимость 35000 золота.<br />
166 – Ожерелье Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Драколича. Стоимость 35000 золота.<br />
167 – Кираса Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Громовержца. Стоимость 35000 золота.<br />
168 – Сюрко Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Кошмарную Гидру. Стоимость 35000 золота.<br />
169 – Сабатоны Тамплиера. Дает + 5 ко всем параметрам героя. В начале каждой недели дает 1 Верховного Архангела. Стоимость 35000 золота.<br />
170 – Призывный Рог Тамплиера. Дает + 5 ко всем параметрам героя. В начале недели дает + 5 ко всем ресурсам и 10000 золота. Стоимость 35000 золота.<br />
В дальнейшем есть идея, чтобы они собирались в сборный артефакт «Доспехи Тамплиера», который будет давать герою эксперта всех стихий и в начале каждой битвы кастовать на врага<br />
Яд, страх, болезнь и кислотную атаку. <br />
Пока что удалось увеличивать параметры героя и частично получилось реализовать прирост существ у героя в начале каждой недели.<br />
Не могу разобраться почему не дают существ 167(Кираса) и 168(Сюрко) артефакты. Там какая-то ерунда с командой !!OW: I-1/?v10; Если везде ставить I-1, то ошибку выдает сразу после WoGификации, если чередовать I-1 и I-0, то работает, но не всех существ дает.<br />
Таймер ставлю в конце скрипта, где идет описание последнего артефакта, иначе существа каждый день прибавляются.<br />
Помогите разобраться в чем причина?<br />
<div class="notranslate"><div class="spoiler_header">Скрипт прилагается: <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">
<div style="background-color: #fff"><script type="erm" id="erm0">ZVSE 
AUTO_PoweredBy=ERM Script Editor v.1.2.6.32 
!#VRz10:S^Шлем Тамплиера^; 
!#VRz11:S^{Шлем Тамплиера} 
Приносит по 1 Лазурному Дракону в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A161/1/35000; 
!#UN:A161/3/16; 
!#UN:A161/9/10; 
!#UN:A161/10/11; 
!#VRv20:S1*65536+132; 
!!OW:I-1/?v10; 
!!VRv11:S0; 
!!DO10/0/155/1&v10=0:P; 
!?FU10; 
!!HEv11:A2/161/d/?v12; 
!!HEv11&v12=1:C2/132/1/0; 
!!HEv11&v12=1:O?v13; 
!!OW&v12=1:Iv13/?v14; 
!!HEv11&v12=1/v14=0:B0/?z10; 
!!IF&v12=1/v14=0:Q1/21/v20/1^К герою по имени %Z10 присоединяется Лазурный Дракон, благодаря Шлему Тамплиера.^; 
!!VRv11:Sd1; 
!?AE1&v998=161; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=161; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz30:S^Меч Тамплиера^; 
!#VRz31:S^{Меч Тамплиера} 
Приносит по 1 Барону Ада в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A162/1/35000; 
!#UN:A162/3/16; 
!#UN:A162/9/30; 
!#UN:A162/10/31; 
!#VRv21:S1*65536+153; 
!!OW:I-0/?v30; 
!!VRv31:S0; 
!!DO11/0/155/1&v30=0:P; 
!?FU11; 
!!HEv31:A2/162/d/?v32; 
!!HEv31&v32=1:C2/153/1/0; 
!!HEv31&v32=1:O?v33; 
!!OW&v32=1:Iv33/?v34; 
!!HEv31&v32=1/v34=0:B0/?z30; 
!!IF&v32=1/v34=0:Q1/21/v21/1^К герою по имени %Z30 присоединяется Барон Ада, благодаря Мечу Тамплиера.^; 
!!VRv31:Sd1; 
!?AE1&v998=162; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=162; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz40:S^Щит Тамплиера^; 
!#VRz41:S^{Щит Тамплиера} 
Приносит по 1 Духу Погребального Костра в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A163/1/35000; 
!#UN:A163/3/16; 
!#UN:A163/9/40; 
!#UN:A163/10/41; 
!#VRv22:S1*65536+158; 
!!OW:I-1/?v40; 
!!VRv41:S0; 
!!DO12/0/155/1&v40=0:P; 
!?FU12; 
!!HEv41:A2/163/d/?v42; 
!!HEv41&v42=1:C2/158/1/0; 
!!HEv41&v42=1:O?v43; 
!!OW&v42=1:Iv43/?v44; 
!!HEv41&v42=1/v44=0:B0/?z40; 
!!IF&v42=1/v44=0:Q1/21/v22/1^К герою по имени %Z40 присоединяется Дух Погребального Костра, благодаря Щиту Тамплиера.^; 
!!VRv41:Sd1; 
!?AE1&v998=163; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=163; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz60:S^Сюрко Тамплиера^; 
!#VRz61:S^{Сюрко Тамплиера} 
Приносит по 1 Кошмарной Гидре в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A168/1/35000; 
!#UN:A168/3/16; 
!#UN:A168/9/60; 
!#UN:A168/10/61; 
!#VRv24:S1*65536+157; 
!!OW:I-0/?v60; 
!!VRv61:S0; 
!!DO14/0/155/1&v60=0:P; 
!?FU14; 
!!HEv61:A2/168/d/?v62; 
!!HEv61&v62=1:C2/157/1/0; 
!!HEv61&v62=1:O?v63; 
!!OW&v62=1:Iv63/?v64; 
!!HEv61&v62=1/v64=0:B0/?z60; 
!!IF&v62=1/v64=0:Q1/21/v24/1^К герою по имени %Z60 присоединяется Кошмарная Гидра, благодаря Сюрко Тамплиера.^; 
!!VRv61:Sd1; 
!?AE1&v998=168; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=168; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz70:S^Сабатоны Тамплиера^; 
!#VRz71:S^{Сабатоны Тамплиера} 
Приносит по 1 Верховному Архангелу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A169/1/35000; 
!#UN:A169/3/16; 
!#UN:A169/9/70; 
!#UN:A169/10/71; 
!#VRv25:S1*65536+150; 
!!OW:I-1/?v70; 
!!VRv71:S0; 
!!DO15/0/155/1&v70=0:P; 
!?FU15; 
!!HEv71:A2/169/d/?v72; 
!!HEv71&v72=1:C2/150/1/0; 
!!HEv71&v72=1:O?v73; 
!!OW&v72=1:Iv73/?v74; 
!!HEv71&v72=1/v74=0:B0/?z70; 
!!IF&v72=1/v74=0:Q1/21/v25/1^К герою по имени %Z70 присоединяется Верховный Архангел, благодаря Сабатонам Тамплиера.^; 
!!VRv71:Sd1; 
!?AE1&v998=169; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=169; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz80:S^Ожерелье Тамплиера^; 
!#VRz81:S^{Ожерелье Тамплиера} 
Приносит по 1 Драколичу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A166/1/35000; 
!#UN:A166/3/16; 
!#UN:A166/9/80; 
!#UN:A166/10/81; 
!#VRv26:S1*65536+196; 
!!OW:I-1/?v80; 
!!VRv81:S0; 
!!DO16/0/155/1&v80=0:P; 
!?FU16; 
!!HEv81:A2/166/d/?v82; 
!!HEv81&v82=1:C2/196/1/0; 
!!HEv81&v82=1:O?v83; 
!!OW&v82=1:Iv83/?v84; 
!!HEv81&v82=1/v84=0:B0/?z80; 
!!IF&v82=1/v84=0:Q1/21/v26/1^К герою по имени %Z80 присоединяется Драколич, благодаря Ожерелью Тамплиера.^; 
!!VRv81:Sd1; 
!?AE1&v998=166; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=166; 
!!HE-1:Fd-5/d-5/d-5/d-5; 
 
 
!#VRz700:S^Кираса Тамплиера^; 
!#VRz710:S^{Кираса Тамплиера} 
Приносит по 1 Громовержцу в неделю, прибавляет ко всем первичным навыкам по 5.^; 
!#UN:A167/1/35000; 
!#UN:A167/3/16; 
!#UN:A167/9/700; 
!#UN:A167/10/710; 
!#VRv27:S1*65536+152; 
!#TM10:S1/999/7/255; 
!?TM10; 
!!OW:I-1/?v700; 
!!VRv710:S0; 
!!DO17/0/155/1&v700=0:P; 
!?FU17; 
!!HEv710:A2/170/d/?v720; 
!!HEv710&v720=1:C2/152/1/0; 
!!HEv710&v720=1:O?v730; 
!!OW&v720=1:Iv730/?v740; 
!!HEv710&v720=1/v740=0:B0/?z700; 
!!IF&v720=1/v740=0:Q1/21/v27/1^К герою по имени %Z700 присоединяется Громовержец, благодаря Кирасе Тамплиера.^; 
!!VRv710:Sd1; 
!?AE1&v998=167; 
!!HE-1:Fd5/d5/d5/d5; 
!?AE0&v998=167; 
!!HE-1:Fd-5/d-5/d-5/d-5;</script></div></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Fnord's 3.59 WoG Scripts]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6392</link>
			<pubDate>Sun, 10 Oct 2021 10:13:39 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6392</guid>
			<description><![CDATA[Скрипты писались под ВоГ 3.59, но так и не вышли в свет.<br />
Скачать: <a href="https://mods.hmm35.ru/fnord_359_wog_scripts.zip" target="_blank">https://mods.hmm35.ru/fnord_359_wog_scripts.zip</a>]]></description>
			<content:encoded><![CDATA[Скрипты писались под ВоГ 3.59, но так и не вышли в свет.<br />
Скачать: <a href="https://mods.hmm35.ru/fnord_359_wog_scripts.zip" target="_blank">https://mods.hmm35.ru/fnord_359_wog_scripts.zip</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Panda™ UN:C to BIN конвертер]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=6006</link>
			<pubDate>Sat, 22 May 2021 12:43:46 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=6006</guid>
			<description><![CDATA[Простые наборы UN:C-команд можно преобразовать в bin-патч онлайн, воспользовавшись <a href="https://tools.hmm35.ru/unc-to-bin/index.html" target="_blank">следующим сервисом</a>.<br />
<br />
От создателей нашумевшего антивируса и одноимённых сборок Эры.]]></description>
			<content:encoded><![CDATA[Простые наборы UN:C-команд можно преобразовать в bin-патч онлайн, воспользовавшись <a href="https://tools.hmm35.ru/unc-to-bin/index.html" target="_blank">следующим сервисом</a>.<br />
<br />
От создателей нашумевшего антивируса и одноимённых сборок Эры.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Сложные скрипты (справочник)]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5972</link>
			<pubDate>Sun, 11 Apr 2021 13:06:01 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5972</guid>
			<description><![CDATA[Данная тема является справочником, содержащем примеры готовых скриптов. Скрипты, выкладываемые здесь, должны быть хорошо прокомментированы, хорошо структурированы, а также не быть банальными. Использование команд <span style="font-weight: bold;">UN:C</span>, <span style="font-weight: bold;">SN:E</span> и <span style="font-weight: bold;">SN:К </span> приветствуется.<br />
<br />
<br />
В качестве примера возьму скрипт, найденный на просторах этого форума, и доработанный мной. Суть скрипта - поиск наиболее короткого маршрута от одного гекса до другого в бою, суть моей поправки - раньше скрипт <span style="font-weight: bold;">всегда </span>считал замковые ворота препятствием, но теперь это не так. Решение проблемы заключалось в отказе от BU:О и использовании вместо этой команды SN:E4625904[...&#93;.<br />
<br />
<span style="font-size: large;"><span style="text-decoration: underline;"><span style="color: red;">Узнать расстояние между двумя гексами на поле боя</span>:</span></span><br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">** Автор: Algor, обновил: Raistlin
** получение пройденного расстояния между двумя гексами
** по алгоритму, который привел в FizMiG'е AlexSpl
** FU8888-FU8891
!?FU8888;                              [получение пройденного расстояния между двумя гексами&#93;
; x1 - исходный гекс (1..185)
; x2 - целевой гекс (1..185)
; x3 - ширина существа (1..2)
; x4 - расстояние или -1(гекс не доступен) или -2 (гекс занят/за полем)
!!BU:Ex1/?y1;                          [номер отряда в исходной позиции&#93;
!!VRy2:Sx1;                            [для одногексового отряда 2й исходный гекс совпадает с первым&#93;
!!VRy2&#x26;y1>=0/y1<21/x3=2:+1;            [y2 - 2й исходный гекс для атакующего двугексового существа&#93;
!!VRy2&#x26;y1>20/x3=2:-1;                  [y2 - 2й исходный гекс для защищающегося двугексового существа&#93;
!!DO8889/0/186/1:Px3;                  [инициализация сетки значениями -1(не определено) и -2 (не доступно)&#93;
!!SN:W^alg%X1^/0 W^alg%Y2^/0;          [инициализация исходных гексов (расстояние 0)&#93;
!!DO8890/1/30/1:Px2;                   [расчет значений сетки (30 итераций)&#93;
!!SN:W^alg%X2^/?x4;                    [возврат в x4 значения целевого гекса&#93;

!?FU8889;                              [установка значения -1(не определено) или -2 (не доступно) для гекса x16&#93;
!!BU:Ex16/?y1;                         [y1/y2 - отряд/препятствие в гексе&#93;
!!UN:C6919200/4/?y50;                  [менеджер Битвы&#93;
!!SN:E4625904/2/y50/x16;               [вызов функции IsHexNotFree&#93;
!!VRy2:Sv1 *2;                         [y2=2, если на позиции препятствие&#93;
!!VRy3:Sx16 %17;                       [y3 = 0 или 16 если гекс за пределами поля&#93;
!!VRy5:S0;
!!VRy5|y1>=0/y2=2/y3=0/y3=16:S2;       [y5=2 для недоступного гекса&#93;
!!if&#x26;x1=2/y5<2:;                       [для двугексовых существ определяем доступность еще и по соседним гексам&#93;
  !!VRy4:Sx16 -1;                      [y4 - номер левого гекса&#93;
  !!BU:Ey4/?y1;                        [y1/y2 - отряд/препятствие в гексе&#93;
  !!SN:E4625904/2/y50/y4;              [вызов функции IsHexNotFree&#93;
  !!VRy2:Sv1 *2;                       [y2=2, если на позиции препятствие&#93;
  !!VRy3:Sy4 %17;                      [y3 = 0 или 16 если гекс за пределами поля&#93;
  !!VRy5|y1>=0/y2=2/y3=0/y3=16:+1;     [y5++, если левый гекс не доступен&#93;
  !!VRy4:Sx16 +1;                      [y4 - номер правого гекса&#93;
  !!BU:Ey4/?y1;                        [y1/y2 - отряд/препятствие в гексе&#93;
  !!SN:E4625904/2/y50/y4;              [вызов функции IsHexNotFree&#93;
  !!VRy2:Sv1 *2;                       [y2=2, если на позиции препятствие&#93;
  !!VRy3:Sy4 %17;                      [y3 = 0 или 16 если гекс за пределами поля&#93;
  !!VRy5|y1>=0/y2=2/y3=0/y3=16:+1;     [y5++, если левый гекс не доступен&#93;
!!en:;
!!SN&#x26;y5<2:W^alg%X16^/-1;               [значение гекса "не определено"&#93;
!!SN&#x26;y5>=2/x16<>96:W^alg%X16^/-2;      [значение гекса "не доступно"&#93;
!!SN&#x26;x16=96/v1=1:W^alg%X16^/-2;        [значение гекса "не доступно" для ворот&#93;

!?FU8890;                              [расчет значений сетки&#93;
!!SN:W^alg%X1^/?y1;                    [текущее значение целевого гекса&#93;
!!FU&#x26;y1>=0:E;                          [выход, если расстояние до текущего гекса уже определилось&#93;
!!DO8891/1/185/1:P;                    [для каждого гекса определяем расстояния от исходного по соседним значениям&#93;

!?FU8891;                              [расчет значения гекса x16&#93;
!!SN:W^alg%X16^/?y1;                   [y1 - текущее значение гекса&#93;
!!FU&#x26;y1<>-1:E;                         [выход, если значение уже определено&#93;
!!VRy1:Sx16 :17 %2;                    [y1 - четность ряда проверяемого гекса&#93;
!!VRy10:S100;                          [y10 - инициализация значения большим числом&#93;
!!VRy2:Sx16 -1;                        [y2 - левый гекс&#93;
!!SN:W^alg%Y2^/?y9;                    [y9 - значение гекса&#93;
!!VRy10&#x26;y9<y10/y9>=0:Sy9;              [y10 - минимальное значение соседнего гекса&#93;
!!VRy2:Sx16 +1;                        [y2 - правый гекс&#93;
!!SN:W^alg%Y2^/?y9;                    [y9 - значение гекса&#93;
!!VRy10&#x26;y9<y10/y9>=0:Sy9;              [y10 - минимальное значение соседнего гекса&#93;
!!VRy2:Sx16 -17 -y1;                   [y2 - левый верхний гекс&#93;
!!SN&#x26;y2>=0:W^alg%Y2^/?y9;              [y9 - значение гекса&#93;
!!VRy10&#x26;y2>=0/y9<y10/y9>=0:Sy9;        [y10 - минимальное значение соседнего гекса&#93;
!!VRy2:Sx16 -16 -y1;                   [y2 - правый верхний гекс&#93;
!!SN&#x26;y2>=0:W^alg%Y2^/?y9;              [y9 - значение гекса&#93;
!!VRy10&#x26;y2>=0/y9<y10/y9>=0:Sy9;        [y10 - минимальное значение соседнего гекса&#93;
!!VRy2:Sx16 +17 -y1;                   [y2 - левый нижний гекс&#93;
!!SN&#x26;y2<187:W^alg%Y2^/?y9;             [y9 - значение гекса&#93;
!!VRy10&#x26;y2<187/y9<y10/y9>=0:Sy9;       [y10 - минимальное значение соседнего гекса&#93;
!!VRy2:Sx16 +18 -y1;                   [y2 - правый нижний гекс&#93;
!!SN&#x26;y2<187:W^alg%Y2^/?y9;             [y9 - значение гекса&#93;
!!VRy10&#x26;y2<187/y9<y10/y9>=0:Sy9;       [y10 - минимальное значение соседнего гекса&#93;
!!VRy10&#x26;y10<100:+1;                    [если значение гекса определилось...&#93;
!!SN&#x26;y10<100:W^alg%X16^/y10;           [...устанавливаем его&#93;

!?CM4;                                 [ДЕМОНСТРАЦИЯ: при ПКМ на гексе выводит пешее расстояние до него от текущего отряда&#93;
!!BG:N?y1;                             [y1 - текущий отряд&#93;
!!BMy1:P?y4 F?y5;                      [y4 - исходный гекс, y5 - флаги отряда&#93;
!!VRy5:&#x26;1 +1;                          [y5 - размер отряда (1..2)&#93;
!!CM:D?y3 S?y2;                        [y3/y2 - место/тип клика&#93;
!!FU&#x26;y2<>14:E;                         [выход, если не ПКМ&#93;
!!FU8888:Py4/y3/y5/?y6;                [y6 - пройденное расстояние&#93;
!!IF:M^Расстояние: %Y6 (%Y4 -> %Y3, %Y5-hex)^; [вывод сообщения&#93;</script></div>
<br />
<br />
<br />
Также приведу пример из моего собственного кода.<br />
<span style="font-size: large;"><span style="text-decoration: underline;"><span style="color: red;">Реализация абилки Астральных Элементалей из WoG UE</span>:</span></span><br />
<br />
<div class="notranslate"><div class="spoiler_header">Что за абилка <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Астральные Элементали - улучшенные Магические Элементали - имеют свойство вызывать собственных клонов в начале каждого раунда битвы. </div></div>
<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!?BR&#x26;v997>0; При каждом раунде, начиная со второго
!!re v10/0/41:; Проходимся по стекам
 !!BMv10:T?y1; Тип монстра в текущем стеке
 !!if&#x26;y1=251:; Если Астральный Элементаль
  !!BMv10:F?y2; Получаем флаги
  !!VRy2:&#x26;8388608; Клон?
  !!co&#x26;y2<>0:; Пропускаем клонов
  !!BMv10:N?y3; Количество оставшихся монстров
  !!co&#x26;y3=0:; Пропускаем мертвые стеки
  !!BMv10:P?y4; Позиция текущего стека
  !!UN:C6919200/4/?y5; Менеджер битвы
  !!VRy6&#x26;v10<21:S21692; Корректируем смещение
  !!VRy6&#x26;v10>20:S21696;
  !!UN:Cy5/y6/4/?y7; Узнаем количество стеков у текущей стороны
  !!SN&#x26;y7<20:E5926784/2/y5/y4/50; Если не 20, вызываем клон
 !!en:;
!!en:;</script></div>]]></description>
			<content:encoded><![CDATA[Данная тема является справочником, содержащем примеры готовых скриптов. Скрипты, выкладываемые здесь, должны быть хорошо прокомментированы, хорошо структурированы, а также не быть банальными. Использование команд <span style="font-weight: bold;">UN:C</span>, <span style="font-weight: bold;">SN:E</span> и <span style="font-weight: bold;">SN:К </span> приветствуется.<br />
<br />
<br />
В качестве примера возьму скрипт, найденный на просторах этого форума, и доработанный мной. Суть скрипта - поиск наиболее короткого маршрута от одного гекса до другого в бою, суть моей поправки - раньше скрипт <span style="font-weight: bold;">всегда </span>считал замковые ворота препятствием, но теперь это не так. Решение проблемы заключалось в отказе от BU:О и использовании вместо этой команды SN:E4625904[...].<br />
<br />
<span style="font-size: large;"><span style="text-decoration: underline;"><span style="color: red;">Узнать расстояние между двумя гексами на поле боя</span>:</span></span><br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">** Автор: Algor, обновил: Raistlin
** получение пройденного расстояния между двумя гексами
** по алгоритму, который привел в FizMiG'е AlexSpl
** FU8888-FU8891
!?FU8888;                              [получение пройденного расстояния между двумя гексами]
; x1 - исходный гекс (1..185)
; x2 - целевой гекс (1..185)
; x3 - ширина существа (1..2)
; x4 - расстояние или -1(гекс не доступен) или -2 (гекс занят/за полем)
!!BU:Ex1/?y1;                          [номер отряда в исходной позиции]
!!VRy2:Sx1;                            [для одногексового отряда 2й исходный гекс совпадает с первым]
!!VRy2&y1>=0/y1<21/x3=2:+1;            [y2 - 2й исходный гекс для атакующего двугексового существа]
!!VRy2&y1>20/x3=2:-1;                  [y2 - 2й исходный гекс для защищающегося двугексового существа]
!!DO8889/0/186/1:Px3;                  [инициализация сетки значениями -1(не определено) и -2 (не доступно)]
!!SN:W^alg%X1^/0 W^alg%Y2^/0;          [инициализация исходных гексов (расстояние 0)]
!!DO8890/1/30/1:Px2;                   [расчет значений сетки (30 итераций)]
!!SN:W^alg%X2^/?x4;                    [возврат в x4 значения целевого гекса]

!?FU8889;                              [установка значения -1(не определено) или -2 (не доступно) для гекса x16]
!!BU:Ex16/?y1;                         [y1/y2 - отряд/препятствие в гексе]
!!UN:C6919200/4/?y50;                  [менеджер Битвы]
!!SN:E4625904/2/y50/x16;               [вызов функции IsHexNotFree]
!!VRy2:Sv1 *2;                         [y2=2, если на позиции препятствие]
!!VRy3:Sx16 %17;                       [y3 = 0 или 16 если гекс за пределами поля]
!!VRy5:S0;
!!VRy5|y1>=0/y2=2/y3=0/y3=16:S2;       [y5=2 для недоступного гекса]
!!if&x1=2/y5<2:;                       [для двугексовых существ определяем доступность еще и по соседним гексам]
  !!VRy4:Sx16 -1;                      [y4 - номер левого гекса]
  !!BU:Ey4/?y1;                        [y1/y2 - отряд/препятствие в гексе]
  !!SN:E4625904/2/y50/y4;              [вызов функции IsHexNotFree]
  !!VRy2:Sv1 *2;                       [y2=2, если на позиции препятствие]
  !!VRy3:Sy4 %17;                      [y3 = 0 или 16 если гекс за пределами поля]
  !!VRy5|y1>=0/y2=2/y3=0/y3=16:+1;     [y5++, если левый гекс не доступен]
  !!VRy4:Sx16 +1;                      [y4 - номер правого гекса]
  !!BU:Ey4/?y1;                        [y1/y2 - отряд/препятствие в гексе]
  !!SN:E4625904/2/y50/y4;              [вызов функции IsHexNotFree]
  !!VRy2:Sv1 *2;                       [y2=2, если на позиции препятствие]
  !!VRy3:Sy4 %17;                      [y3 = 0 или 16 если гекс за пределами поля]
  !!VRy5|y1>=0/y2=2/y3=0/y3=16:+1;     [y5++, если левый гекс не доступен]
!!en:;
!!SN&y5<2:W^alg%X16^/-1;               [значение гекса "не определено"]
!!SN&y5>=2/x16<>96:W^alg%X16^/-2;      [значение гекса "не доступно"]
!!SN&x16=96/v1=1:W^alg%X16^/-2;        [значение гекса "не доступно" для ворот]

!?FU8890;                              [расчет значений сетки]
!!SN:W^alg%X1^/?y1;                    [текущее значение целевого гекса]
!!FU&y1>=0:E;                          [выход, если расстояние до текущего гекса уже определилось]
!!DO8891/1/185/1:P;                    [для каждого гекса определяем расстояния от исходного по соседним значениям]

!?FU8891;                              [расчет значения гекса x16]
!!SN:W^alg%X16^/?y1;                   [y1 - текущее значение гекса]
!!FU&y1<>-1:E;                         [выход, если значение уже определено]
!!VRy1:Sx16 :17 %2;                    [y1 - четность ряда проверяемого гекса]
!!VRy10:S100;                          [y10 - инициализация значения большим числом]
!!VRy2:Sx16 -1;                        [y2 - левый гекс]
!!SN:W^alg%Y2^/?y9;                    [y9 - значение гекса]
!!VRy10&y9<y10/y9>=0:Sy9;              [y10 - минимальное значение соседнего гекса]
!!VRy2:Sx16 +1;                        [y2 - правый гекс]
!!SN:W^alg%Y2^/?y9;                    [y9 - значение гекса]
!!VRy10&y9<y10/y9>=0:Sy9;              [y10 - минимальное значение соседнего гекса]
!!VRy2:Sx16 -17 -y1;                   [y2 - левый верхний гекс]
!!SN&y2>=0:W^alg%Y2^/?y9;              [y9 - значение гекса]
!!VRy10&y2>=0/y9<y10/y9>=0:Sy9;        [y10 - минимальное значение соседнего гекса]
!!VRy2:Sx16 -16 -y1;                   [y2 - правый верхний гекс]
!!SN&y2>=0:W^alg%Y2^/?y9;              [y9 - значение гекса]
!!VRy10&y2>=0/y9<y10/y9>=0:Sy9;        [y10 - минимальное значение соседнего гекса]
!!VRy2:Sx16 +17 -y1;                   [y2 - левый нижний гекс]
!!SN&y2<187:W^alg%Y2^/?y9;             [y9 - значение гекса]
!!VRy10&y2<187/y9<y10/y9>=0:Sy9;       [y10 - минимальное значение соседнего гекса]
!!VRy2:Sx16 +18 -y1;                   [y2 - правый нижний гекс]
!!SN&y2<187:W^alg%Y2^/?y9;             [y9 - значение гекса]
!!VRy10&y2<187/y9<y10/y9>=0:Sy9;       [y10 - минимальное значение соседнего гекса]
!!VRy10&y10<100:+1;                    [если значение гекса определилось...]
!!SN&y10<100:W^alg%X16^/y10;           [...устанавливаем его]

!?CM4;                                 [ДЕМОНСТРАЦИЯ: при ПКМ на гексе выводит пешее расстояние до него от текущего отряда]
!!BG:N?y1;                             [y1 - текущий отряд]
!!BMy1:P?y4 F?y5;                      [y4 - исходный гекс, y5 - флаги отряда]
!!VRy5:&1 +1;                          [y5 - размер отряда (1..2)]
!!CM:D?y3 S?y2;                        [y3/y2 - место/тип клика]
!!FU&y2<>14:E;                         [выход, если не ПКМ]
!!FU8888:Py4/y3/y5/?y6;                [y6 - пройденное расстояние]
!!IF:M^Расстояние: %Y6 (%Y4 -> %Y3, %Y5-hex)^; [вывод сообщения]</script></div>
<br />
<br />
<br />
Также приведу пример из моего собственного кода.<br />
<span style="font-size: large;"><span style="text-decoration: underline;"><span style="color: red;">Реализация абилки Астральных Элементалей из WoG UE</span>:</span></span><br />
<br />
<div class="notranslate"><div class="spoiler_header">Что за абилка <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Астральные Элементали - улучшенные Магические Элементали - имеют свойство вызывать собственных клонов в начале каждого раунда битвы. </div></div>
<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!?BR&v997>0; При каждом раунде, начиная со второго
!!re v10/0/41:; Проходимся по стекам
 !!BMv10:T?y1; Тип монстра в текущем стеке
 !!if&y1=251:; Если Астральный Элементаль
  !!BMv10:F?y2; Получаем флаги
  !!VRy2:&8388608; Клон?
  !!co&y2<>0:; Пропускаем клонов
  !!BMv10:N?y3; Количество оставшихся монстров
  !!co&y3=0:; Пропускаем мертвые стеки
  !!BMv10:P?y4; Позиция текущего стека
  !!UN:C6919200/4/?y5; Менеджер битвы
  !!VRy6&v10<21:S21692; Корректируем смещение
  !!VRy6&v10>20:S21696;
  !!UN:Cy5/y6/4/?y7; Узнаем количество стеков у текущей стороны
  !!SN&y7<20:E5926784/2/y5/y4/50; Если не 20, вызываем клон
 !!en:;
!!en:;</script></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Расширение ERM]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5933</link>
			<pubDate>Sun, 07 Feb 2021 10:27:27 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5933</guid>
			<description><![CDATA[Привет, друзья!<br />
У меня тут некоторое время назад возникла мысль, что ERM можно и расширить - когда я сам только-только начинал писать скрипты, мне для моих замашек многого не хватало: я тогда не был программистом, а потому слово "функция" пугала меня, и я даже не пытался с этим разобраться. Точно так же было с командой UN:C и вообще всеми командами, предполагающими работу с памятью. Я еще помню те ощущения и потому принял решение хотя бы попытаться решить эту проблему.<br />
<br />
На данный момент у меня готовы две полноценные команды и есть пара идей на будущее. Скачать расширение ERM еще нельзя - подождите несколько дней, пока я протестирую весь функционал. <br />
<br />
<span style="font-size: large;"><span style="color: #FF1493;">Итак, ресивер FC (Fraction Controller):</span></span><br />
<br />
<span style="font-weight: bold;">#</span> - Тип города<br />
<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">B0/&#36;</span></span> – Установить/проверить/получить артефакт, покупаемый в кузнице<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">B1/&#36;</span></span> – Установить/проверить/получить сушество, показываемое в кузнице<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">C&#36;1/&#36;2/&#36;3/&#36;4</span></span> – Координаты зданий. &#36;1 – Номер здания, &#36;2 – Количество кадров в def'е, &#36;3 – Позиция X, &#36;4 – Позиция Y. Если какой-то параметр не надо модифицировать, можно использовать число -1 или d0 <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">D&#36;1/&#36;2</span></span> – Установить/проверить/получить приоритет отображения строений. &#36;1 – Индекс элемента массива, &#36;2 – Номер строения (в скором времени у данной команды появится пояснительный комментарий)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H0/&#36;1/&#36;2</span></span> – Прирост в "орде 1". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H1/&#36;1/&#36;2</span></span> – Прирост в "орде 2". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H2/&#36;1/&#36;2</span></span> – Уровень сушеств в "орде 1". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H3/&#36;1/&#36;2</span></span> – Уровень сушеств в "орде 2". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H4/&#36;1/&#36;2/&#36;3</span></span> – Тип простых &#36;2 и улучшенных &#36;3 существ в орде &#36;1 (1/2)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M</span></span> – Получить в v1 тип рва (2, 1, нет)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M0/#</span></span> – Установить тип рва (2, 1, нет)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M1/&#36;</span></span> – Установить/проверить/получить урон от рва <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">R&#36;1/&#36;2</span></span> – Установить/проверить/получить ресурсы в хранилище. &#36;1 - тип (0-6), &#36;2 - количество<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">S&#36;</span></span> – Установить/проверить/получить существо в стрелковой башне<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">T&#36;</span></span> – Установить/проверить/получить родную почву<br />
<br />
<br />
<span style="color: #9400D3;"><span style="font-weight: bold;">Об использовании:</span></span><br />
Данный ресивер задумывался не столько для изменения шаблонов городов, сколько для работы в тандеме с ассоциативными массивами. Впрочем, благодаря ему многие вещи теперь действительно можно реализовать без плагинов и патчей.<br />
<br />
<span style="font-weight: bold;"><span style="color: #9400D3;">Как это можно использовать (идеи опций):</span></span><br />
- Улучшение хранилища ресурсов за мифрил<br />
- Выбор ресурса в хранилище<br />
- С помощью FC:C и SN:R можно реализовать альтернативы с полноценными жилищами в городах (как в Tides of War), надо просто выставлять значения в OnPreTownScreen в зависимости от обитателя жилища<br />
- FC:М - улучшение рва (например, тоже за мифрил)<br />
- FC:В - добавление новых боевых машин<br />
<br />
<span style="font-weight: bold;"><span style="color: #9400D3;">Примеры использования:</span></span><br />
<div style="background-color: #fff"><script type="erm" id="erm0">!!FC0:B1/7; Установить замку Крестоносца в кузню
!!FC8:S8;В башнях сопряжения сидят монахи
!!FC1:R4/1000;Хранилище ресурсов оплота приносит 1000 кристаллов
!!FC2:H0/10/10;Крылья ваятеля увеличивают прирост горгулий на 10</script></div>
<br />
<br />
<span style="font-size: large;"><span style="color: #FF1493;">Ресивер PR (Prison):</span></span><br />
<br />
#1/#2/#3 - Координаты тюрьмы на карте. Можно использовать и 1 параметр - номер v-переменной<br />
<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!PR</span>#1/#2/#3:<span style="font-family: arial;">H&#36;</span></span> – Установить/проверить/получить номер героя<br />
<br />
<br />
<span style="font-size: medium;"><span style="color: #1E90FF;">Также я планирую ввести команды <span style="font-weight: bold;">OB:Z</span> (Получение структуры объекта), <span style="font-weight: bold;">MA:W</span> (Разрешение для появления в генераторе случайных монстров) и <span style="font-weight: bold;">WH:N</span> (Работа с номером объекта на карте у хижин ведьм).</span></span><br />
<br />
Пишите, что думаете по этому поводу, а также, каких команд вам не хватает. Я с удовольствием добавлю еще что-нибудь интересненькое. <img src="http://wforum.heroes35.net/images/smilies/115.gif" style="vertical-align: middle;" border="0" alt="115" title="115" />]]></description>
			<content:encoded><![CDATA[Привет, друзья!<br />
У меня тут некоторое время назад возникла мысль, что ERM можно и расширить - когда я сам только-только начинал писать скрипты, мне для моих замашек многого не хватало: я тогда не был программистом, а потому слово "функция" пугала меня, и я даже не пытался с этим разобраться. Точно так же было с командой UN:C и вообще всеми командами, предполагающими работу с памятью. Я еще помню те ощущения и потому принял решение хотя бы попытаться решить эту проблему.<br />
<br />
На данный момент у меня готовы две полноценные команды и есть пара идей на будущее. Скачать расширение ERM еще нельзя - подождите несколько дней, пока я протестирую весь функционал. <br />
<br />
<span style="font-size: large;"><span style="color: #FF1493;">Итак, ресивер FC (Fraction Controller):</span></span><br />
<br />
<span style="font-weight: bold;">#</span> - Тип города<br />
<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">B0/&#36;</span></span> – Установить/проверить/получить артефакт, покупаемый в кузнице<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">B1/&#36;</span></span> – Установить/проверить/получить сушество, показываемое в кузнице<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">C&#36;1/&#36;2/&#36;3/&#36;4</span></span> – Координаты зданий. &#36;1 – Номер здания, &#36;2 – Количество кадров в def'е, &#36;3 – Позиция X, &#36;4 – Позиция Y. Если какой-то параметр не надо модифицировать, можно использовать число -1 или d0 <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">D&#36;1/&#36;2</span></span> – Установить/проверить/получить приоритет отображения строений. &#36;1 – Индекс элемента массива, &#36;2 – Номер строения (в скором времени у данной команды появится пояснительный комментарий)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H0/&#36;1/&#36;2</span></span> – Прирост в "орде 1". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H1/&#36;1/&#36;2</span></span> – Прирост в "орде 2". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H2/&#36;1/&#36;2</span></span> – Уровень сушеств в "орде 1". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H3/&#36;1/&#36;2</span></span> – Уровень сушеств в "орде 2". &#36;1 неулучшенное существо, &#36;2 – улучшенное <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">H4/&#36;1/&#36;2/&#36;3</span></span> – Тип простых &#36;2 и улучшенных &#36;3 существ в орде &#36;1 (1/2)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M</span></span> – Получить в v1 тип рва (2, 1, нет)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M0/#</span></span> – Установить тип рва (2, 1, нет)<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">M1/&#36;</span></span> – Установить/проверить/получить урон от рва <br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">R&#36;1/&#36;2</span></span> – Установить/проверить/получить ресурсы в хранилище. &#36;1 - тип (0-6), &#36;2 - количество<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">S&#36;</span></span> – Установить/проверить/получить существо в стрелковой башне<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!FC</span>#:<span style="font-family: arial;">T&#36;</span></span> – Установить/проверить/получить родную почву<br />
<br />
<br />
<span style="color: #9400D3;"><span style="font-weight: bold;">Об использовании:</span></span><br />
Данный ресивер задумывался не столько для изменения шаблонов городов, сколько для работы в тандеме с ассоциативными массивами. Впрочем, благодаря ему многие вещи теперь действительно можно реализовать без плагинов и патчей.<br />
<br />
<span style="font-weight: bold;"><span style="color: #9400D3;">Как это можно использовать (идеи опций):</span></span><br />
- Улучшение хранилища ресурсов за мифрил<br />
- Выбор ресурса в хранилище<br />
- С помощью FC:C и SN:R можно реализовать альтернативы с полноценными жилищами в городах (как в Tides of War), надо просто выставлять значения в OnPreTownScreen в зависимости от обитателя жилища<br />
- FC:М - улучшение рва (например, тоже за мифрил)<br />
- FC:В - добавление новых боевых машин<br />
<br />
<span style="font-weight: bold;"><span style="color: #9400D3;">Примеры использования:</span></span><br />
<div style="background-color: #fff"><script type="erm" id="erm0">!!FC0:B1/7; Установить замку Крестоносца в кузню
!!FC8:S8;В башнях сопряжения сидят монахи
!!FC1:R4/1000;Хранилище ресурсов оплота приносит 1000 кристаллов
!!FC2:H0/10/10;Крылья ваятеля увеличивают прирост горгулий на 10</script></div>
<br />
<br />
<span style="font-size: large;"><span style="color: #FF1493;">Ресивер PR (Prison):</span></span><br />
<br />
#1/#2/#3 - Координаты тюрьмы на карте. Можно использовать и 1 параметр - номер v-переменной<br />
<br />
<span style="font-weight: bold;"><span style="color: darkblue;">!!PR</span>#1/#2/#3:<span style="font-family: arial;">H&#36;</span></span> – Установить/проверить/получить номер героя<br />
<br />
<br />
<span style="font-size: medium;"><span style="color: #1E90FF;">Также я планирую ввести команды <span style="font-weight: bold;">OB:Z</span> (Получение структуры объекта), <span style="font-weight: bold;">MA:W</span> (Разрешение для появления в генераторе случайных монстров) и <span style="font-weight: bold;">WH:N</span> (Работа с номером объекта на карте у хижин ведьм).</span></span><br />
<br />
Пишите, что думаете по этому поводу, а также, каких команд вам не хватает. Я с удовольствием добавлю еще что-нибудь интересненькое. <img src="http://wforum.heroes35.net/images/smilies/115.gif" style="vertical-align: middle;" border="0" alt="115" title="115" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Скрипт штрафа за переигровку]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5777</link>
			<pubDate>Sun, 30 Aug 2020 10:56:02 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5777</guid>
			<description><![CDATA[<blockquote><cite><span> (30.08.2020 13:21)</span>Bes Wrote: <a href="http://wforum.heroes35.net/showthread.php?pid=115628#pid115628" class="quick_jump">&nbsp;</a></cite>кстати, а вот мне понравилось, что при переигровке были лишние монстры - ибо не фиг, защита от дурака эдакая <img src="http://wforum.heroes35.net/images/smilies/148.gif" style="vertical-align: middle;" border="0" alt="148" title="148" /></blockquote>
Случайно прочел это сообщение. И вдруг подумал, что и правда был бы хороший скрипт (опционально), чтобы при переигровке с каждым разом увеличивался штраф для игрока. Потому что я играю без переигровок, а так, вроде бы честно и игровой момент, типа воззвание богам повернуть время вспять, но за это враг усилился. Только опыт не должен расти, чтобы этим не пользоваться, как читом. ))<br />
<br />
И всем спасибо за все. Даже не представляю, как бы я сейчас играл на том старом воге, хотя впечатления самые сильные были именно там, возраст, вероятно ))]]></description>
			<content:encoded><![CDATA[<blockquote><cite><span> (30.08.2020 13:21)</span>Bes Wrote: <a href="http://wforum.heroes35.net/showthread.php?pid=115628#pid115628" class="quick_jump">&nbsp;</a></cite>кстати, а вот мне понравилось, что при переигровке были лишние монстры - ибо не фиг, защита от дурака эдакая <img src="http://wforum.heroes35.net/images/smilies/148.gif" style="vertical-align: middle;" border="0" alt="148" title="148" /></blockquote>
Случайно прочел это сообщение. И вдруг подумал, что и правда был бы хороший скрипт (опционально), чтобы при переигровке с каждым разом увеличивался штраф для игрока. Потому что я играю без переигровок, а так, вроде бы честно и игровой момент, типа воззвание богам повернуть время вспять, но за это враг усилился. Только опыт не должен расти, чтобы этим не пользоваться, как читом. ))<br />
<br />
И всем спасибо за все. Даже не представляю, как бы я сейчас играл на том старом воге, хотя впечатления самые сильные были именно там, возраст, вероятно ))]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Баллиста и её двойной урон]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5704</link>
			<pubDate>Sun, 19 Jul 2020 12:43:02 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5704</guid>
			<description><![CDATA[Может ли кто-то подсказать, навык Артиллерия дает 50%,75%,100% шанс баллисте нанести двойной урони дает двойной выстрел, можно ли как-то это отключить или выставить этот шанс 0% для всех уровней навыка Артиллерия? Я нашел только <a href="http://wforum.heroes35.net/showthread.php?tid=5118&amp;pid=101871#pid101871" target="_blank">вот это сообщение</a>, но там нет артиллерии как и в Fun_SetSecSkillValue.erm <img src="http://wforum.heroes35.net/images/smilies/bad.gif" style="vertical-align: middle;" border="0" alt="Bad" title="Bad" />]]></description>
			<content:encoded><![CDATA[Может ли кто-то подсказать, навык Артиллерия дает 50%,75%,100% шанс баллисте нанести двойной урони дает двойной выстрел, можно ли как-то это отключить или выставить этот шанс 0% для всех уровней навыка Артиллерия? Я нашел только <a href="http://wforum.heroes35.net/showthread.php?tid=5118&amp;pid=101871#pid101871" target="_blank">вот это сообщение</a>, но там нет артиллерии как и в Fun_SetSecSkillValue.erm <img src="http://wforum.heroes35.net/images/smilies/bad.gif" style="vertical-align: middle;" border="0" alt="Bad" title="Bad" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Школа ERM 2]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5671</link>
			<pubDate>Sat, 04 Jul 2020 22:45:07 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5671</guid>
			<description><![CDATA[<span style="color: #0000CD;"><span style="font-weight: bold;">Вопрос: как преобразовать скрипт из ERM 1 в ERM 2?</span></span><br />
<span style="color: green;"><span style="font-weight: bold;">Ответ</span></span>: <span style="text-decoration: underline;">Заменить ZVSE на ZVSE2</span>. После чего убедиться, что именованные функции соответствуют указанному ниже стилю.<br />
<br />
<span style="font-style: italic;">OnSomeEvent</span>, <span style="font-style: italic;">DoSomeWork </span>— стиль оформления, зарезервированный за Эрой, её событиями и функциями.<br />
<br />
<span style="font-style: italic;">mod_OnSomeEvent</span>, <span style="font-style: italic;">MOD_OnSomeEvent</span>, <span style="font-style: italic;">mod_CountHeroes</span>, <span style="font-style: italic;">mod_TeleportStack </span>— так нужно именовать функции вашего мода или библиотеки. Здесь mod/MOD — уникальный префикс.<br />
<br />
Примеры возможных префиксов:<br />
<span style="font-style: italic;">acm_ </span>- Advanced Classes Mod.<br />
<span style="font-style: italic;">pm_ </span>- Phoenix Mod.<br />
<span style="font-style: italic;">wog_ </span>- WoG<br />
<span style="font-style: italic;">thu </span>- Third Upgrades]]></description>
			<content:encoded><![CDATA[<span style="color: #0000CD;"><span style="font-weight: bold;">Вопрос: как преобразовать скрипт из ERM 1 в ERM 2?</span></span><br />
<span style="color: green;"><span style="font-weight: bold;">Ответ</span></span>: <span style="text-decoration: underline;">Заменить ZVSE на ZVSE2</span>. После чего убедиться, что именованные функции соответствуют указанному ниже стилю.<br />
<br />
<span style="font-style: italic;">OnSomeEvent</span>, <span style="font-style: italic;">DoSomeWork </span>— стиль оформления, зарезервированный за Эрой, её событиями и функциями.<br />
<br />
<span style="font-style: italic;">mod_OnSomeEvent</span>, <span style="font-style: italic;">MOD_OnSomeEvent</span>, <span style="font-style: italic;">mod_CountHeroes</span>, <span style="font-style: italic;">mod_TeleportStack </span>— так нужно именовать функции вашего мода или библиотеки. Здесь mod/MOD — уникальный префикс.<br />
<br />
Примеры возможных префиксов:<br />
<span style="font-style: italic;">acm_ </span>- Advanced Classes Mod.<br />
<span style="font-style: italic;">pm_ </span>- Phoenix Mod.<br />
<span style="font-style: italic;">wog_ </span>- WoG<br />
<span style="font-style: italic;">thu </span>- Third Upgrades]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Баги в оригинальных скриптах WoG]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5640</link>
			<pubDate>Tue, 16 Jun 2020 19:35:37 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5640</guid>
			<description><![CDATA[Привет всем, некоторое время назад я занялся скриптом, работа которого была связана с "Учеными", и обнаружил, что иногда что-то где-то не срастается... Игра не вылетала, но и не работала. Как оказалось, в одном из скриптов была допущена неточность, из-за которой, собственно, и возникала проблема.<div style="background-color: #fff"><script type="erm" id="erm0"> [Loop through Scholars and substitute a non-banned spell of the same level&#93;
 [to replace any banned spell, or if none available, a secondary skill intead&#93;
!?FU10806;

!!UN:U81/-1/-1/2; [Store coordinates of next Scholar in v2/v3/v4&#93;
!!SCv2/v3/v4:T?y1 L?y2; [Get type of Scholar (y1) and spell taught (y2), if any&#93;
!!VRy2:-1024; [Обратите внимание на эту строку&#93;
!!VRy3:S0; [Clear y3&#93;

!!UN&#x26;y1=2/y2=0:P152/?y3; [Check for banned Summon Boat    - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=7:P153/?y3; [Check for banned Water Walk     - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=9:P154/?y3; [Check for banned Town Portal    - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=8:P155/?y3; [Check for banned Dimension Door - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=6:P156/?y3; [Check for banned Fly            - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=1:P221/?y3; [Check for banned Scuttle Boat   - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=2:P222/?y3; [Check for banned Visions        - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=26:P223/?y3; [Check for banned Armageddon    - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=5:P246/?y3; [Check for banned View Air       - y3=1 if banned&#93;
!!UN&#x26;y1=2/y2=3:P247/?y3; [Check for banned View Earth     - y3=1 if banned&#93;

!!FU7779&#x26;y3=1:Py2; [Check level of banned spell: y-96&#93;
!!FU$spell$&#x26;y3=1:Py-96/y-96/0/0/1; [Generate new non-banned spell of same level: y-99&#93;
!!SCv2/v3/v4&#x26;y3=1/y-99>=0:T2 Ly-99; [Give Scholar new Spell unless all are banned (y-99)&#93;

 [If all spells of same level banned (y-99=-1), give a skill instead&#93;
!!VRy4&#x26;y3=1/y-99<0:S0 R27; [Random # from 1 to 27 for Secondary Skill replacement (y4)&#93;
!!SCv2/v3/v4&#x26;y3=1/y-99<0:T1 Sy4; [Give Scholar Secondary Skill (y4)&#93;</script></div>
Как мы можем здесь видеть, из номера заклинания, хранящегося у ученого, вычетается 1024, однако при установке нового значения 1024 не добавляется. Соответсвенно, все "обработанные" ученые будут впоследствии источником головной боли.<br />
<br />
Правльно будет сделать так:<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!!FU7779&#x26;y3=1:Py2; [Check level of banned spell: y-96&#93;
!!FU$spell$&#x26;y3=1:Py-96/y-96/0/0/1; [Generate new non-banned spell of same level: y-99&#93;
!!VRy-99:+1024; [Решение проблемы&#93;
!!SCv2/v3/v4&#x26;y3=1/y-99>=0:T2 Ly-99; [Give Scholar new Spell unless all are banned (y-99)&#93;</script></div>
<br />
В общем, предлагаю собрать в этой теме все найденные ошибки и разобраться с ними раз и навсегда.]]></description>
			<content:encoded><![CDATA[Привет всем, некоторое время назад я занялся скриптом, работа которого была связана с "Учеными", и обнаружил, что иногда что-то где-то не срастается... Игра не вылетала, но и не работала. Как оказалось, в одном из скриптов была допущена неточность, из-за которой, собственно, и возникала проблема.<div style="background-color: #fff"><script type="erm" id="erm0"> [Loop through Scholars and substitute a non-banned spell of the same level]
 [to replace any banned spell, or if none available, a secondary skill intead]
!?FU10806;

!!UN:U81/-1/-1/2; [Store coordinates of next Scholar in v2/v3/v4]
!!SCv2/v3/v4:T?y1 L?y2; [Get type of Scholar (y1) and spell taught (y2), if any]
!!VRy2:-1024; [Обратите внимание на эту строку]
!!VRy3:S0; [Clear y3]

!!UN&y1=2/y2=0:P152/?y3; [Check for banned Summon Boat    - y3=1 if banned]
!!UN&y1=2/y2=7:P153/?y3; [Check for banned Water Walk     - y3=1 if banned]
!!UN&y1=2/y2=9:P154/?y3; [Check for banned Town Portal    - y3=1 if banned]
!!UN&y1=2/y2=8:P155/?y3; [Check for banned Dimension Door - y3=1 if banned]
!!UN&y1=2/y2=6:P156/?y3; [Check for banned Fly            - y3=1 if banned]
!!UN&y1=2/y2=1:P221/?y3; [Check for banned Scuttle Boat   - y3=1 if banned]
!!UN&y1=2/y2=2:P222/?y3; [Check for banned Visions        - y3=1 if banned]
!!UN&y1=2/y2=26:P223/?y3; [Check for banned Armageddon    - y3=1 if banned]
!!UN&y1=2/y2=5:P246/?y3; [Check for banned View Air       - y3=1 if banned]
!!UN&y1=2/y2=3:P247/?y3; [Check for banned View Earth     - y3=1 if banned]

!!FU7779&y3=1:Py2; [Check level of banned spell: y-96]
!!FU$spell$&y3=1:Py-96/y-96/0/0/1; [Generate new non-banned spell of same level: y-99]
!!SCv2/v3/v4&y3=1/y-99>=0:T2 Ly-99; [Give Scholar new Spell unless all are banned (y-99)]

 [If all spells of same level banned (y-99=-1), give a skill instead]
!!VRy4&y3=1/y-99<0:S0 R27; [Random # from 1 to 27 for Secondary Skill replacement (y4)]
!!SCv2/v3/v4&y3=1/y-99<0:T1 Sy4; [Give Scholar Secondary Skill (y4)]</script></div>
Как мы можем здесь видеть, из номера заклинания, хранящегося у ученого, вычетается 1024, однако при установке нового значения 1024 не добавляется. Соответсвенно, все "обработанные" ученые будут впоследствии источником головной боли.<br />
<br />
Правльно будет сделать так:<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!!FU7779&y3=1:Py2; [Check level of banned spell: y-96]
!!FU$spell$&y3=1:Py-96/y-96/0/0/1; [Generate new non-banned spell of same level: y-99]
!!VRy-99:+1024; [Решение проблемы]
!!SCv2/v3/v4&y3=1/y-99>=0:T2 Ly-99; [Give Scholar new Spell unless all are banned (y-99)]</script></div>
<br />
В общем, предлагаю собрать в этой теме все найденные ошибки и разобраться с ними раз и навсегда.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Скрипт «Боевой Дух»]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5449</link>
			<pubDate>Mon, 03 Feb 2020 18:16:53 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5449</guid>
			<description><![CDATA[<span style="color: #FF0000;"><span style="font-size: medium;"><span style="font-weight: bold;">«Боевой Дух»</span></span></span><br />
<br />
Новвоведения:<br />
-) Новое событие !?FU(fm9_OnAfterBattleStackFinalAction).<br />
; x1 - номер отряда, который совершил действие, закончившее его ход (0..41)<br />
; x2 - номер отряда, который должен получить ход<br />
; x3 - ID действия<br />
<br />
В этом событии можно проверить, жив ли действовавший отряд, было ли действие атакой и вызвать функцию FireMorale.<br />
<br />
-) Новая функция FireMorale (x1 - номер отряда).<br />
Вызывает на отряд мораль (повторный ход), если отряд не должен и так ходить в настоящий момент (например, у него и без того сработала мораль).<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!?FU(OnBeforeBattleUniversal);
!!SN:W^fm9_morale_stack_index^/-1 W^fm9_had_battle_action^/0;

!?FU(OnBeforeBattleAction);
!!BG:N?y1 A?y2;
!!SN:W^fm9_had_battle_action^/1 W^fm9_acting_stack^/y1 W^fm9_battle_action^/y2;

!?FU(OnBattleStackObtainsTurn);
; x1 - side
; x2 - stack ID relative to side
!!VRy2:Sx1 *21 +x2; y2 - current stack
!!SN:W^fm9_had_battle_action^/?h W^fm9_acting_stack^/?s W^fm9_battle_action^/?k;
!!FU(fm9_OnAfterBattleStackFinalAction)&#x26;h=1:Ps/y2/k;

!!SN:W^fm9_morale_stack_index^/?y1 W^fm9_morale_stack_index^/-1; y1 - stack to fire morale on
!!FU|y1=-1/y2=y1:E; exit if moraled stack is current stack or no moraled stack at all

; play animation and sound
!!SN:P^GoodMrle.wav^;
!!BMy1:V20;

; give turn to moraled stack
!!VRx1:Sy1 :21;
!!VRx2:Sy1 %21;

!?FU(FireMorale);
; Forces specified stack to take turn with morale animation and sound
; x1 - stack ID (0..41)
!!SN:W^fm9_morale_stack_index^/x1;

!?FU(fm9_OnAfterBattleStackFinalAction);
; x1 - acted stack ID (0..41)
; x2 - current stack ID
; x3 - action ID</script></div>
Пример: пусть любой отряд имеет 50% шанс пойти дважды!<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!?FU(fm9_OnAfterBattleStackFinalAction);
; x1 - acted stack ID (0..41)
; x2 - current stack ID
; x3 - action ID
!!BMx1:N?n;
!!FU&#x26;n<=0:E; don't handle dead stacks
!!FU&#x26;x3<>2/x3<>6/x3<>7:E; only active stacks matter
!!VRy1:S1 R99;
!!FU(FireMorale)&#x26;y1<=50:Px1;</script></div>]]></description>
			<content:encoded><![CDATA[<span style="color: #FF0000;"><span style="font-size: medium;"><span style="font-weight: bold;">«Боевой Дух»</span></span></span><br />
<br />
Новвоведения:<br />
-) Новое событие !?FU(fm9_OnAfterBattleStackFinalAction).<br />
; x1 - номер отряда, который совершил действие, закончившее его ход (0..41)<br />
; x2 - номер отряда, который должен получить ход<br />
; x3 - ID действия<br />
<br />
В этом событии можно проверить, жив ли действовавший отряд, было ли действие атакой и вызвать функцию FireMorale.<br />
<br />
-) Новая функция FireMorale (x1 - номер отряда).<br />
Вызывает на отряд мораль (повторный ход), если отряд не должен и так ходить в настоящий момент (например, у него и без того сработала мораль).<br />
<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!?FU(OnBeforeBattleUniversal);
!!SN:W^fm9_morale_stack_index^/-1 W^fm9_had_battle_action^/0;

!?FU(OnBeforeBattleAction);
!!BG:N?y1 A?y2;
!!SN:W^fm9_had_battle_action^/1 W^fm9_acting_stack^/y1 W^fm9_battle_action^/y2;

!?FU(OnBattleStackObtainsTurn);
; x1 - side
; x2 - stack ID relative to side
!!VRy2:Sx1 *21 +x2; y2 - current stack
!!SN:W^fm9_had_battle_action^/?h W^fm9_acting_stack^/?s W^fm9_battle_action^/?k;
!!FU(fm9_OnAfterBattleStackFinalAction)&h=1:Ps/y2/k;

!!SN:W^fm9_morale_stack_index^/?y1 W^fm9_morale_stack_index^/-1; y1 - stack to fire morale on
!!FU|y1=-1/y2=y1:E; exit if moraled stack is current stack or no moraled stack at all

; play animation and sound
!!SN:P^GoodMrle.wav^;
!!BMy1:V20;

; give turn to moraled stack
!!VRx1:Sy1 :21;
!!VRx2:Sy1 %21;

!?FU(FireMorale);
; Forces specified stack to take turn with morale animation and sound
; x1 - stack ID (0..41)
!!SN:W^fm9_morale_stack_index^/x1;

!?FU(fm9_OnAfterBattleStackFinalAction);
; x1 - acted stack ID (0..41)
; x2 - current stack ID
; x3 - action ID</script></div>
Пример: пусть любой отряд имеет 50% шанс пойти дважды!<br />
<div style="background-color: #fff"><script type="erm" id="erm1">!?FU(fm9_OnAfterBattleStackFinalAction);
; x1 - acted stack ID (0..41)
; x2 - current stack ID
; x3 - action ID
!!BMx1:N?n;
!!FU&n<=0:E; don't handle dead stacks
!!FU&x3<>2/x3<>6/x3<>7:E; only active stacks matter
!!VRy1:S1 R99;
!!FU(FireMorale)&y1<=50:Px1;</script></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Быстрая вогификация карты]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5349</link>
			<pubDate>Sat, 07 Sep 2019 17:58:29 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5349</guid>
			<description><![CDATA[Кому надоело долго ждать окончания вогификации больших карт, можете попробовать заменить стандартный скрипт 78 wog - wogify.erm на этот:<br />
<a href="https://yadi.sk/d/hKG3y9Xvn0u2XA" target="_blank">https://yadi.sk/d/hKG3y9Xvn0u2XA</a><br />
Карты будут вогифицироваться быстрее.<br />
Скрипт ничего не меняет в игре и не портит совместимость ни с чем.<br />
Но если сторонние моды подменяют скрипт вогификации (например ERA scripts Rus, WoG Revised, WoG Plus), то естественно оптимизация не сработает.<br />
<br />
Upd: Для пользователей сборки <span style="font-weight: bold;">daemon_n</span> неактуально, поскольку необходимые правки уже внесены в сборку.]]></description>
			<content:encoded><![CDATA[Кому надоело долго ждать окончания вогификации больших карт, можете попробовать заменить стандартный скрипт 78 wog - wogify.erm на этот:<br />
<a href="https://yadi.sk/d/hKG3y9Xvn0u2XA" target="_blank">https://yadi.sk/d/hKG3y9Xvn0u2XA</a><br />
Карты будут вогифицироваться быстрее.<br />
Скрипт ничего не меняет в игре и не портит совместимость ни с чем.<br />
Но если сторонние моды подменяют скрипт вогификации (например ERA scripts Rus, WoG Revised, WoG Plus), то естественно оптимизация не сработает.<br />
<br />
Upd: Для пользователей сборки <span style="font-weight: bold;">daemon_n</span> неактуально, поскольку необходимые правки уже внесены в сборку.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Конвертер скриптов в ERA-формат]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5432</link>
			<pubDate>Thu, 08 Aug 2019 17:02:47 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5432</guid>
			<description><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Доступные сервисы:</span></span><br />
<br />
<a href="https://tools.hmm35.ru/scripts-extractor/" target="_blank">ERM Scripts Extractor</a><br />
Позволяет извлекать из h3m карт ЕРМ-скрипты в Эра формате, а скриптовые события в карте автоматически отключать.<br />
<br />
<a href="https://tools.hmm35.ru/erm-enhancer/" target="_blank">ERM Enhancer</a><br />
Переводит староформатные ЕРМ скрипты в формат Эры (именованные функции и метки, ограниченная автоправка !!MP:S команд). Поддерживает обработку множества скриптов за раз,а также переиспользование именованных функций из других скриптов.<br />
<br />
<blockquote><cite>Quote:</cite>Пример:<br />
<a href="http://s000.tinyupload.com/index.php?file_id=64802181807366025698" target="_blank">Обновлённый скрипт Атлантиды (600 КБ!)</a></blockquote>
]]></description>
			<content:encoded><![CDATA[<span style="color: red;"><span style="font-weight: bold;">Доступные сервисы:</span></span><br />
<br />
<a href="https://tools.hmm35.ru/scripts-extractor/" target="_blank">ERM Scripts Extractor</a><br />
Позволяет извлекать из h3m карт ЕРМ-скрипты в Эра формате, а скриптовые события в карте автоматически отключать.<br />
<br />
<a href="https://tools.hmm35.ru/erm-enhancer/" target="_blank">ERM Enhancer</a><br />
Переводит староформатные ЕРМ скрипты в формат Эры (именованные функции и метки, ограниченная автоправка !!MP:S команд). Поддерживает обработку множества скриптов за раз,а также переиспользование именованных функций из других скриптов.<br />
<br />
<blockquote><cite>Quote:</cite>Пример:<br />
<a href="http://s000.tinyupload.com/index.php?file_id=64802181807366025698" target="_blank">Обновлённый скрипт Атлантиды (600 КБ!)</a></blockquote>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Скрипты. Стол заказов]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5298</link>
			<pubDate>Thu, 16 May 2019 09:41:24 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5298</guid>
			<description><![CDATA[Предлагаю скидывать сюда предложения по скриптам с указанием вознаграждения за работу. Любой может выполнить заказ, выложить сюда и получить вознаграждение. Нубы в erm получают именно тот скрипт, который хотели, профи получают на пиво, считаю взаимовыгодные условия. Как идея?<br />
- Если беретесь за выполнение, пишите за какой именно скрипт взялись.<br />
- Если ктото заказывает очень тяжелый скрипт за 10р, можно указать на это и предложить поднять цену.<br />
- Если ктото заказывает скрипт выполняемый за пару минут и предлагает 5000р, тоже желательно указать, мы же не звери.<br />
Больше скриптов богу скриптов!]]></description>
			<content:encoded><![CDATA[Предлагаю скидывать сюда предложения по скриптам с указанием вознаграждения за работу. Любой может выполнить заказ, выложить сюда и получить вознаграждение. Нубы в erm получают именно тот скрипт, который хотели, профи получают на пиво, считаю взаимовыгодные условия. Как идея?<br />
- Если беретесь за выполнение, пишите за какой именно скрипт взялись.<br />
- Если ктото заказывает очень тяжелый скрипт за 10р, можно указать на это и предложить поднять цену.<br />
- Если ктото заказывает скрипт выполняемый за пару минут и предлагает 5000р, тоже желательно указать, мы же не звери.<br />
Больше скриптов богу скриптов!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[UN:C]]></title>
			<link>http://wforum.heroes35.net/showthread.php?tid=5118</link>
			<pubDate>Fri, 13 Jan 2017 11:30:28 +0000</pubDate>
			<guid isPermaLink="false">http://wforum.heroes35.net/showthread.php?tid=5118</guid>
			<description><![CDATA[Данная тема посвящена <span style="font-weight: bold;">UN:C</span> скриптам, которые дают возможность изменять в игре то, что не возможно сделать через "обычный" ERM. Тема также будет затрагивать и команду <span style="font-weight: bold;">SN:E</span>.<br />
<br />
Простые наборы UN:C-команд можно преобразовать в bin-патч онлайн, воспользовавшись <a href="https://tools.hmm35.ru/unc-to-bin/index.html" target="_blank">следующим сервисом</a><br />
<br />
<div class="notranslate"><div class="spoiler_header">Краткая инструкция  <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1&#93;.style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Команда <span style="font-weight: bold;">UN:C#1/#2/&#36;3</span> позволяет прочитать/записать участок памяти, начиная с адреса #1, длиной #2 в/из переменную &#36;3. Первые 2 параметра самые важные. Неправильная запись в них почти всегда гарантированно вызовет вылет из игры.<br />
Разберем подробнее параметры:<br />
<span style="font-weight: bold;">#1</span> - это адрес участка памяти. Он может быть как статический, так и динамический. Тут всегда будут указаны статические адреса (эти адреса всегда одинаковы при запуске игры как на твоём, так и на моём компьютере). Если же нужно будет изменить что-то в динамическом адресе (это адреса, которые на твоём и на моём компьютере всегда разные), то тут будут указаны способы выхода на последние через статический адрес. По другому выйти на динамический адрес на разных компьютерах невозможно.<br />
<span style="font-weight: bold;">#2</span> - это размер третьего параметра или количество байт, которые нам необходимо изменить. Тут может быть 1, 2 или 4 байта. <br />
<span style="font-weight: bold;">&#36;3</span> - это непосредственно сам параметр, который мы и намереваемся изменить чтобы добиться какой то плюшки. Может иметь как положительное число, так и отрицательное.<br />
<br />
<span style="text-decoration: underline;">Пример использования:</span><br />
!!UN:C7783293/4/37;  командир Паладин (заклинание "лечение")<br />
В коде игры WoG по адресу 0x76C37D установлено заклинание №25h для командира Паладин. Данные адреса имеют шестнадцетиричную систему исчисления. Команда UN:C поддерживает только десятичную систему. Чтобы перевести эти числа в десятичную: включите обычный виндовский калькулятор, нажмите "Вид-&gt;Программист", поставьте галочку на "Hex", введите "76C37D", после этого нажмите "dec". В итоге результат будет представлен числом 7783293. Вот мы и научились переводить шестнадцетиричное число в десятичное.<br />
Итак: <br />
<span style="font-weight: bold;">7783293</span> - это адрес, в котором мы меняем интересующее нас значение/параметр;<br />
<span style="font-weight: bold;">4</span> - количество байт для изменения;<br />
<span style="font-weight: bold;">37</span> - то, что именно нам нужно поменить.<br />
Итак, !!UN:C7783293/4/48; позволит Паладину накладывать на дружественных существ молитву (48).<br />
<br />
Новички, и в особенности <span style="font-weight: bold;">Guest</span>, не забывайте!, что почти все указанные в теме константные ресиверы <span style="font-weight: bold;">UN:C</span> необходимо грузить в триггере !?FU(OnGameEnter);<br />
Например:<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!?FU(OnGameEnter);
!!UN:C7783293/4/48; позволит Паладину накладывать на дружественных существ молитву (48).</script></div>
</div></div>
<div class="offtopic" >1) <a href="http://forum.df2.ru/index.php?showtopic=6813&amp;st=20" target="_blank"><span style="font-style: italic;">Тема UN:C на df2</span></a>;<br />
2) <a href="http://forum.df2.ru/index.php?showtopic=6803" target="_blank"><span style="font-style: italic;">Инженерный анализ на df2</span></a>;<br />
3) <a href="http://forum.df2.ru/index.php?showtopic=34685" target="_blank"><span style="font-style: italic;">Хуки на исполняемый код из ERA на df2</span></a>;<br />
4) <a href="http://wforum.heroes35.net/showthread.php?tid=4734&amp;page=1" target="_blank"><span style="font-style: italic;">Небольшой сборник готовых скриптов с UN:C/SN:E (eng)</span></a>;<br />
<br />
Убедительная просьба: <span style="color: red;"><span style="text-decoration: underline;">не засорять эту тему бессмысленными сообщениями</span></span>.</div>]]></description>
			<content:encoded><![CDATA[Данная тема посвящена <span style="font-weight: bold;">UN:C</span> скриптам, которые дают возможность изменять в игре то, что не возможно сделать через "обычный" ERM. Тема также будет затрагивать и команду <span style="font-weight: bold;">SN:E</span>.<br />
<br />
Простые наборы UN:C-команд можно преобразовать в bin-патч онлайн, воспользовавшись <a href="https://tools.hmm35.ru/unc-to-bin/index.html" target="_blank">следующим сервисом</a><br />
<br />
<div class="notranslate"><div class="spoiler_header">Краткая инструкция  <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none; border: 1px dotted #0F5C8E;">Команда <span style="font-weight: bold;">UN:C#1/#2/&#36;3</span> позволяет прочитать/записать участок памяти, начиная с адреса #1, длиной #2 в/из переменную &#36;3. Первые 2 параметра самые важные. Неправильная запись в них почти всегда гарантированно вызовет вылет из игры.<br />
Разберем подробнее параметры:<br />
<span style="font-weight: bold;">#1</span> - это адрес участка памяти. Он может быть как статический, так и динамический. Тут всегда будут указаны статические адреса (эти адреса всегда одинаковы при запуске игры как на твоём, так и на моём компьютере). Если же нужно будет изменить что-то в динамическом адресе (это адреса, которые на твоём и на моём компьютере всегда разные), то тут будут указаны способы выхода на последние через статический адрес. По другому выйти на динамический адрес на разных компьютерах невозможно.<br />
<span style="font-weight: bold;">#2</span> - это размер третьего параметра или количество байт, которые нам необходимо изменить. Тут может быть 1, 2 или 4 байта. <br />
<span style="font-weight: bold;">&#36;3</span> - это непосредственно сам параметр, который мы и намереваемся изменить чтобы добиться какой то плюшки. Может иметь как положительное число, так и отрицательное.<br />
<br />
<span style="text-decoration: underline;">Пример использования:</span><br />
!!UN:C7783293/4/37;  командир Паладин (заклинание "лечение")<br />
В коде игры WoG по адресу 0x76C37D установлено заклинание №25h для командира Паладин. Данные адреса имеют шестнадцетиричную систему исчисления. Команда UN:C поддерживает только десятичную систему. Чтобы перевести эти числа в десятичную: включите обычный виндовский калькулятор, нажмите "Вид-&gt;Программист", поставьте галочку на "Hex", введите "76C37D", после этого нажмите "dec". В итоге результат будет представлен числом 7783293. Вот мы и научились переводить шестнадцетиричное число в десятичное.<br />
Итак: <br />
<span style="font-weight: bold;">7783293</span> - это адрес, в котором мы меняем интересующее нас значение/параметр;<br />
<span style="font-weight: bold;">4</span> - количество байт для изменения;<br />
<span style="font-weight: bold;">37</span> - то, что именно нам нужно поменить.<br />
Итак, !!UN:C7783293/4/48; позволит Паладину накладывать на дружественных существ молитву (48).<br />
<br />
Новички, и в особенности <span style="font-weight: bold;">Guest</span>, не забывайте!, что почти все указанные в теме константные ресиверы <span style="font-weight: bold;">UN:C</span> необходимо грузить в триггере !?FU(OnGameEnter);<br />
Например:<br />
<div style="background-color: #fff"><script type="erm" id="erm0">!?FU(OnGameEnter);
!!UN:C7783293/4/48; позволит Паладину накладывать на дружественных существ молитву (48).</script></div>
</div></div>
<div class="offtopic" >1) <a href="http://forum.df2.ru/index.php?showtopic=6813&amp;st=20" target="_blank"><span style="font-style: italic;">Тема UN:C на df2</span></a>;<br />
2) <a href="http://forum.df2.ru/index.php?showtopic=6803" target="_blank"><span style="font-style: italic;">Инженерный анализ на df2</span></a>;<br />
3) <a href="http://forum.df2.ru/index.php?showtopic=34685" target="_blank"><span style="font-style: italic;">Хуки на исполняемый код из ERA на df2</span></a>;<br />
4) <a href="http://wforum.heroes35.net/showthread.php?tid=4734&amp;page=1" target="_blank"><span style="font-style: italic;">Небольшой сборник готовых скриптов с UN:C/SN:E (eng)</span></a>;<br />
<br />
Убедительная просьба: <span style="color: red;"><span style="text-decoration: underline;">не засорять эту тему бессмысленными сообщениями</span></span>.</div>]]></content:encoded>
		</item>
	</channel>
</rss>