The Black Wyrm Lair Forums
The Black Wyrm's Lair Terms of Use Help Search Members Calendar

Welcome Guest ( Log In | Register )

> Results of Technical Contest #2
Baronius
post Aug 1 2008, 06:31 PM
Post #1


Master of energies
Group Icon

Council Member
Posts: 3331
Joined: 9-July 04
From: Magyarország




Technical Contest #2 has come to its end.

The winner is

Razfallow

He achieved the Technical Modding Cross. This award is given to those mod developers who proved their skills in a task of a technical contest of BWL. Razfallow can also choose a forum portrait from our gallery, and a custom subtitle.

Razfallow got 98 points from 100. When checking the solution, I focused only on the important things, and didn't examine minor details. The most important is that the creatures behave in the game according to the contest's specifications.

The 2 points he lost are because bwcc_m.baf contains the two script blocks in wrong order. The requirements say that the mage "casts Shield, and then he casts Melf’s Minute Meteors.", and not in reverse order.

On a side note, his cleric script solution had 14 blocks, with 126 "effective" lines (so newline characters, OR statements and IF-THEN-RESPONSE statements are excluded). The reference implementation has 13 blocks, with 70 "effective" lines.


Congratulations, Razfallow!


Attached File(s)
Attached File  bwcc_razfallow_080720.zip ( 1.14k ) Number of downloads: 3
 


--------------------
Mental harmony dispels the darkness.
Go to the top of the page
 
Quote Post
 
Start new topic
Replies
Razfallow
post Aug 1 2008, 07:27 PM
Post #2





Contributor
Posts: 57
Joined: 6-April 05
From: Czech Republic




QUOTE
If he has been attacked by an enemy in the last script round and his hit points
are below 60%, he casts Draw Upon Holy Might (he has one memorized
instance). If he fails to cast Draw Upon Holy Might, he casts Spiritual
Hammer. If he has successfully received the hammer, a state transition happens
to S3.
CODE
IF
  Global("bwcc_clericState", "global", 0)
  !HaveSpell(CLERIC_DRAW_UPON_HOLY_MIGHT)
  !StateCheck(Myself,STATE_DRAWUPONHOLYMIGHT)
  HaveSpell(CLERIC_SPIRITUAL_HAMMER)
THEN
  RESPONSE #100
    Spell(Myself, CLERIC_SPIRITUAL_HAMMER)
END


This is almost correct, but cleric will cast Spiritual Hammer, even when he succesfully casts DUHM. He just needs to wait 10 rounds, and when the spell's effect wears off he will cast Spiritual Hammer.

QUOTE
If the Fighter is alive but has been attacked by fire at least 5 times so far and
Resist Fire/Cold hasn’t been cast yet, he casts Protection from Fire on the
Fighter, and will not cast Resist Fire/Cold any more. He has one memorized
instance of Protection from Fire. When Protection from Fire has been
(successfully or unsuccessfully) cast, the Cleric must immediately move to the
next, fourth check (to learn whether the Fighter needs to be cured from
Feeblemind). That is, instead of following the usual priority order (i.e. instead
of restarting from Step 1), the conditions of Step 4 must be evaluated.

CODE
IF
  Global("bwcc_clericState", "global", 0)
  HaveSpell(CLERIC_PROTECTION_FROM_FIRE)
  See("bwcc_f")
  GlobalGT("bwcc_fireCounter", "global", 4)
THEN
  RESPONSE #100
    Spell("bwcc_f", CLERIC_PROTECTION_FROM_FIRE)
    Continue()
END
IF
  GlobalLT("bwcc_clericState", "global", 2)
  HaveSpell(CLERIC_CURE_DISEASE)
  See("bwcc_f")
  StateCheck("bwcc_f", STATE_FEEBLEMINDED)
THEN
  RESPONSE #100
    Spell("bwcc_f", CLERIC_CURE_DISEASE)
END


This definetely doesn't work as is written in requirement, because it checks step 4 before cleric starts to cast Protection from Fire not after.

Actions from block with Contineu() are stored in action list and other blocks are evaluated to the end of a script or until some block (without Continue()) returns true then its actions are added to action list, and all actions stored in action list are executed.

(Same with State 2)

This post has been edited by Razfallow: Aug 1 2008, 07:37 PM
Go to the top of the page
 
Quote Post

Posts in this topic
Baronius   Results of Technical Contest #2   Aug 1 2008, 06:31 PM
Razfallow   Ups, that's pretty stupid of me. Next time I ...   Aug 1 2008, 06:45 PM
Baronius   Sure.   Aug 1 2008, 06:49 PM
Razfallow   IF Global("bwcc_clericState", "g...   Aug 1 2008, 07:27 PM
Baronius   It isn't a big issue, but strictly speaking, i...   Aug 1 2008, 08:42 PM
Sir-Kill   congrats Raz!   Aug 1 2008, 10:39 PM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:



- Lo-Fi Version Time is now: 13th May 2026 - 01:29 AM