Problema ds_map versione 1.3

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Problema ds_map versione 1.3

Messaggio da Vallo92 »

Dopo aver aggiornato GMS all'ultima versione (v1.3.1307) ho riscontrato uno strano problema per quanto riguarda l'utilizzo delle ds_map.
Praticamente creo una ds_map ad inizio gioco contenente la traduzione di ogni singola parola del gioco, in base alla lingua del dispositivo su cui viene eseguito.
Nel creation code della prima room di gioco (nel mio caso il menu iniziale) vado a richiamare uno script contenente la creazione della ds_map apposita in base al linguaggio del dispositivo con questo codice:

Codice: Seleziona tutto

switch (os_get_language())
{
    case "it": script_execute(ds_map_italian); break;
    default: script_execute(ds_map_english); break;
}
Di conseguenza viene generata una ds_map contenente tutte le traduzioni del linguaggio scelto.
Il fatto strano è che dopo l'aggiornamento all'ultima versione il tutto non funziona più correttamente (fino alla versione 1.2 funzionava tutto alla perfezione), e quando dovrebbe essere scritto del testo mi viene ridato questo errore:
Spoiler

Codice: Seleziona tutto

___________________________________________
############################################################################################
ERROR in
action number 1
of Draw Event
for object obj_menu:

Data structure with index does not exist.
 at gml_Script_traduci (line 1) - return ds_map_find_value("linguaggio", argument0);
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_traduci (line 1)
called from - gml_Object_obj_menu_DrawEvent_1 (line 15) - draw_text(480, 366.5, traduci("inizia"));
Qualcuno sa dirmi se ci sono state modifiche nell'utilizzo delle ds_map che impediscano il corretto funzionamento di questo codice?
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da gameplay_extreme »

non sono affatto pratico di ds_list ma dando un'ochiata al man mi sembrano sospette quelle virgolette attorno a "linguaggio"
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da Vallo92 »

Codice: Seleziona tutto

ds_map_find_value("linguaggio", argument0);
Gli argomenti sono impostati correttamente. "linguaggio" è l'id, mentre l'argument0 riporta alla key.
Riprovando e riprovando ho notato che alcune volte il gioco si avvia correttamente ma parte delle traduzioni non vengono visualizzate. Come ho detto prima dell'aggiornamento lo script (riportato paro paro con un copia/incolla) funzionava alla perfezione.
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da Homunculus »

L'id della map è un valore numerico ritornato dalla funzione ds_map_create, non puó essere una stringa.

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da Vallo92 »

Ho tolto le virgolette a "linguaggio", ma il problema persiste... Addirittura adesso, dopo che clicco sul tasto Abort per chiudere la segnalazione di GM dell'errore, mi appare una finestrella di errore di esecuzione di GM dove mi dice che GM ha smesso di funzionare correttamente (quando avevo le "" questo non accadeva).
Avvio gioco:

Codice: Seleziona tutto

switch (os_get_language())
{
    case "it": script_execute(ds_map_italian); break;
    default: script_execute(ds_map_english); break;
}
ds_map_italian (ovviamente parte dei molti ds_map_add):

Codice: Seleziona tutto

linguaggio = ds_map_create();
ds_map_add(linguaggio, "inizia", "INIZIA");
ds_map_add(linguaggio, "esci", "ESCI");
traduci:

Codice: Seleziona tutto

return ds_map_find_value(linguaggio, argument0);
Esempio richiamo script:

Codice: Seleziona tutto

draw_text(480, 366.5, traduci("inizia"));
Riuscite a capire dove sbaglio?
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da gameplay_extreme »

non ho fatto prove approfondite però...

ho copiaincollato su GM:Studio il codice da te postato nell' ultimo post e funziona (fa esattamente ciò che ci si aspetta che faccia...)

versione usata: GM:S v1.2.1279 (r30049)
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Problema ds_map versione 1.3

Messaggio da Vallo92 »

Una volta che ho aggiornato GM alla 1.3 però il codice non mi ha funzionato più correttamente... Mi viene restituito l'errore che ho postato ad inizio post.
Qualcuno che ha la 1.3 può provare il codice e dirmi se gli viene riscontrato il solito errore?
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Rispondi

Chi c’è in linea

Visitano il forum: Google [Bot] e 43 ospiti