Hát nekem tanulmányi okokból nem jutott időm most PoP-ra.
Az első vegyes részre én érzésből azt mondanám, hogy az őrök elhelyezése lehet, és mondjuk az egy szinten lévő őrök száma max 14. De ez is csak feltételezés.
Az a pályatérkép hasznos lehet, de nem találom a honlapot. Sajnos úgy fest, minden eltűnt a direktoriból.
A 0F 09-re most azért nem tudok mit mondani, mert nem emlékszem, a többi pályánál mi a helyzet. Úgy rémlik, nem minden pálya 0F 09-cel kezdődik.
Újabb hétvége múlt el, újabb eredmények keletkeztek:
Először is némi segítség a törésekhez:
cim:
Ide feltettem egy képet, amin az első pálya látható (196kbyte). Elég érdekes így egyben az egész. Viszont rátettem a képernyők határait (vörös vonal), az elemek határait (zöld) és bejelöltem a leeső lapokat (cián). No persze a képernyők számát is ráírtam (narancssárga)
Akit csak a sima kép érdekel (114kbyte):
cim:
Ha valaki pedig fel akarja használni, akkor PhotoShop formában (2.2Mbyte):
cim:
Készül egy olyan, ahol a kód is látszani fog....
Egyéb:
Átnéztem az újdonságokat.
A pályák szomszédolásával meg lehet nézni az eddig rejtett 0D, 12 és 18-as pályát azáltal, ha betesszük szomszédnak. Ezzel a pályaszomszédolással egyébként nagyon jól el lehet játszani :):):) Képzeljük el, hogy kimegy balra, és bejön jobbról, és addig mehet balra, amig meg nem unja...Vagy elmegy balra, átjut egy másik helyre, jobbra már nem az van, ami volt, fel meg le van lent megint egészen más hova jut, stb...
Szadista kedvüeknek ajánlom: legyen a pálya közepén egy gödör. Alul nyitot, felül nyitot. Ezt olyan helyen játszuk el, ahol van egy őr is a gödör szélén! Na most írjuk át, hogy a pálya alsó szomszédja is ez legyen! Most odamegyünk és bedobjuk az őrt a gödörbe. Ha szerencsénk van az őr örökké csak zuhanni fog. Kiesik alul, bejön felül, és esik tovább......majd csak szörnyet hal....
A következő furcsaságot találtam (semmi hasznos eredmény nincs, csak elméletek):
Előszőr az első pálya részek most decimális címekkel:
2310-2311 = 0F 09
2312 = ellenőrző szám
2313-3032 = a pálya struktúrállis szerkezete (fal, ajtó, stb..)
3033-3752 = a pályaelemek atributumai (pl. kispia, nagypia, zöldpia, stb...)
3753-4008 = vegyes 1 (ismeretlen)
4009-4264 = vegyes 2 (ismeretlen)
4265-4361 = pályaszomszédok
4362-4615 = egyéb (szintén ismeretlen)
4616- = második pálya....
Az első vegyes a következőkből tevődik össze:
0E 09 09 07 03 79 6A 6D 6B 67 17 12 0E 09 09 07 03 .....ismétlődik
A 79 néha EA-ra cserélődik, de ennek nem találtam meg az eredményét...
Az egészben az a furcsa, hogy 255 byte. Ez a sor 0E 09 -el kezdődik, hasonlóan a pálya kezdéshez (0F 09), es ha ezt levonjuk, pont 10 db. szám, mint egy sor a képernyőn. Viszont 14 szer ismétlődik, ami sehogysem illik bele az ediggi 24×3×10-es rendszerünkbe. Mint ahogy a 255 sem. Hasonló a helyzet a másik két 255 hosszú vegyes résszel is...
Ezért próbálkozok most a vizuállis kép bevonásával. Igy talán sikerül megfejteni a hiányzó részeket.
Közben gubanc van az extránál, sikeresen lenyomtam file-ket, de valahogy nem tudok újakat felvinni. Igy egyenlőre szünetel. A képek címét leírom, ha végre felraktam...
Újra itt vagyok, és mint igértem az újítások is már fent vannak a web-oldalon (címet lásd lejjeb!)
Sajnos a számláló prg. még nem került elő, így arra még várni kell.
Mindenkinek kellemes, dekódolásokban gazdag hétvégét!
(na most aztán belehúzunk)
Azannyát morpet! Jól belehúztál! Most már muszály lesz nekem is valamit csinálnom.
Attól félek, hogy az ellenőrző kódot nem tudjuk kiirtani, hacsak nem a programból szedjük ki teljesen. Legegyszerübb az lenne, ha olyan programot írnánk, amivel HEX-ben editálgatunk, de minden változás az ellenőrző számot is módosítja. Valahol erre volt egy Pascal könyv...
Az őröknél szerintem a típusa egyben a színe is, meg a kardozási stílusa, hiszen ez az ami miatt érdemes file-be tenni.
A pálya szomszédok definiállás nó játék lesz. Bemegy valaki balról, aztán visszamegy jobbra, egy tök más pályára... :):):):)):):):)):):)
Közben megint az ellenőrző kód: Engem is idegesít, mert még az első pályával játszom, de már több tucat papírt használtam el a számítások miatt. Egy hiba, és máris lehet újra kezdeni. Tök elölről...
Szóval eszembe jutott, hogy tesom még régebben írt egy prg-t, ami HEX számokat összegzi. Ezzel, ha kitesszük a pályát egy file-be, megkapjuk az ellenőrző számot, és így elég lesz a végén szórakozni. Aztán másolás vissza a levels.dat-ba.
Ezt még előkaparom, aztán megy a
web-oldalra Még a héten megcsinálom a kiegészítéseket is!
Zer Jó ötlet! Tud valaki angolúl? Az léci írja meg nekik!
Uhh... Tenyleg isteniek vagytok:) Kedvenc jatekom volt egy idoben. Arra emlekszem, hogy meg a szamitogepes ismerosunknek is nekem kellett megmutatni, hogy kell vegigvinni a gamet:))) Nagyon profi voltam benne, mindenre magamtol jottem ra, viszont megahitet sosem hasznaltam.
A PoP2 nem tetszett annyira, bejutottam ott a palotaba, valami loszobron. Aztan nem jutottam tovabb:)
Na mind1... szoval remelem minel hamarabb lesz palyaeditor...:)
Nem lenne egyebkent egyszerubb levelet irni a Broderbund Software-nek? Lehet, hogy ennyi ido elteltevel meg a forraskodot is kiadnak, meg ilyesmik... egy probalkozast azert megerne.
Előtte azonban egy problémát jeleznék: ki kéne írtani az ellenőrző kódot!!! Én ehhez nem értek, pedig jó lenne, ha nem kellene vele vacakolni, mert pályaépítéskor az nem megoldás, hogy
1. mindig figyeljük a változtatásokat és korrigáljuk a kódot;
2. próbálgatunk 00-tól ff-ig, hátha rátalálunk az épp aktuális opponensre.
Sajnos az ajtók működését még nem ismerjük, és minthogy van olyan kapcsoló, amelyik több ajtó nyit, komplikáltabb a dolog.
Az őrökkel kapcsolatban semmit nem találtam még, ha valaki akármilyen változásra felfigyel, amit ő okozott, jelezze!
Gyanítom, alapvetően a következő dolgokra van szükség az őröknél:
1. Az őrök hozzárendelése valamely képernyő valamely eleméhez.
2. Az őrökhöz rendelni a kinézetét (szín, alak - végeredményben ez más-más fájlokból veszi az alakot).
3. Én úgy tippelem, itt definiálják a kardozási stílust is (pl pancser, hadakozó/védekező, nem támadó stb).
Én bíztatnék mindenkit, szálljon be, ebből már csak lesz valami!!!
A képernyők térképét pofonegyszerűen csinálták meg!! A képernyők ugye 30 bájtból állnak, és egy adott sorrendben követik egymást a levels.dat-ban. Legyen az először definiált képernyő sorszáma 01, a másodiké 02, és így a 24. legyen 18 (hexában vagyunk!). Na most jön az a 96 bájt, ahol 4-4 bájt definálja egy adott képernyő szomszédait. A 4 bájt sorrendje:
1. balra
2. jobbra
3. fel
4. le
Vagyis az első négy bájt az elsőként definiált képernyő szomszédait írja le.
A szomszédokra a sorszámával hivatkozunk, ha nincs szomszéd egy irányba, akkor 00-t írunk.
Megfigyelhető, hogy minden képernyőnél külön definiáljuk a szomszédjait, vagyis előfordulhat, hogy Y képernyő bal oldali szomszédja X, miközben X oldal jobb oldali szomszédja nem Y.
Amelyik képernyőre semmelyik másik pályaképernyő nem mutat, azt nem látjuk a játék során, mégha az amúgy 'szomszédjának tekint' néhány látható képernyőt. [[Ugye ért valaki?]]
Természetesen szintenként újra kell definiálni ezeket a kapcsolatokat.
A pályaelemekkel kapcsolatos további pontosítással kezdem:
05 Járat, enyhén süllyesztett
06 Ajtó záró lap
0F Ajtó nyitó lap
Vagyis egy-egy nyitó és záró van, a 05-ös pedig valami más, de ilyen nincs a levels.dat-ban. Mégis megjeleníthető, elképzelhető, hogy a program erre cseréli le a 06 vagy 0F mezőt, amikor rálépünk. (A 12.2-es szint előjövő lapkái azonban nem ilyenek.)
Na, következzen az a második réteg. Szóval itt a bizonyos elemekhez "alelemet" rendelhetünk. Legegyszerűbben a 0A (ital) elemmel mutatható be.
Ha a pályaelemeket tartalmazó 720 bájtos rész mondjuk negyedik eleme 0A, vagyis ital, akkor a 'második réteg' negyedik eleme mondja meg, hogy milyen típusú ital. Ez persze nemcsak a megjelenítésnél számít, a hatást is ez határozza meg. A második rétegnél eszerint lehet:
00 buborék nélküli pia (hatástalan)
01 piros pia
02 piros amfóra
03 zöld amfóra (lassú esés)
04 zöld amfóra (fejtetőre állított képernyő)
05 kék pia
06 kék pia (hatástalan)
07 piros pia (hatástalan)
Ezután ismétlődik. Megjegyezendő, hogy pl. a kódellenőrző szinten (amelyik az első és a második szint között van, a levels.dat-ban viszont ezt definiálták utolsóként) is 05-ös italok vannak, mégsem hagyományosan (-1 élet) működnek.
Hasonlóan a 00 (üres) és a 01 (járat) elemhez ezek tartoznak:
00 semmi
01 téglaháttér
02 téglaháttér #2
03 ablak (01-járat esetén téglaháttér)
A palotarészen bonyolúltabb az ügy, más helyen más jelentést kap, lehet, hogy azzal függ össze, hogy az alsó és a felső vagy pedig a középső sorban van (ahol ez eltérést okoz, ott ezt perjel jelzi):
00 üres / díszcsík
01 díszcsík / üres
02 díszítés a csíkon
03 ablak (01-járat esetén téglaháttér)
Csak érdekességként írom, hogy a fűrészfog csapda (12) attribútuma 00, ám ha ezt megváltoztatjuk, akkor álló fűrészfogakat kapunk:
00 működő
01 félzárt
02 zárt - ez az egy gyilkol!
03 háromnegyedrészt zárt
04 nyitott
05 háromnegyedrészt nyitott
06 és 07 ugyanaz, mint 05
Ebből két érdekesség adódik:
1. talán a működés animálása az attribútum változtatásával történik
2. a csapdák 'időzítése' itt nincs definiálva
Ajtók, kapcsolók attribútuma.
Sajnos itt van némi homály. Odáig biztos a dolog, hogy a kapcsolók egyedi azonosítót kapnak 01, 02, 03 és így tovább. Nyitók és zárók együttesen. Viszont az ajtóknak nincs azonosítójuk, ezek hol 01, hol 02 attribútumúak. (Itt jegyzem meg, hogy nem volt időm a problémák mélyére merülni, így többnyire az 1-es pályával foglalkoztam, ezért lehet, hogy részletesebb tanulmányozás során további lehetőségek merülhetnének fel.)
Vagyis itt egy nagy probléma: nem tujuk, hogyan rendelik a kapcsolókhoz az ajtókat (vagy fordítva), de úgy tűnik, annak a 60/80-as résznek van köze hozzá.
Na, a legizgalmasabb kérdést már újabb hozzászólásba írom.
Kezdődik az ellenőrző kóddal.
Utána következik a képernyők, vagyis a pályaelemek definiálása 24x30=720 bájtban. (A legtöbb pálya 24 képernyőből áll a fájlban, bár ezek nem mindegyike látható a játékban. Ennek oka is kiderült azonban!)
Ezt követi pályadefiniálás második rétege, vagyis a következő 720 bájt rendre az előző 720 bájthoz rendel kiegészítő információkat. A rész könnyen megismerhető a sok 00-ról. Erről írok lentebb.
Ezután jön egy "vegyes" rész, funkcióját még nem tudom. 255 bájt hosszú, és azért hívom vegyesnek, mert 69, 89 meg hasonló hexa-kódok vannak benne, vagyis nem olyan 'szimplák', mint másutt.
A következő 255 bájt 00/20/60/80 meg hasonló hexa elemekből áll, pontos működését ennek sem tudom, de valószínűleg a kapuk működéséért felel.
A következő 96 bájt 00-tól 18-ig tartalmaz számokat. Itt a képernyők egymásmelletisége dől el, hogy hogyan, mindjárt írom.
Végül van 255 bájt (plusz/minusz egy, attól függ, hogy honnan is vesszük a pálya kezdetét), melyeknek funkcióját nem tudom, de összefüggésben lehet a kőfalak mintázatával és egyéb megjelenési kérdésekkel.
Na, most lássuk a részleteket, de azokat inkább újabb hozzászólásba írom.
Ezt en is tapasztaltam, hogy az utoso 2 szam a fontos az ellenorzo kodnal. A 2 db. 00 cserelese 80-ra eleg ideallis, hiszen az +1 byte, vagyis mintha ki sem csereltuk volna. Kar hogy nincs sok ertelme....
A buszon szoktam gondolkodni (ott van idom boven), es arra jutottam, hogy teljesen mindegy van-e meg egy ellenorzo szam, hiszen mindenkeppen relativ ertekvaltozassal kell szamolni, vagyis tok mindegy melyik szammal jatszunk. Viszont lassan mar lehetne irni a programot. En sajna a programok logikajat ismerem, a programnyelveket viszont nem....
Erdeklodes keppen: van aki meg olvassa ezt forumot es tud programozni?
Ja, nem tudom, írtam-e vagy írtad-e, de az ellenőrző kódnál csak az utolsó egy bájt számít. Vagyis ha két 00-ás elemet kicserélünk két 80-ásra (ami persze ugyanaz az elem), akkor is fut a pálya. Az ellenőrző kód pedig az az egy bájt a pályaképernyők definiálása előtt, a Level1 esetén hexa A2, ha jól emlékszem.
Köszi a bíztatást. Sajnos egyenelőre apadnak az eredmények, de ha jelentős áttörést érünk el, akkor megírjuk neked, és lesz pályaeditor prg is. Jelenleg több időre van szükségünk...
Zseniálisak vagytok! :)))
Az egyik első játékom volt, és máig az egyik kedvenc :). Régen még pályákat is rajzoltam, papírra, megspékelve nindzsákkal és más hasonló értelmességekkel :) Sajnos a papírok elvesztek :(
Nem értek az ilyesmihez (törés), Nektek viszont jó munkát és sok sikert kívánok!
Ha van valami fejlemény, hír, stb, megköszönném, ha maileznétek (a fórumot ált. nincs időm figyelni :( )
Király a weboldal, főleg a belépés tetszett :)
Készítem az első pályát!!!
Elég nagy koncetrációt igényel, így nehezen haladok. Bár erre már lehetne írni egy programot...
A 0F-es kapcsoló szerintem elég érdekes. Minek tettek bele egy újabb elemet? A másik furcsaság az, hogy én betettem egy totál más képernyőre, majd ráléptem. Erre kinyilt a mellette lévő nagy ajtó (amit tesztelésből tettem ki és csak a fele volt meg)....
Minimális időm volt, úgyhogy csak néhány aprósággal tudok szolgálni.
Először is 1-2 pontosítás az egységeknél:
07 járat, a jobb szélén faliszőnyeg
08 óriás oszlop alja
09 óriás oszlop teteje
0C semmi, a jobb szélén faliszőnyeg
17 járat, a háttérben "erkély" bal oldala (pl 6-os szint)
18 járat, a háttérben "erkély" jobb oldala (pl 6-os szint)
19 boltívtartó oszlop
1A boltív törzse
1B keskenyebb boltív
1C szélesebb boltív bal fele
1D szélesebb boltív jobb fele
1F nincs ilyen egyik pályán sem
Szöveges megjegyzések:
Az 1A-1D boltívek természetesen nem járatok, hanem hátterek. Kétféle boltív létezik. A boltívelemek szabadon elhelyezhetők.
A 0F ajtó nyitó, de sajnos nem feltétlenül a nagy ajtót nyitja.
A 08-09 és a 17-18 párok együttesen alkalmazandók, különben nem tudja rendesen megrajzolni a képernyőt. Úgy tűnt, hogy a fogsor-csapda sem helyezhető el akárhol.
A 03 oszlopos járat a palota részen két oszlopos járat, egy oszlop elöl, egy hátul van. Ezzel szemben a 19 boltívtartó egy olyan járat, amelyen egy oszlop van, ezt akkor használja a programíró, amikor felette 1A boltívtörzs van.
A faliszőnyeg amolyan vékony fal, nem tudom, hogy a róla induló boltívdarab a része-e az egységnek, valószínűleg igen.
Az őrök mozgástere általánosan definiált lehet, mert ha egy őr közelében szakadékot vagy pl tüskét helyezünk el, akkor addig nem kezd harcolni, amíg ezeken át nem haladunk, esze ágában sincs beleszaladni ezekbe... Vagyis az őrök érzékelik a terep megváltozását.
A pályák definiálása után sok egyéb dolog van, aminek a jelentését nem ismerjük, de kiderült, hogy ezek is számítanak az ellenőrző összegbe. (Csökkentettem egy egységet 1-gyel a pályaleírásnál, aztán ugyanennyivel növeltem az ismeretlen területen egy értéket. Kár, hogy nem derült ki, mi volt a hatása annak az értékváltoztatásnak.)
Ja, biztos mindenki ismeri, de én véletlenül vettem észre a lehetőséget: a parancssorba pl. 'prince.exe 5 megahit'-et írva az 5-dik szintről kezdődik a játék (nincs intro sem). A prince 2 megahit a 2-es pályát indítja, előtte a kódellenőrző pályával, ha az nincs kiiktatva a prince.exe-ben.
Közeleg a 7vége, megint törögetünk 1 kicsit :):):):):):)
Talán még egy pályát is kreálok....
Gondolkoztam az első pályáról hiányzó képernyőkön. Van néhány pálya, ami két részből áll. Ezek az 1, 3, 12 (ez 3 részből). Lehet, hogy a 13, 18, 24-es képernyő, amit nem találtunk, az az átmeneti pályához tartozik (az ha jól emléxem 6 képernyő). Ez jó arra is, hogyha tényleg az 1. pályához tartozik, akkor ide lehet szemetelni, ha a számok nem jönnek ki.
Én az egész Prince-t DOS-ban működtetem (valahogy még mindig az a kedvencem). Itt van DiskEdit (HEX-editor), GameWizard (memória editor) is. Egyébként a képeket asszem a neograf nevű prg.-vel szedtem ki. Nem emlékszem pontosan a nevére. 4 DOS-os képlopóm van, mindig azt használom, amit leginkább elfogad a prg. A baj velük csak az, hogy igencsak keresztbe kell nyúlkáni a billentyűzeten, így nehéz csatázni+képet lopni...:)
Hinnye! Hát nem szétesett??
Na mindegy. A lényeg, hogy oda feltettem az eddigi eredményeket (jó sokáig tartott).
Persze továbbra is próbálkozok a törögetéssel, és az eredményeket ide irom le elöbb, és ami biztos, azt rakom fel.
Sikerult a hadmuvelet. Itten van az uj Prince oldal:
http://www.extra.hu/PrinceOfPersia/ Egyenlore meg toltogetem fel. Ha mar muxik a palyakeszites es lesznek kesz palyak is, akkor kozre adom a pwd-t.
Hétvégén kicsit meggyalultam a PRINCE-t, es nehany hasznos dolgot talaltam:
A legfontosabb, hogy biztosan összeadásról van szó. Ez már mindkettőnknél bebizonyosodott. Én az első pálya kódjait adta össze (programmal, hogy kisebb legyen a hiba%), de az eredmény nem vezetett semmire.
Viszont találtam egy fontos részt. De elöbb egy kis kitérő:
MInden pálya kezdő kódja 0F 09 (a számok mostantó HEX-ben lesznek). Ez után van egy szám, majd indul a térkép. A képernyők között (erre még mindig nincs valami jó szó?) Semmi választót nem találtam. Majd a pályák között van egy kazal szemét(?). Az átvezető pálya, ahol a kódot kérdezi, az az első pályához tartozik (talán azért nem lett meg az összeg, mert azt nem számoltam hozzá....)
Igy a következő a pályák felállása:
1. pálya kezdete: 909 (dec. 2313) hely, előző számok: 0F 09 A2 2. pálya kezdete: 120B (dec.4619) hely, előző számok: 0F 09 9D 3. pálya kezdete: 1B0D (dec. 6925) hely, előző számok: 0F 09 D7 4. pálya kezdete: 240C (dec. 9228) hely, előző számok: 0F 09 71
Amit találtam az az, hogy a 0F 09 utáni szám nem tartozik a térképhez, de a nagysága befolyásolja a pályaellenörző kódot. Vagyis szám + SZUM egységek = állandó . Vagyis az a szám változtatásával lehet újabb elemeket bevinni. Az elemek összege pedig lehet, hogy csak 1 számon tárolódnak, és az többször is körbefordulhat...
Más.
Próbáltam memória-törővel is, mert akkor nem kell a kóddal vacakolni, így sikerült majdnem teljesen megfejteni az egységek kódjait. Érdekes, hogy egységek 20-tól ismétlődnek. Valószüleg csak a kód miatt. Tehát a "semmi" kivejezhető 00, 20, 40, stb... számmal is.
Egyes elemek csak bizonyos pályán léteznek. Pl. a 4. pályán lévő tükröt nem lehet betenni az első pályára. A pályafüggő számok után zárójelbe teszem a pálya számát.
Fontos, hogy a tüske csak akkor működik jól, ha van mellette valami. 1-magában a levegőben nem müxik rendesen, de azért kinyirja az eltévedteket...
A pálya színe, palota/börtön máshol van. Az egységek száma nem változik.
Az ital (kicsi/nagy/fejreállít/lebegés) nem az egység számában van megadva. Azt valahol máshol kell keresnünk.
A háttér (tégla, ablak) a program teszi be, attől függően, mekkora üres hely van. Ezt nem lehet módosítani...
És akkor következnek az egységek:
00 Semmi
01 Járat
02 Járat+tüske
03 Járat+oszlop
04 Járat+ajtó a jobb oldalt
05 Ajtó záró
06 Ajtó nyitó
07 Oszlop 2 (talán a palota részen az ajtó feletti dekoráció)
08 ? (talán a palota részen dekoráció)+járat
09 ? (talán a palota részen dekoráció)+járat
0A Ital
0B Leeső járat
0C Oszlop 3 (talán a palota részen az ajtó feletti dekoráció)
0D Tükör (4)
0E Járat+törmelék
0F Ajtó nyitó (nagy ajtó???)
10 Nagy ajtó bal felel
11 Nagy ajtó jobb felel
12 Járat+fogsor (3-)
13 Járat+fáklya
14 Fal
15 Járat+csontváz
16 Járat+kard
17 ? (talán a palota részen dekoráció)+járat
18 ? (talán a palota részen dekoráció)+járat
19 Oszlop 4 (talán a palota részen az ajtó feletti dekoráció)
1A Boltív (palota)
1B Boltív2 (palota)
1C Boltív3 (palota)
1D ?
1E Járat+fáklya+törmelék
1F Ez megjelent, de nem ismertem fel...
Ezek alapján már nehezen, de lehet saját pályát készíteni. Az első pálya kis változásokkal is nagyon durvává tehető...
Az az ötletem támadt, hogy extra.hu-n regisztrálok egy oldalt, ahova fel lehet majd rakni a pályákat, meg a törés eredményeit. Persze az ötleteket továbbra is itt beszélnénk meg, de a változások miatt ne kelljen az egészet újra leírni.
Ha az összeg változatlan, akkor lehet cserélgetni, ezt épp ma próbáltam. Talán 21 21-ből csináltam 2f 13-at, vagy ilyesmi.
Egyenként összeadtam a Level 3 összes hexa kódját (jobb ötlet hijján), az eredmény 4c 91 lett, de egyűltalán nem tuti. Ezzel azonban nem jutottam tovább.
Helló mindenkinek!
Tegnap sajna nem sok időm volt törni, de majd a hétvégén.....
A matek kóddal kapcsolatban van egy ötletem:
Próbáljunk meg 3 egységet úgy felcserélni, hogy mondjuk az összege ne változzon!
Pl. a köv számok vannak egymás után: 3F 24 2A. Ebből legyen mondjuk 3E 23 2C
Ha ez így működik, akkor már csak össze kell edni a pályán lévő értékeket, átváltani HEX-be, majd rákeresni (persze kettesével fordítva, tehát ha a HEX-szám 234E, akkor így kell keresni: 4E23)
Egységekkel kapcsolatban:
Szerintem minden egységből eleve több fajta van. Egyszer a változatosság miatt (van egy olyan fal, ami csak kék "tégla" meg olyan amiben van egy fekete "tégla" is). Viszont a sárga (palota) részen lévő egységek is új számot kapnak. Erre az a bizonyíték, hogy a börtönrészben vannak hiányzó képernyők. Mégis az alatta levő képernyő felső sorában fal látszik. Tehát alapban az üres képernyőt falnak érzékeli. Ezzel ellentétben a palota részen vannak olyan képernyők, amik csak fallból állnak, mag hasonló "felesleges" képernyők. Ennek oka az, hogy a széleket kitöltsék a megfelelő "mintával". Erre a börtönben nem volt szükség.
Amivel még a hétvégén próbálkoozom:
Összeszámolom az összes képernyőt, ami a játékban van. Megszorom 31-el (30 a képernyő és egy a száma), majd megnézem, mi van azon túl (mármint a levels.dat-ban a képernyők után)
(jó lenne valami jópofa nevet kitalálni a "képernyő" és az "egység" helyett...)
Azóta nem volt még időm, úgyhogy csak annyit, hogy a kardot (=kardos járatot) engedte felcserélni a level1 indulóképernyőjének egyik elemével. Aztán olyat is enged, hogy a fal (14,34) felett nincs járat (00-üres háttér), ilyenkor át lehet zuhanni a falon. Vagy olyan is volt, hogy a rácsos kapu mellett (jobbra) lévő mező feletti mezőre ürességet vagy lepotyogó talajt helyeztem el, vagyis fel lehetett kapaszkodni közvetlenül a kapunál, és át lehetett lendülni a kapun.
A levels.dat-ban sokkal több információ van, mint a pályák képének leírása, szerintem az őrök elhelyezése is itt lehet, valamint az ajtók működésének hangolása, az ellenőrző kód és a képernyősorrend is. Az ellenőrző kód valószínűleg egyszerű matematikai, összeadásos, különben nem engedné a felcserélést, azt pedig korlátlanul engedi szinten belül. A kód valószínűleg szintenként van.
Az ellenőrző kóddal kapcsolatban javaslom, hogy próbáljuk eg felcserélni az első és a második pályát! Igy ha működik, akkor vagy lehet, hogy matematikai ellenörző kód van.
Azt már kipróbáltad, hogy két különböző képernyől lévőn cuccut cseréltél fel?
Ha azt már nem engedi, akkor valami "képernyő-védő" lehet (pl. ne lehessen 30 nagypiát betenni, vagy 2 őrt).
Ha a szintek között nincs elválasztó, akkor szerintem 2 rétegű a pálya térképe. Ez lehet, hogy a file második felében van, de lehet akár egy másik file-ben is.
A képernyődefiniálás tényleg elég furcsa. A PRINCE MEGAHIT-nél lehetőségünk van benézni olyan helyekre is, ahova egyébként nem jutunk be. Még régebben (kb 6 év) csodálkoztunk, hogy minek tesznek be olyan képernyőt, ami csak falból áll. Most már érthető (a mellette levő képen látszódjon). Viszont ha a sorrend nem itt van definiálva, akkor lehet, hogy a szinteket nem itt kell editálni. Talán ez a file tartalmazza a képernyőket, és egy másik file-ben van leírva, hogyan pakolja egymás után (pl. egy olyan képernyőt [legyen a száma 01], ami csak falból áll, nem írják be tízszer, hanem csak tízszer hivatkoznak rá). Ennek az elméletnek azért még utánanézek.
Kicsit próbálkoztam ma a levels.dat-tal. Eredményeim see below.
Valóban minden képernyő 10x3-as, vagyis 30 egység. Egy egység alja az, amin járunk, vagyis a járatok teteje már mindig a felette levő járat (vagy képernyő) alja. Egy ilyen egység formáját egy hexa kód határozza meg pl 2F. Vagyis 30 (kétjegyű) hexa számból áll egy képernyő, majd a következő 30 szám adja a következőt és így tovább, vagyis nincs elválasztó a szintek között.
Na most összefoglalom az összes formát, ami az 1-es szinten található, aztán folytatom a tapasztalatokat. Előrebocsátom, hogy egyazon formára gyakran 2 kód is van, hol az egyiket, hol a másikat használta a programíró, egymással felcserélhetők, talán a mintázat szempontjából van jelentősége, de ott sincs 1 az 1-hez megfeleltethetőség, valami algoritmusról lehet szó.
00 üresség/háttér
14 vagy 34 (vastag) fal
Az összes többi járat tulajdonképpen.
01, 21 normál járat
02, 22 tüske
03, 23 oszlopos járat
0A, 2A jó pia (piros)
0B ingatag talaj (leesik)
0E, 2E járat törmelékkel
13, 23 járat fáklyával
15 járat csontvázzal
16 járat karddal
24 járat, a jobb szélén ajtóval
26 ajtó záró
2F ajtó nyitó
30 nagykapu bal oldala
31 nagykapu jobb oldala
Megállapítások:
1. Az őrök helyét nem itt definiálják
2. Azt, hogy melyik ajtó nyitó melyik ajtót nyitja, nem itt definiálják
3. Az ajtók itt nem kapnak sorszámot
- az ajtók nyitásával kapcsolatosan további vizsgálatot még nem végeztem
4. A kard és a pia felvehető/megiható akkor is, ha a programot átírva áthelyezzük
Egy képernyő a fenti kódokból épül fel balról jobbra haladva, 3 sorban.
Azonban probléma, hogy a képernyők már nem sorban vannak, vagyis valahol külön definiáltatik a képernyők összefüggésrendszere. Az első szinten például balról jobbra haladva a képernyőkön az egyes képernyők az alábbiadikként lettek definiálva a fájlban:
22,16,23,17,21,5,1
15,12,20,7,8,6,2,3,9
10,19,4,14,11
Vagyis például azt a képenyőt, ahol a nagyajtó van, azt a kilencedik 30 szából álló blokk adja az első szintet leíró részben. Talán feltűnt nektek is, hogy hiányzik a 13., a 18. és a 24-ként definiált képernyő, ezeket nem találtam a level 1-en.
Van még egy komoly probléma: ha bármit megváltoztatunk a level.dat-ban, nem indul el az adott szint. Hacsak nem úgy változtatunk, hogy két kódot kicserélünk. (Pl így tettem át a kardot az első képernyő egyik szeletére.) Ebből arra következtethetünk, hogy van egy "szint szintű" ellenőrző kód, ami valószínűleg összegekkel dolgozik (az összes az adott szintet leíró kód összege, esetleg bizonyos típusú egységek fajtánkénti összegei).
Tehát főbb feltáratlan területek:
1. ellenőrző kód
2. a képernyők sorrendje, "térbeli" elhelyezése
3. őrök
4. ajtók