Benvenuto Visitatore(Log In|Registrati)
![]() ![]() |
4 Mar 2024, 23:17
Messaggio
#551
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Rallegrati, puoi farcela.
In realtà, al momento, i problemi più importanti sono l'intelligenza artificiale dei mostri e le famose trappole. In quest'ordine, ma andiamo, oggi il gioco è molto migliore di prima ed è tutto merito vostro. Sono felice XD |
|
|
|
4 Mar 2024, 23:51
Messaggio
#552
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
A differenza del gioco da tavolo, dove quando cerchi in un corridoio lo ispezioni tutto, in questa versione per PC ricerchi solo nella sezione visibile. Questa è una differenza che intendo lasciare, anche perché dove definisci la fine della ricerca? i 4 corridoi esterni sono composti da 5 sezioni, dovrei inserire un codice che verifica anche quelle, ma quelle esterne sono a L, proseguono in basso all'interno dei corridoi orizzontali. Non ho spazio per mettere il primo controllo, figuriamoci per modificare il codice in modo da dividere in due sezioni separate i corridoi ad angolo. E' escluso. Rileggendo i vostri messaggi, mi è venuta in mente un'informazione curiosa che potrebbe essere utile per la vostra ricerca... Come tutti sappiamo, l'eroe può interagire solo nelle sezioni visibili (io le chiamo aree dello schermo), ma nella mappa di gioco potevo vedere l'intero corridoio. Ecco un esempio: In questa schermata l'eroe è proprio di fronte alla porta, ma quando uso la chiave della porta, una piccola parte del corridoio è visibile, e quando oltrepasso la porta, vedo l'intero corridoio fino alla fine e se ci fossero dei nemici potrei anche vederli, quello che non può vedere, come è logico, è il doppio corridoio che si trova più a nord di quel corridoio. In breve, questo nella mappatura se si vede bene e si può supportare la ricerca con questi dati. Davanti alla porta non aperta ![]() Porta aperta (icona della chiave) ![]() Supero la porta ed entro nel corridoio.
Messaggio modificato da raul il 4 Mar 2024, 23:51 |
|
|
|
5 Mar 2024, 00:47
Messaggio
#553
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Lo avevo notato, è effettivamente un comportamento avanzato molto bello, ma non realmente sfruttato. E' estetico, non ha un vero fine pratico se non quello di poter già attaccare un nemico in diagonale vicino. Tra l'altro poco corretto visto che i mostri non ti attaccano quando si è in stanze diverse!
Al momento è un'informazione poco utile, ma potrebbe diventarlo quando guarderò il pathfinding (già sudo). -------------------- |
|
|
|
5 Mar 2024, 01:25
Messaggio
#554
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
SIGNORI. Dopo quasi una settimana di studio del codice, offset, registri, opcode e ho finalmente trovato il check che non permette di cliccare direttamente la trappola pozzo.
CODICE 01EF:6857 80BF6F5800 cmp byte [bx+586F],00 ds:[59C4]=0032 01EF:685C 7503 jne 00006861 ($+3) (down) 01EF:685E EB11 jmp short 00006871 ($+11) (down) 01EF:6860 90 nop 01EF:6861 80BF6F5832 cmp byte [bx+586F],32 ds:[59C4]=0032 <--- THIS 01EF:6866 7501 jne 00006869 ($+1) (down) 01EF:6868 C3 ret 01EF:6869 80BF6F5840 cmp byte [bx+586F],40 ds:[59C4]=0032 01EF:686E 7201 jc 00006871 ($+1) (no jmp) 01EF:6870 C3 ret Sono esausto, ma appagato. Ho cambiato UN SINGOLO FOTTUTO BYTE.
ezgif_2_3fa30d36ee.gif ( 2.49mb )
Numero di download: 9Clicca per vedere la gif animata. CITAZIONE SOLUZIONE:
all'offset di QUEST.EXE (decompresso) 0x6C85 sostituire 32 con 00 -------------------- |
|
|
|
5 Mar 2024, 06:40
Messaggio
#555
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Tu sai davvero fare le magie, il mago e l'elfo sono dilettanti.
![]() Incredibile, questo gioco sta iniziando ad essere un altro, non so nemmeno come qualificare questo progetto, e pensare che è iniziato con il problema del file .bin e guarda quanto lontano sei arrivato. Non capisco come sia possibile che cambiando un singolo byte si possa risolvere il problema, vuol dire che i programmatori hanno lasciato che la trappola fosse così? Ho attivato tutte le trappole nei corridoi e non sono riuscito a scoprire dove fossero, FANTASTICO, CI SEI RIUSCITO, CONGRATULAZIONI!!!!
Messaggio modificato da raul il 5 Mar 2024, 06:59 |
|
|
|
5 Mar 2024, 07:28
Messaggio
#556
|
|
Gruppo: OldGamer Messaggi: 332 Iscritto il: 27 June 14 Utente Nr.: 20.463 BGE Command & Conquer: Tiberian Dawn SO Windows7 |
Sono esausto, ma appagato. Ho cambiato UN SINGOLO FOTTUTO BYTE. Ha, yea, it's often like that. There's one pretty awful bug in C&C where every time you start setting up your base, the game takes away power usage that can never be recovered (it adds the power usage of the Construction Yard twice when it deploys from vehicle-form to building-form; a bug in the code to activate a building if it was 'built' in this non-standard way), and I noticed that even in the Remaster they didn't fix that correctly, instead they fixed it in a way that worked for the player but gave the AI free extra power. And, after a whole day of research in the code, it also turned out they changed way too much on the wrong parts, and the real fix was one single byte Anyway, another bug squashed! Nice work! Incredibile, questo gioco sta iniziando ad essere un altro, non so nemmeno come qualificare questo progetto, e pensare che è iniziato con il problema del file .bin e guarda quanto lontano sei arrivato. Yea, he's really just making an entire game upgrade patch, isn't he? Messaggio modificato da Nyerguds il 5 Mar 2024, 07:57 -------------------- Expert on all things Command & Conquer 1. Creator of a bunch of small modding tools.
|
|
|
|
5 Mar 2024, 09:51
Messaggio
#557
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Ha, yea, it's often like that. There's one pretty awful bug in C&C where every time you start setting up your base, the game takes away power usage that can never be recovered (it adds the power usage of the Construction Yard twice when it deploys from vehicle-form to building-form; a bug in the code to activate a building if it was 'built' in this non-standard way), and I noticed that even in the Remaster they didn't fix that correctly, instead they fixed it in a way that worked for the player but gave the AI free extra power. And, after a whole day of research in the code, it also turned out they changed way too much on the wrong parts, and the real fix was one single byte Ahahaha great, I know I am not alone ;-) As soon as I address all the bugs, I will release a patch for the english version too. My challenge now is to make the patch the smallest possible! ahaha ;-) kiddin' I will play with the code to make it more efficient and less prone to unexpected behaviours. I leave it to you Raul to test it thoroughly!!! CITAZIONE , vuol dire che i programmatori hanno lasciato che la trappola fosse così? Sure, the devs put the specific code you see above in the codebox intentionally. They wanted to make the game easier, I suppose. -------------------- |
|
|
|
5 Mar 2024, 15:53
Messaggio
#558
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Yea, he's really just making an entire game upgrade patch, isn't he? Yes, but I need to know how to name my "translation" patch. Update and translation? I leave it to you Raul to test it thoroughly!!!
Messaggio modificato da raul il 5 Mar 2024, 15:55 |
|
|
|
5 Mar 2024, 22:58
Messaggio
#559
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
AHAHAHAA!
Yea, he's really just making an entire game upgrade patch, isn't he? Yes, but I need to know how to name my "translation" patch. Update and translation? Fixed Spanish Heroquest Don't know really, BTW, today I've started messing with the task 6 of the list: 6- lanciare un incantesimo in modo sbagliato (ad esempio contro un mostro non visibile) non deve sprecarlo Here the devs really used a convoluted code. There are TWO places where the "deletion" of the thrown spell takes place. Same call, different position. CODICE 01EF:2D7E E80300 call 00002D84 ($+3) 01EF:0E9A E8E71E call 00002D84 ($+1ee7) The TARGET cases are 3: Hero, Monster, all other position, and they can mix and match with the type of spell. Then they're routed to the first place or the second one. I managed to bypass the check that wastes the spell if you click on a position on the map that is not a monster or a hero. I managed to bypass the check that wastes the spell if you click on a monster for every spell BUT FOUR (ball of flame, send to sleep, heal body, tempest) Why if I fix the first of the two 2D84 calls it works and the second call does not? The problem is that in 2D7E the deletion is positioned AFTER the Text scroll (THAT SPELL HAS NO EFFECT...) is displayed, so if I bypass it I am sure is bypassed only for that case. In 0E9A the deletion is positioned WAY BEFORE all the Text scrolls for the spells that has a hero or a monster as a target. They probably wanted from the beginning that a misclicked spot would waste a spell. Fix the second part would require a massive rework of the code. At least clicking on an unoccupied tile doesn't waste any spell anymore. The wasting remain for those 4 spells only. So, the partial solution is: CITAZIONE all'offset 0x319E sostituire E80300 con 909090
e cambiare il testo su italian.BIN da: PURTROPPO LA MAGIA NON HA...EFFETTO, L'INCANTESIMO e...ANDATO SPRECATO a: NON PUOI SCEGLIERE...TALE BERSAGLIO PER...QUESTO INCANTESIMO. -------------------- |
|
|
|
5 Mar 2024, 23:23
Messaggio
#560
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Bravo, hai padroneggiato questo gioco sempre di più.
![]() Pensavo che stessi indagando sull'IA dei mostri... Non preoccuparti, in realtà il problema più grande è stato cliccare involontariamente su una posizione diversa da quella di un mostro o di un eroe, mi è capitato ed è stata una rottura di scatole. Gli incantesimi che si sprecano sui mostri, si tratta solo di imparare a usarli correttamente. Non preoccuparti di questo, hai già risolto quello importante. Domani lo proverò a fondo, ora vado a fare qualche controllo generale per poter dormire tranquillo. Messaggio modificato da raul il 5 Mar 2024, 23:36 |
|
|
|
6 Mar 2024, 12:30
Messaggio
#561
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Pensavo che stessi indagando sull'IA dei mostri... questo sarà davvero una brutta bestia. Ti avevo detto che avevo già cominciato a studiarlo, ma avevo utilizzato un approccio molto euristico, basato su tentativi e cambi di valori pseudo-casuali. Il fatto è che così non si va avanti, ci vorrebbe troppa fortuna. Devo studiare e mappare tutto il pathfinding originale. Per farti capire la complessità, e ho solo scalfito la superficie... CODICE studio diverso path per mostri che non si muovono se dietro altri mostri: 01EF:2235 è LA CALL CHE MOSTRA LA MAPPA 01EF:2268 E85800 call 000022C3 ($+58) - è la call che seleziona il mostro. 01EF:226B 59 pop cx 01EF:226C 8B36D63F mov si,[3FD6] ds:[3FD6]=4663 01EF:2270 83C61A add si,001A 01EF:2273 803EA83F00 cmp byte [3FA8],00 ds:[3FA8]=0100 - check se eroe e mostro sono a distanza 1? 01EF:2278 7503 jne 0000227D ($+3) (no jmp) - se è IL SECONDO MOSTRO SALTA DI 3 01EF:227A E95102 jmp 000024CE ($+251) (down) - una volta a contatto salta a 24CE 01EF:227D 803EA83F03 cmp byte [3FA8],03 ds:[3FA8]=0102 - questo check lo fa solo dal secondo mostro 01EF:2282 7503 jne 00002287 ($+3) (down) 01EF:2284 E94702 jmp 000024CE ($+247) (down) 01EF:2287 E2D4 loop 0000225D ($-2c) 01EF:2289 C3 ret 01EF:24CE 893ED43F mov [3FD4],di ds:[3FD4]=4DB8 01EF:24D2 8A0EA93F mov cl,[3FA9] ds:[3FA9]=0001 01EF:24D6 0AC9 or cl,cl 01EF:24D8 7455 je 0000252F ($+55) (down) 01EF:24DA 32ED xor ch,ch 01EF:24DC BBA240 mov bx,40A2 01EF:24DF 891ECA40 mov [40CA],bx ds:[40CA]=40A4 01EF:24E3 51 push cx 01EF:24E4 8B3ED43F mov di,[3FD4] ds:[3FD4]=4DB8 01EF:24E8 8B5501 mov dx,[di+01] ds:[4DB9]=0F06 01EF:24EB E8903B call 0000607E ($+3b90) 01EF:24EE 8A8F6F58 mov cl,[bx+586F] ds:[59FB]=0000 01EF:24F2 C6876F5800 mov byte [bx+586F],00 ds:[59FB]=0000 01EF:24F7 8B1ECA40 mov bx,[40CA] ds:[40CA]=40A2 01EF:24FB 8B5501 mov dx,[di+01] ds:[4DB9]=0F06 01EF:24FE 0217 add dl,[bx] ds:[018C]=1149 01EF:2500 027701 add dh,[bx+01] ds:[018D]=0611 01EF:2503 895501 mov [di+01],dx ds:[4DB9]=0F06 01EF:2506 8306CA4002 add word [40CA],0002 ds:[40CA]=40A2 01EF:250B E8703B call 0000607E ($+3b70) 01EF:250E 888F6F58 mov [bx+586F],cl ds:[AE50]=0A16 01EF:2512 81C36F54 add bx,546F 01EF:2516 895D04 mov [di+04],bx ds:[4DBC]=55E1 01EF:2519 E834F5 call 00001A50 ($-acc) 01EF:251C 8B3ED43F mov di,[3FD4] ds:[3FD4]=4DB8 01EF:2520 E81C00 call 0000253F ($+1c) 01EF:2523 E8BE3B call 000060E4 ($+3bbe) 01EF:2526 B9F401 mov cx,01F4 01EF:2529 E85B21 call 00004687 ($+215b) - questa call sposta il mostro! 01EF:252C 59 pop cx 01EF:252D E2B4 loop 000024E3 ($-4c) 01EF:252F 51 push cx 01EF:2530 B93200 mov cx,0032 01EF:2533 E86A11 call 000036A0 ($+116a) 01EF:2536 E2FB loop 00002533 ($-5) 01EF:2538 59 pop cx 01EF:2539 E853F8 call 00001D8F ($-7ad) - IL MOSTRO ATTACCA 01EF:253C E99131 jmp 000056D0 ($+3191) (down) 01EF:253F 8A4502 mov al,[di+02] ds:[EF42]=3736 01EF:2542 32E4 xor ah,ah 01EF:2544 BA000A mov dx,0A00 01EF:2547 F7E2 mul dx 01EF:2549 8BD8 mov bx,ax routine chiamata da 2268: è l'inizio del pathfinding (?) 01EF:22C3 C606A83F00 mov byte [3FA8],00 ds:[3FA8]=0000 01EF:22C8 803C00 cmp byte [si],00 ds:[4663]=06FF 01EF:22CB 7503 jne 000022D0 ($+3) (no jmp) 01EF:22CD E98101 jmp 00002451 ($+181) (down) 01EF:22D0 8A4403 mov al,[si+03] ds:[4666]=C726 01EF:22D3 3A4503 cmp al,[di+03] ds:[4DBB]=FB26 01EF:22D6 7403 je 000022DB ($+3) (down) 01EF:22D8 E97601 jmp 00002451 ($+176) (down) 01EF:22DB F6441801 test byte [si+18],01 ds:[467B]=0000 01EF:22DF 7403 je 000022E4 ($+3) (down) 01EF:22E1 E96D01 jmp 00002451 ($+16d) (down) 01EF:22E4 8B5401 mov dx,[si+01] ds:[4664]=0D06 01EF:22E7 52 push dx 01EF:22E8 57 push di 01EF:22E9 E864F7 call 00001A50 ($-89c) 01EF:22EC 5F pop di 01EF:22ED 57 push di 01EF:22EE E84E02 call 0000253F ($+24e) 01EF:22F1 E8F03D call 000060E4 ($+3df0) 01EF:22F4 B9F401 mov cx,01F4 01EF:22F7 E88D23 call 00004687 ($+238d) 01EF:22FA 5F pop di 01EF:22FB 5A pop dx 01EF:22FC 8816A53F mov [3FA5],dl ds:[3FA5]=1106 01EF:2300 8836A63F mov [3FA6],dh ds:[3FA6]=0411 01EF:2304 BBA240 mov bx,40A2 01EF:2307 891ECA40 mov [40CA],bx ds:[40CA]=40A2 01EF:230B E8703D call 0000607E ($+3d70) se disattivo questa call seleziona il mostro ma non lo muove né attacca se a contatto di base. 01EF:230E 81C36F54 add bx,546F 01EF:2312 8A07 mov al,[bx] ds:[3F28]=4040 questi tre comandi si trovano in tre punti del codice, dovrebbero disegnare quello che l'eroe vede. 01EF:2314 243F and al,3F quindi bx e al non comandano il movimento 01EF:2316 3A4503 cmp al,[di+03] ds:[4DBB]=FB26 01EF:2319 7403 je 0000231E ($+3) (down) 01EF:231B E93301 jmp 00002451 ($+133) (down) 01EF:231E B501 mov ch,01 01EF:2320 A0A53F mov al,[3FA5] ds:[3FA5]=1106 01EF:2323 2A4501 sub al,[di+01] ds:[4DB9]=0F06 01EF:2326 7504 jne 0000232C ($+4) (no jmp) 01EF:2328 B500 mov ch,00 01EF:232A EB08 jmp short 00002334 ($+8) (down) 01EF:232C 3C80 cmp al,80 01EF:232E 7204 jc 00002334 ($+4) (no jmp) 01EF:2330 F6D8 neg al 01EF:2332 B5FF mov ch,FF 01EF:2334 A2A13F mov [3FA1],al ds:[3FA1]=0100 01EF:2337 882EA33F mov [3FA3],ch ds:[3FA3]=0100 01EF:233B B501 mov ch,01 01EF:233D A0A63F mov al,[3FA6] ds:[3FA6]=0411 01EF:2340 2A4502 sub al,[di+02] ds:[4DBA]=260F 01EF:2343 7504 jne 00002349 ($+4) (no jmp) 01EF:2345 B500 mov ch,00 01EF:2347 EB08 jmp short 00002351 ($+8) (down) 01EF:2349 3C80 cmp al,80 01EF:234B 7204 jc 00002351 ($+4) (no jmp) 01EF:234D F6D8 neg al 01EF:234F B5FF mov ch,FF 01EF:2351 A2A23F mov [3FA2],al ds:[3FA2]=0001 01EF:2354 882EA43F mov [3FA4],ch ds:[3FA4]=0601 messo a 90 i mostri non si muovono in verticale come prima mossa 01EF:2358 8B5501 mov dx,[di+01] ds:[4DB9]=0F06 01EF:235B 89169F3F mov [3F9F],dx ds:[3F9F]=1006 01EF:235F C606A93F00 mov byte [3FA9],00 ds:[3FA9]=0000 01EF:2364 8A5D09 mov bl,[di+09] ds:[4DC1]=8100 01EF:2367 02DB add bl,bl 01EF:2369 02DB add bl,bl 01EF:236B 025D09 add bl,[di+09] ds:[4DC1]=8100 01EF:236E 32FF xor bh,bh 01EF:2370 8A870648 mov al,[bx+4806] [illegal] 01EF:2374 A29C3F mov [3F9C],al ds:[3F9C]=0003 01EF:2377 8A0EA23F mov cl,[3FA2] ds:[3FA2]=0001 01EF:237B A0A13F mov al,[3FA1] ds:[3FA1]=0100 01EF:237E 3AC1 cmp al,cl 01EF:2380 7203 jc 00002385 ($+3) (no jmp) 01EF:2382 EB6A jmp short 000023EE ($+6a) (down) 01EF:2384 90 nop 01EF:2385 8B169F3F mov dx,[3F9F] ds:[3F9F]=1006 01EF:2389 3836A63F cmp [3FA6],dh ds:[3FA6]=0411 01EF:238D 7425 je 000023B4 ($+25) (down) 01EF:238F A0A43F mov al,[3FA4] ds:[3FA4]=0601 01EF:2392 0AC0 or al,al 01EF:2394 741E je 000023B4 ($+1e) (down) 01EF:2396 02F0 add dh,al 01EF:2398 E8DD00 call 00002478 ($+dd) 01EF:239B 3CFF cmp al,FF 01EF:239D 7503 jne 000023A2 ($+3) (no jmp) 01EF:239F E9B500 jmp 00002457 ($+b5) (down) 01EF:23A2 0AC0 or al,al 01EF:23A4 750E jne 000023B4 ($+e) (no jmp) 01EF:23A6 8A26A43F mov ah,[3FA4] ds:[3FA4]=0601 01EF:23AA E8B000 call 0000245D ($+b0) 01EF:23AD 7303 jnc 000023B2 ($+3) (down) 01EF:23AF E99900 jmp 0000244B ($+99) (down) 01EF:23B2 EBD1 jmp short 00002385 ($-2f) (up) 01EF:23B4 8B169F3F mov dx,[3F9F] ds:[3F9F]=1006 01EF:23B8 A0A53F mov al,[3FA5] ds:[3FA5]=1106 01EF:23BB 3AC2 cmp al,dl 01EF:23BD 7503 jne 000023C2 ($+3) (no jmp) 01EF:23BF E98F00 jmp 00002451 ($+8f) (down) 01EF:23C2 A0A33F mov al,[3FA3] ds:[3FA3]=0100 01EF:23C5 0AC0 or al,al 01EF:23C7 7503 jne 000023CC ($+3) (no jmp) 01EF:23C9 E98500 jmp 00002451 ($+85) (down) 01EF:23CC 02D0 add dl,al 01EF:23CE E8A700 call 00002478 ($+a7) 01EF:23D1 3CFF cmp al,FF 01EF:23D3 7503 jne 000023D8 ($+3) (no jmp) 01EF:23D5 E97F00 jmp 00002457 ($+7f) (down) 01EF:23D8 0AC0 or al,al 01EF:23DA 7403 je 000023DF ($+3) (down) 01EF:23DC EB73 jmp short 00002451 ($+73) (down) 01EF:23DE 90 nop 01EF:23DF A0A33F mov al,[3FA3] ds:[3FA3]=0100 01EF:23E2 32E4 xor ah,ah 01EF:23E4 E87600 call 0000245D ($+76) 01EF:23E7 7303 jnc 000023EC ($+3) (down) 01EF:23E9 EB60 jmp short 0000244B ($+60) (down) 01EF:23EB 90 nop 01EF:23EC EB97 jmp short 00002385 ($-69) (up) 01EF:23EE 8B169F3F mov dx,[3F9F] ds:[3F9F]=1006 01EF:23F2 A0A53F mov al,[3FA5] ds:[3FA5]=1106 01EF:23F5 3AC2 cmp al,dl 01EF:23F7 7426 je 0000241F ($+26) (down) 01EF:23F9 A0A33F mov al,[3FA3] ds:[3FA3]=0100 01EF:23FC 0AC0 or al,al 01EF:23FE 741F je 0000241F ($+1f) (down) 01EF:2400 02D0 add dl,al 01EF:2402 E87300 call 00002478 ($+73) 01EF:2405 3CFF cmp al,FF 01EF:2407 7503 jne 0000240C ($+3) (no jmp) 01EF:2409 EB4C jmp short 00002457 ($+4c) (down) 01EF:240B 90 nop 01EF:240C 0AC0 or al,al 01EF:240E 750F jne 0000241F ($+f) (no jmp) 01EF:2410 A0A33F mov al,[3FA3] ds:[3FA3]=0100 01EF:2413 32E4 xor ah,ah 01EF:2415 E84500 call 0000245D ($+45) 01EF:2418 7303 jnc 0000241D ($+3) (down) 01EF:241A EB2F jmp short 0000244B ($+2f) (down) 01EF:241C 90 nop 01EF:241D EBCF jmp short 000023EE ($-31) (up) 01EF:241F 8B169F3F mov dx,[3F9F] ds:[3F9F]=1006 01EF:2423 3836A63F cmp [3FA6],dh ds:[3FA6]=0411 01EF:2427 7428 je 00002451 ($+28) (down) 01EF:2429 A0A43F mov al,[3FA4] ds:[3FA4]=0601 01EF:242C 0AC0 or al,al 01EF:242E 7421 je 00002451 ($+21) (down) 01EF:2430 02F0 add dh,al 01EF:2432 E84300 call 00002478 ($+43) 01EF:2435 3CFF cmp al,FF 01EF:2437 741E je 00002457 ($+1e) (down) 01EF:2439 0AC0 or al,al 01EF:243B 7514 jne 00002451 ($+14) (no jmp) 01EF:243D 8A26A43F mov ah,[3FA4] ds:[3FA4]=0601 01EF:2441 E81900 call 0000245D ($+19) 01EF:2444 7303 jnc 00002449 ($+3) (down) 01EF:2446 EB03 jmp short 0000244B ($+3) (down) 01EF:2448 90 nop 01EF:2449 EBA3 jmp short 000023EE ($-5d) (up) 01EF:244B C606A83F01 mov byte [3FA8],01 ds:[3FA8]=0000 01EF:2450 C3 ret 01EF:2451 C606A83F02 mov byte [3FA8],02 ds:[3FA8]=0000 01EF:2456 C3 ret 01EF:2457 C606A83F00 mov byte [3FA8],00 ds:[3FA8]=0000 01EF:245C C3 ret 01EF:245D 89169F3F mov [3F9F],dx ds:[3F9F]=1006 01EF:2461 8B1ECA40 mov bx,[40CA] ds:[40CA]=40A2 01EF:2465 8807 mov [bx],al ds:[3F28]=6148 01EF:2467 886701 mov [bx+01],ah ds:[3F29]=0061 01EF:246A 8306CA4002 add word [40CA],0002 ds:[40CA]=40A2 01EF:246F FE06A93F inc byte [3FA9] ds:[3FA9]=0000 01EF:2473 FE0E9C3F dec byte [3F9C] ds:[3F9C]=0003 01EF:2477 C3 ret 01EF:2478 A0BC3F mov al,[3FBC] ds:[3FBC]=0000 01EF:247B E80139 call 00005D7F ($+3901) 01EF:247E 803C00 cmp byte [si],00 ds:[4663]=06FF 01EF:2481 7408 je 0000248B ($+8) (down) 01EF:2483 3B5401 cmp dx,[si+01] ds:[4664]=0D06 01EF:2486 7503 jne 0000248B ($+3) (no jmp) 01EF:2488 B0FF mov al,FF 01EF:248A C3 ret 01EF:248B B500 mov ch,00 01EF:248D 382EBC3F cmp [3FBC],ch ds:[3FBC]=0000 01EF:2491 7412 je 000024A5 ($+12) (down) 01EF:2493 8AC5 mov al,ch 01EF:2495 E8E738 call 00005D7F ($+38e7) 01EF:2498 803C00 cmp byte [si],00 ds:[4663]=06FF 01EF:249B 7408 je 000024A5 ($+8) (down) 01EF:249D 3B5401 cmp dx,[si+01] ds:[4664]=0D06 01EF:24A0 7503 jne 000024A5 ($+3) (no jmp) 01EF:24A2 B001 mov al,01 01EF:24A4 C3 ret 01EF:24A5 FEC5 inc ch 01EF:24A7 80FD04 cmp ch,04 01EF:24AA 75E1 jne 0000248D ($-1f) (no jmp) 01EF:24AC 52 push dx 01EF:24AD E8CE3B call 0000607E ($+3bce) 01EF:24B0 5A pop dx 01EF:24B1 81C36F58 add bx,586F 01EF:24B5 803F00 cmp byte [bx],00 ds:[3F28]=6148 01EF:24B8 7403 je 000024BD ($+3) (down) 01EF:24BA B002 mov al,02 01EF:24BC C3 ret 01EF:24BD 8A8700FC mov al,[bx-0400] ds:[3B28]=E04B 01EF:24C1 243F and al,3F 01EF:24C3 3A4503 cmp al,[di+03] ds:[4DBB]=FB26 01EF:24C6 7503 jne 000024CB ($+3) (no jmp) 01EF:24C8 32C0 xor al,al 01EF:24CA C3 ret 01EF:24CB B003 mov al,03 01EF:24CD C3 ret 01EF:607E 8ADE mov bl,dh è la routine che resetta le variabili e le posizioni 01EF:6080 B700 mov bh,00 degli eroi e dei mostri 01EF:6082 03DB add bx,bx 01EF:6084 81C3C55A add bx,5AC5 01EF:6088 8B07 mov ax,[bx] ds:[0130]=0101 01EF:608A B600 mov dh,00 01EF:608C 03D0 add dx,ax 01EF:608E 8BDA mov bx,dx 01EF:6090 C3 ret Lo farò come ultima cosa. CITAZIONE Non preoccuparti, in realtà il problema più grande è stato cliccare involontariamente su una posizione diversa da quella di un mostro o di un eroe, mi è capitato ed è stata una rottura di scatole. Gli incantesimi che si sprecano sui mostri, si tratta solo di imparare a usarli correttamente. Non preoccuparti di questo, hai già risolto quello importante. Domani lo proverò a fondo, ora vado a fare qualche controllo generale per poter dormire tranquillo. Fammi sapere. Lo segno come FIX PARZIALE, anche se è risolto al 90%. Per tutti gli incantesimi che non richiedon linea di vista il problema non c'è, visto che l'incantesimo se lanciato su un mostro o eroe viene correttamente applicato e rimosso. Nel frattempo ho deciso di compilare la lista dei fix fatti e in corso nel primo post. Così sarà più facile tenerne traccia e ricordarsi cosa è stato fatto. Di alcuni me ne ero proprio scordato! meno male che mi segno sempre tutto. ;-) Raul, hai provato il dosbox con savestate? Se hai domande chiedi pure. -------------------- |
|
|
|
6 Mar 2024, 19:29
Messaggio
#562
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Fammi sapere. Lo segno come FIX PARZIALE, anche se è risolto al 90%. Per tutti gli incantesimi che non richiedon linea di vista il problema non c'è, visto che l'incantesimo se lanciato su un mostro o eroe viene correttamente applicato e rimosso.[/url] Stamattina mi sono svegliato presto e ho potuto fare qualche controllo e in effetti solo gli incantesimi usati a lungo raggio vengono sprecati quando in realtà sono a corto raggio. Leggendo il tuo messaggio me l'hai confermato, immagino sia sciocco per me testarlo a fondo. CITAZIONE Nel frattempo ho deciso di compilare la lista dei fix fatti e in corso nel primo post. Lo so e lo seguo da vicino per vedere quali cose aggiungete XD. A proposito, voglio proporvi altri punti da aggiungere alla lista. CITAZIONE Sì ed è molto utile, quello che non so è come risolvere l'orribile suono che produce nel gioco. È come se gli effetti sonori non funzionassero. Messaggio modificato da raul il 6 Mar 2024, 19:30 |
|
|
|
6 Mar 2024, 23:19
Messaggio
#563
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Sono riuscito a risolvere il problema del suono del programma.
C'è una cosa molto curiosa che ho visto mentre provavo questo nuovo dosbox: l'incantesimo del coraggio. Uso l'incantesimo con un mostro da vicino. ![]() Uso l'incantesimo su un eroe da lontano. ![]() Negli incantesimi palla di fuoco e a distanza ravvicinata, dovrebbe esserci quel messaggio e non il primo testo e, come avete potuto vedere, c'è anche il testo che indica che un incantesimo non ha effetto contro un nemico. Ora un'altra cosa... Ho notato che se si usa questo incantesimo con il proprio eroe contro il muro della stanza successiva dove si trova il bersaglio (un altro eroe), funziona perfettamente. Questo mi è venuto in mente quando hai detto che con la tua modifica all'IA i nemici attaccano anche quando sono in un'altra stanza. Ti ho chiesto se i mostri attaccassero attraverso il muro e, confrontando il comportamento dell'incantesimo, sarebbe logico che i mostri attaccassero in quel modo. Messaggio modificato da raul il 6 Mar 2024, 23:25 |
|
|
|
7 Mar 2024, 11:18
Messaggio
#564
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
![]() ![]() corretto, il primo è quello generico quando lanci un incantesimo su un MOSTRO fuori portata o su un qualunque altro punto della mappa. il secondo esce solo quando lanci un incantesimo contro un EROE fuori portata. Fa un check particolare, è proprio voluto. Il codice del lancio incantesimi è davvero complesso. Non è flessibile per niente, evidentemente non avevano previsto l'aggiunta di nuovi incantesimi. CITAZIONE Ho notato che se si usa questo incantesimo con il proprio eroe contro il muro della stanza successiva dove si trova il bersaglio (un altro eroe), funziona perfettamente. Questo mi è venuto in mente quando hai detto che con la tua modifica all'IA i nemici attaccano anche quando sono in un'altra stanza. Ti ho chiesto se i mostri attaccassero attraverso il muro e, confrontando il comportamento dell'incantesimo, sarebbe logico che i mostri attaccassero in quel modo. l'avevo notato anche io, ma ero stato zitto per paura che mi facessi mettere a posto anche quello! e invece te ne sei accorto... Ho visto che succede anche se lanci una palla di fuoco contro i mostri da una stanza adiacente senza linea di vista. Questo è grave. Fai una prova raul a proposito di F5 sul forum, non hai bisogno di fare il refresh della pagina, ti basta attivare la sottoscrizione della discussione, clicca in alto a destra OPZIONI, Sottoscrivi questa discussione. Così ti arriva la notifica via mail. -------------------- |
|
|
|
7 Mar 2024, 18:42
Messaggio
#565
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
corretto, il primo è quello generico quando lanci un incantesimo su un MOSTRO fuori portata o su un qualunque altro punto della mappa. il secondo esce solo quando lanci un incantesimo contro un EROE fuori portata. Fa un check particolare, è proprio voluto. Il codice del lancio incantesimi è davvero complesso. Non è flessibile per niente, evidentemente non avevano previsto l'aggiunta di nuovi incantesimi. Intendo dire che in realtà abbiamo tutti i casi possibili e le loro funzioni già integrate nel gioco e che potrebbero essere aggiustate negli incantesimi per migliorare i testi. So che è molto difficile e che bisogna andare in profondità nel codice, ma vedendo la tua progressione, ciò che ora sta andando in profondità per te, con l'evoluzione che stai avendo, prima o poi conoscerai il codice molto meglio e non sembrerà così tanto come ora. Ci sono cose più importanti, su questo sono d'accordo, voglio solo che tu lo tenga a mente per il futuro, che forse non ne vale la pena, ma non si sa mai se un giorno lo vedrai con occhi diversi. CITAZIONE l'avevo notato anche io, ma ero stato zitto per paura che mi facessi mettere a posto anche quello! e invece te ne sei accorto... Non contavano sulla mia astuzia... ![]() CITAZIONE a proposito di F5 sul forum, non hai bisogno di fare il refresh della pagina, ti basta attivare la sottoscrizione della discussione, clicca in alto a destra OPZIONI, Sottoscrivi questa discussione. Così ti arriva la notifica via mail.
Messaggio modificato da raul il 7 Mar 2024, 18:44 |
|
|
|
7 Mar 2024, 19:13
Messaggio
#566
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Bene, dopo il mio tentativo di farvi aggiungere alla lista per correggere gli incantesimi, vado a cercare un altro "bug" che trovo curioso.
Probabilmente lo sapete già, ma quando si entra in una stanza attraverso una porta, una volta entrati, non si può tornare indietro attraverso la stessa porta, almeno in quel turno, e, al massimo, si può uscire dalla stanza in quel turno usando un'altra porta. Credo che l'abbiano fatto per dare un po' di difficoltà al gioco, il che non mi sembra sbagliato, anche se nel gioco da tavolo questo non è contemplato, anzi, voglio proporre che non si possa uscire da quel turno attraverso un'altra porta, ma ovviamente tutto questo tenendo conto della scarsa IA dei mostri, visto che attaccano solo se ci si trova nella stessa sezione visibile. Un altro fatto importante è che se ci sono 2 porte in un corridoio, una volta entrati nel corridoio attraverso una di queste porte, non si può più attraversare l'altra porta e si deve rimanere nel corridoio per quel turno, il gioco probabilmente rileverà le due porte come la stessa cosa, cioè come se si fosse entrati da entrambe, essendo interpretate come porte di ingresso. Non sono un programmatore, ma credo che il gioco interpreti le porte in due modi, ingresso e uscita, quindi nella stessa stanza non si può tornare indietro attraverso la porta da cui si è entrati ma si può passare attraverso un'altra porta che chiamerei di uscita. Spero che il traduttore traduca bene questa spiegazione, altrimenti posso fare degli screenshot e mettere in scena un po' la spiegazione. Messaggio modificato da raul il 7 Mar 2024, 19:19 |
|
|
|
7 Mar 2024, 21:47
Messaggio
#567
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Un altro fatto importante è che se ci sono 2 porte in un corridoio, una volta entrati nel corridoio attraverso una di queste porte, non si può più attraversare l'altra porta e si deve rimanere nel corridoio per quel turno, il gioco probabilmente rileverà le due porte come la stessa cosa, cioè come se si fosse entrati da entrambe, essendo interpretate come porte di ingresso. Credo di ricordare il punto a cui ti riferisci. Se non sbaglio le due porte si affacciano sulla stessa casella del corridoio. Secondo me il check rudimentale che hanno applicato è che appena cambi stanza venga applicato un flag su quella casella che non permette al giocatore di attraversare di nuovo la porta. Basta spostare la seconda porta nella casella a fianco per risolvere. il fatto che non abbiano permesso all'eroe di tornare da dove è venuto è stato per rendere la situazione più difficile e, visto che i mostri non possono inseguirti fuori dalla stanza, la scelta più ponderata. -------------------- |
|
|
|
7 Mar 2024, 22:26
Messaggio
#568
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Credo di ricordare il punto a cui ti riferisci. Se non sbaglio le due porte si affacciano sulla stessa casella del corridoio. Sì, c'era un corridoio che era un'unica casella e conteneva entrambe le porte, ma c'era anche un altro corridoio con più caselle che facevano la stessa cosa, o almeno così ricordo. Sarebbe possibile fare lo stesso con le altre porte di una stanza per evitare che escano nello stesso turno o sarebbe troppo complicato da studiare? Messaggio modificato da raul il 7 Mar 2024, 22:29 |
|
|
|
7 Mar 2024, 23:30
Messaggio
#569
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Sarebbe possibile fare lo stesso con le altre porte di una stanza per evitare che escano nello stesso turno o sarebbe troppo complicato da studiare? Sarebbe sbagliato perché nel gioco da tavolo puoi farlo. Aprire una porta è un'azione gratuita e il regolamento non limita il giocatore ad aprire più di una porta. Del resto, la nuova stanza potrebbe avere mostri, saresti fregato ugualmente. -------------------- |
|
|
|
8 Mar 2024, 00:16
Messaggio
#570
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Credo di essere riuscito a mettere a posto anche la seconda parte degli incantesimi.
Ho trovato un sistema che mi ha permesso di scambiare due blocchi di posto, cambiando relativamente poco codice. Visto che il blocco 1 era quello che cancella la magia, mentre il blocco 2 successivo quello che controlla se la magia è stata lanciata su un eroe o su un mostro fuori dalla linea di vista, è bastato invertirli di posto in modo che PRIMA avvenisse il controllo eroe/mostro e POI la cancellazione della magia, ma solo se il controllo era positivo alla linea di vista.
BLOCK_SHIFTED.jpg ( 298.88k )
Numero di download: 2Siccome ora non perde più la magia ma solo l'azione (come è giusto che sia) ho rielaborato le frasi in questo modo:
Screenshot_2024_03_08_000653.png ( 36.04k )
Numero di download: 2
Screenshot_2024_03_08_000824.png ( 29.28k )
Numero di download: 2CITAZIONE SOLUTION: in uncompressed QUEST.EXE at offset 0x12B9 substitute these 0x65 bytes: 50E8E71EE8C41A583C0674593C0D74553C097451A0CA3F3A45197449E863073C1572108AE88B1ED0 3F8A8700FC243F3AC57432803ECA3F05720FE86802803EA83F007403E98A00EB1CA0CA3FE8974E8A7 C018A5C02E85702BB2400803EA83F007403EB7090 with: 3C0674593C0D74553C097451A0CA3F3A45197449E86B073C1572108AE88B1ED03F8A8700FC243F3A C57432803ECA3F05720FE87002803EA83F007403E99200EB1CA0CA3FE89F4E8A7C018A5C02E85F02B B2400803EA83F007403EB789050E88A1EE8671A58 Raul, ti tocca testare per bene tutte le magie e combinazioni ora. ;-) -------------------- |
|
|
|
8 Mar 2024, 06:09
Messaggio
#571
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Mi stai abituando male, sai cosa significa?
Messaggio modificato da raul il 8 Mar 2024, 06:13 |
|
|
|
8 Mar 2024, 13:32
Messaggio
#572
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
![]() Ho verificato che il testo "QUANDO ENTRI, IL SIGNORE DEGLI STREGONI ..." è completamente orfano. Non esiste nessun riferimento da nessuna parte nell'exe. Evidentemente è stata una cosa prevista ma mai implementata. Ho trovato questo testo nella missione "The Halls of the Dead": CITAZIONE B- This is the hall of the Witch Lord, use the Chaos Sorcerer to represent him as he stands in the space marked X. Do not lay this room out until the Dwarf or Wizard reveal it. The Elf and Barbarian then start here. They do not have any equipment, Treasure, Spells, Artefacts, etc. When the Dwarf or Wizard enter the Witch lord curses them and vanishes in a puff of smoke, they are then free to move normally. In quella missione non avviene nulla di tutto ciò, forse avevano finito il tempo e hanno dovuto tagliare quella parte della missione. Assieme alla 21, sono le uniche missioni senza eventi speciali. Anche la stanza centrale ha un sacco di mostri e un forziere ma nessuna ricompensa. E' una missione lasciata a metà, sarebbe da rivedere. probabilmente il forziere era pensato per questo: CITAZIONE C All the Elf and Barbarian’s belongings are in this Treasure Chest, save for all their Gold, Gems and other valuables.
-------------------- |
|
|
|
8 Mar 2024, 17:20
Messaggio
#573
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
EUREKA!
I've finally found the function in charge to make the GENIE SPELL "reveal room content" FULLY FUNCTIONAL!
Screenshot_2024_03_08_154802.png ( 22.95k )
Numero di download: 1CITAZIONE SOLUTION: At offset 0x3182 substitute 04 with 03 Again, 3 days, one single bastard byte. There is one catch, by the way: that part of the Genie spell can be repeated every turn. And this could likely be the reason they decided to disable it. Or maybe they made an error and it never came out in testing. It has nothing to do with my new code that does not waste a spell if not casted correctly, since I've tested the Genie-reveal fix also BEFORE the spell-waste fix. I am a bit torn between leaving it reusable or making it usable once only. I would be inclined to choose the former, but I want your opinions. Here are the pros and cons: CON: - in the boardgame the original spell is usable once - every turn the spellcaster can reveal a room/corridor - the devs decided to ditch it rather than fix it - it requires additional code to cram into already zero space free - could potentially spoil the fun of exploring if abused (raul) PRO: - in the pc game the spell is broken, now it works - in the boardgame I NEVER SAW ONCE the GENIE used to reveal a room rather than to attack - the room is only revealed, you can still search for traps/treasure once inside. - makes the spell more appealing - gives to the gameplay another possible tactic approach - it is not a gamebreaker - the spellcaster can only either use this spell or perform a physical attack - the choice of abuse the spell is up to the player, this choice was simply not possible before the fix - explore the room by using the key or the spell has the same effect, only the latter is performed by distance - opening a door from the outside is like an infinite reveal spell, since monster cannot chase you outside the room Please add yours Now the techincal (boring) part: CODE 01EF:2D1D F6069B3F02 test byte [3F9B],02 ds:[3F9B]=0400 01EF:2D22 7405 je 00002D29 ($+5) (no jmp) 01EF:2D24 C6062C4000 mov byte [402C],00 ds:[402C]=0000 01EF:2D29 E81D33 call 00006049 ($+331d) 01EF:2D2C C606AF3F00 mov byte [3FAF],00 ds:[3FAF]=0000 01EF:2D31 8B3E3746 mov di,[4637] ds:[4637]=4697 01EF:2D35 8A0EC93F mov cl,[3FC9] ds:[3FC9]=0003 <--- capire dove viene messo a 3 questo byte. 01EF:2D39 F606C93F01 test byte [3FC9],01 ds:[3FC9]=0003 !!! POTREBBE ESSERE LA SOLUZIONE AL RIVELARE !!! 01EF:2D3E 740A je 00002D4A ($+a) (no jmp) 01EF:2D40 A0B53F mov al,[3FB5] ds:[3FB5]=00FF <--- d 0:F665 (cambia con mov al,[si+01]) vedi sotto 01EF:2D43 3CFF cmp al,FF (verificare SI+19) 01EF:2D45 7403 je 00002D4A ($+3) (no jmp) <--- se tolgo questo jump funziona ma rompo l'attacco del genio 01EF:2D47 E92FE1 jmp 00000E79 ($-1ed1) (up) <--- QUESTA CALL FA RIVELARE LA STANZA! 01EF:2D4A F606C93F02 test byte [3FC9],02 ds:[3FC9]=0003 01EF:2D4F 7423 je 00002D74 ($+23) (no jmp) 01EF:2D51 A0AC3F mov al,[3FAC] ds:[3FAC]=0100 <--- questo byte cambia se sposto su un mostro 01EF:2D54 803EAC3F00 cmp byte [3FAC],00 ds:[3FAC]=0100 01EF:2D59 7403 je 00002D5E ($+3) (no jmp) 01EF:2D5B E9F0E0 jmp 00000E4E ($-1f10) (up) 01EF:2D5E F606C93F04 test byte [3FC9],04 ds:[3FC9]=0003 <--- EUREKA!!! se setto 03 invece di 4 funziona e non rompe l'attacco. 01EF:2D63 740F je 00002D74 ($+f) (no jmp) 01EF:2D65 803EAD3F00 cmp byte [3FAD],00 ds:[3FAD]=0101 <--- questo byte cambia se sposto in zone vuote 01EF:2D6A 7408 je 00002D74 ($+8) (no jmp) 01EF:2D6C C606CA3F06 mov byte [3FCA],06 ds:[3FCA]=0000 01EF:2D71 E90BE1 jmp 00000E7F ($-1ef5) (up) 01EF:2D74 BB5600 mov bx,0056 <--- scroll incantesimo "sprecato" 01EF:2D77 E8735B call 000088ED ($+5b73) 01EF:2D7A 8B3E3746 mov di,[4637] ds:[4637]=4697 01EF:2D7E E80300 call 00002D84 ($+3) <--- sostituito da 909090 come fix parte 1 dello spell-waste fix 01EF:2D81 E926E5 jmp 000012AA ($-1ada) (up) Basically I first tried removing the conditional jump at 2D45 after FF compared at 2D43 to go directly to the call E79 that IS in charge of revealing the room, but It happened that the subsequent attack of a genie does not function at all (you click on the monster and nothing happens). Then I investigated the other checks by looking at how and when the various locations (3FC9,3FAC, 3FAD, 3FCA) would change while hovering the mouse over the tiles of the map. I've discovered cool things, like the coordinates of the mouse, the id of the target, whether or not the mouse is inside the map or outside, an already discovered room, heroes IDs... The coolest thing was discovering that [3FC9] stores the byte of the line of sight flag of the spell you're casting: 1=in sight 3=out of sight every spell has a flag set, and can be only 1 or 3. Genie reveal is 3, but this code above only checks for 1,2 or 4. I didn't figure out yet what 2 or 4 does but they exit the loop in the same way, so I chose the bottom one (test 3FAD, 4) and that did the trick! The 3FAD is never set other than 1 or 3 in the code, but I can be wrong because it can be set using addition or combination of different registers or locations, so I need further testing. Please Raul go for it! EDIT: the change breaks the spell "fire of wrath". So a rollback and further analysis are needed. SOLUTION 2: https://www.oldgamesitalia.net/forum/index....mp;#entry388475 -------------------- |
|
|
|
8 Mar 2024, 18:24
Messaggio
#574
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
![]() I am a bit torn between leaving it reusable or making it usable once only. senza dubbio, dovrebbe essere usato solo una volta, altrimenti si perde il divertimento e l'avventura di visitare tutti i luoghi inesplorati. Messaggio modificato da raul il 8 Mar 2024, 18:25 |
|
|
|
8 Mar 2024, 18:49
Messaggio
#575
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Ho trovato questo testo nella missione "The Halls of the Dead": CITAZIONE B- This is the hall of the Witch Lord, use the Chaos Sorcerer to represent him as he stands in the space marked X. Do not lay this room out until the Dwarf or Wizard reveal it. The Elf and Barbarian then start here. They do not have any equipment, Treasure, Spells, Artefacts, etc. When the Dwarf or Wizard enter the Witch lord curses them and vanishes in a puff of smoke, they are then free to move normally. In quella missione non avviene nulla di tutto ciò, forse avevano finito il tempo e hanno dovuto tagliare quella parte della missione. Assieme alla 21, sono le uniche missioni senza eventi speciali. Anche la stanza centrale ha un sacco di mostri e un forziere ma nessuna ricompensa. E' una missione lasciata a metà, sarebbe da rivedere. probabilmente il forziere era pensato per questo: CITAZIONE C All the Elf and Barbarian’s belongings are in this Treasure Chest, save for all their Gold, Gems and other valuables. Sì, sono molto tagliati, ma lo sapevamo già, e mancano ancora alcune cose... ![]() |
|
|
|
![]() ![]() |
| Versione Lo-Fi | Oggi è il: 4th November 2026 - 10:33 |