„Star Wars Galactic Battlegrounds szkriptek/Az első lépések” változatai közötti eltérés

Tartalom törölve Tartalom hozzáadva
123. sor:
De könnyen lehet olyan szituációt is teremteni, amelyben, bár a szabály szintaktikailag kifogástalan, a kért épület nemhogy késve, de sosem készül el. Pl.:
 
<div style="margin-left: 5em; margin-right: 25em; background: #F8F8F8;">
<br>
:(defrule<br>
&nbsp;:::(and (game-time >= 0) (game-time <= 10) )<br>
&nbsp;:::(can-build BLDG-POWERCORE)<br>
:=><br>
&nbsp;:::(set-strategic-number sn-maximum-town-size 2)<br>
&nbsp;:::(chat-to-all "Hurrá, tudok egy áramfejlesztőt építeni!")<br>
&nbsp;:::(build BLDG-POWERCORE)<br>
:)
)<br>
</div>
 
Itt az újonnan beiktatott sor, „set-strategic-number sn-maximum-town-size 2” azt jelenti, „építsd meg az épületet 2 mezőnyi távolságra a városodtól!” <ref group="mj">Sajnos nem tudom, a ''mező'' (''tile'') mint alapegység, mekkora. Ha sejtésem nem csal, akkor egy mező a legkisebb alapterületű épület, az áramfejlesztő alapterületével egyenlő. Egy ház kétszer két mező nagyságú, egy központ háromszor hármas. Így aztán - hangsúlyozom: ha ez tényleg igaz - nem meglepő, hogy a parancs nem hajtódik végre, hiszen így az áramfejlesztőt rá kellene építeni a központ alapterületére, ami lehetetlen. Persze vitatkozni lehet, hogy itt most szintaktikailag értelmes-e akkor a parancs, szerintem igen, hiszen nincs hibaüzenet, legfeljebb is csak szemantikusan hibás. <br> Azonban van egy bökkenő: a tesztek során, amikor az sn-maximum-town-size a már elfogadottnak bizonyuló 3 értékre volt véve, nos, az áramfejlesztő felépült ugyan, de egyáltalán nem 3, hanem legalább tíz „mezőnyi” távolságra a központtól. Tehát a „mező” vagy nagyobb, mint a fent leírt fogalom, független az épületek alapterületétől; és akkor érvényben marad mindaz, amit mondtam; nem hibás a parancs és mégsem hajtódik végre; vagy pedig, ha mégiscsak ilyen kicsi egy mező, akkor szemantikusan hibás ugyan a parancs, mégis végrehajtódik (?!), csakhogy nem a megfelelő módon. Valami sehogyan sem stimmel, akármelyik eset is igaz.</ref>. Ez azonban nem megy: a CP nem szereti a túl szűkre szabott építkezést, így a maximum-town-size változónak legalább 3-nak kell lennie, hogy a parancsot figyelembe vegye. A szabály szintaktikailag kifogástalan, a benne foglalt tevékenység minden ''formális'' feltétele teljesül, a parancsot a CP mégsem hajtja végre! A dolog pikantériája az, hogy bár a chat parancs végrehajtása világosan jelzi, hogy az áramfejlesztő építése igenis lehetséges (a chat parancsot sokszor használjuk ehhez hasonló tesztelésre: teljesülnek-e valójában a formális feltételek), az épület megépülni mégsem épül. Tehát: ''elvileg'' építhetünk ugyan egy áramfejlesztőt, és ''elvileg'' megszabhatjuk a CP-nek, hogy a városközponthoz milyen közel tegye ezt, az erre vonatkozó parancs szintaktikailag tökéletesen megvalósítható - azonban az automatikus AI a mikromanagement szintjén mégis felülbírálhat bennünket, és megtagadhatja az engedelmességet.