Usare un oggetto su un altro

scusate l'ignoranza

« Older   Newer »
 
  Share  
.
  1. Dallo95
     
    .

    User deleted


    Sto da poco usando AGS, ma non riesco a fare una cosa. Per esempio, io ho fatto raccogliere al mio personaggio una chiave, e ho fatto sì che una porta presente nella stanza fosse chiusa. Come faccio a far cambiare stanza al mio personaggio una volta usata la chiave sulla porta? Scusate l'ignoranza, ma ho provato molte volte e non ci riesco...
     
    .
  2.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    molto semplice
    impara queste righe e avrai imparato a fare quasi tutto con AGS

    quello che scrivo e' riferito a AGS 3.0 e superiori nelle versioni precedenti era diverso

    allora, la porta sia che sia un hotspot sia che sia un object ha le stesse interazioni, quinidi seleziona la porta e in basso a sinistra/destra avrai la tabellina con i suoi dati, clicca sull'icona del fulmine e avrai la scleta tra le interazioni possibili (talk to, interact to, use inventory ...)
    Ora clicca sul pulsante [...] vicino a "Use invenctory on Hotspot"(o object se e' un object) e si aprira' la magica pagina degli script

    Se AGS ti dice che non e' possibile fare quest'azione e' perche' la porta non possiede ancora uno script name, quindi torna nella tabella principale della porta e dagliene uno facile e non troppo lungo tipo hPORTA(hotspot) oPORTA(object)

    ORa torniamo alla pagina degli script, nel paragrafino che ti ha aperto prima tra le due parentesi graffe devi inserire la condizione

    CODICE
    if (player.ActiveInventory == "script name dalla chiave) {

    "script name del personaggio giocante".ChangeRoom( int.room,x,y);}


    tutto qui', devi solo sostituire gli scirpt name nelle descrizioni tra virgolette e nella parentesi del comando per cambiare stanza il numero della stanza e la coordinata x e y

    se vuoi aggiungere un commento per quando si usa con la porta un altro oggetto che non serve

    inserisci dopo il codice precedente

    CODICE
    else { "nome script del personaggio".Say("non serve ad aprire le porte!"); }


    se inevece la condizione e' di possedere un tale oggetto

    CODICE
    if (player.HasInventory("script name dell'oggetto"){
    inserisci quello che vuoi che succeda }
     
    .
  3. Dallo95
     
    .

    User deleted


    Grazie mille Wario! Ci sono riuscito. Già che mi viene in mente, ti sfrutto e ti chiedo un'altra cosa :asd:
    Sono riuscito a fare perdere la chiave dopo l'apertura della porta. Come fare per renderla sempre accessibile dal momento in cui si usa la chiave? Grazie ancora ;)
     
    .
  4.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    allora, nel caso la porta sia un object e' molto semplice

    crei due volte l'oggetto porta nella stanza e le metti nello stesso punto
    una ha il parametro visible nella tabella true, mentre l'altra false

    quella che inizia con visible true sara' quella su cui usare la chiave

    l'altra che parte con visible false sara' quella che una volta usata la chiave potra' essere aperta interagendoci normalmente

    ora dobbiamo alternarle

    nello script in cui usi la chiave aggiungi

    CODICE
    "script name della porta visibile".Visible = false;
    "script name della porta invisibile.Visible = true;


    Cosi' ora si vede solo la porta che si apre interagendoci


    Se invece la porta e' in hotspot la cosa e' piu' difficile perche' due diversi hotspot non possono essere uno sopra l'altro

    nell'ultimo gioco che sto' programmando in questi giorni ho risolto mettendo l'hotspot serratura e l'hotspot porta

    una volta usata la chiave l'hotspot serratura scompare e compare l'hotspot porta

    il comando per rendere visibile un hotspot e' questo
    CODICE
    "script name  hotspot".Enabled = "true o false";
     
    .
  5. Il_Ratman
     
    .

    User deleted


    Questo topic diventerà il nuovo "E' possibile girare l'immagine?"
    https://miforum.forumcommunity.net/?t=40680080&st=405
    :asd: Grande Wario!
     
    .
  6. Dallo95
     
    .

    User deleted


    Ok lo sto facendo con gli oggetti, ho capito quello che devo fare, ma comunque devo mettere all'oggetto porta lo sprite con l'immagine della porta o posso come con gli hotspot delimitare un'area dello sfondo? Grazie ancora ;)
     
    .
  7.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    devi mettere la sprite, la grandezza degli oggetti e' determinata infatti dalla loro immagine

    per gli enigmi che cambiano la grafica della stanza ti consiglio di usare gli oggetti, gli hotspot invece funzionano bene per enigmi del tipo

    cassa di arance, raccogli un' arancia
     
    .
  8.  
    .
    Avatar

    Aspirante Re dei Pirati

    Group
    WJ Radiofeccia
    Posts
    4,304
    Location
    Dantooine. Accademia Jedi

    Status
    Offline
    E' cambiato lo script di AGS, cavolo erano anni che non lo guardavo ed è codice java a tutti gli effetti, usa interfacce con metodi personalizzati (player.HasInventory ad esempio) anche se con sintassi errata (la convenzione Java dice che i nomi dei metodi devono iniziare con la lettera minuscola, dovrebbe essere player.hasInventory, ma non cambia nulla ai fini pratici).
    Appena finisco la sessione di esami mi ci rimetto a guardarlo, dovrebbe risultarmi infinitamente semplice :asd:
    Wario, c'è mica una documentazione di AGS? Grazie
     
    .
  9.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    Certo, ogni versione di Ags ha il tasto "Dynamic Help" dove trovi una libreria con tutte le funzioni possibili, inoltre e' uscita da poco la versione 3.2 che ha aggiunto nuovi metodi di lettura e compilazione dei file audio e ha reso piu' brevi alcuni vecchi codici
     
    .
  10. Dallo95
     
    .

    User deleted


    Perfetto Wario, grazie mille.
     
    .
  11.  
    .
    Avatar

    Aspirante Re dei Pirati

    Group
    WJ Radiofeccia
    Posts
    4,304
    Location
    Dantooine. Accademia Jedi

    Status
    Offline
    CITAZIONE (WarioPunk @ 9/2/2012, 12:22) 
    Certo, ogni versione di Ags ha il tasto "Dynamic Help" dove trovi una libreria con tutte le funzioni possibili, inoltre e' uscita da poco la versione 3.2 che ha aggiunto nuovi metodi di lettura e compilazione dei file audio e ha reso piu' brevi alcuni vecchi codici

    No, intendevo una cosa tipo la documentazione delle API di Java, ovvero questo http://docs.oracle.com/javase/7/docs/api/index.html
    Cmq vedrò com'è sto dynamic help, nel caso ti rompo su MSN :asd:
     
    .
  12.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    Una documentazioe del genere dovrebbe essere disponibile perche' un paio d'anni fa' AGS e' diventato parzialmente opensource (totalmente solo per la piccola cerchia di programmatori che lo aggiorna)

    per il dynamic help apri AGS e premi F1 oopure vai su Help e poi e' la prima opzione
     
    .
  13. Dallo95
     
    .

    User deleted


    Un'altra cosa: nei dialoghi, o nelle descrizioni, quando metto lettere accentate come È, ò, ecc., al loro posto mi mette un ?. Ho provato a cambiare font, ma non cambia nulla. Come faccio per fare venire le lettere accentate? Grazie
     
    .
  14.  
    .
    Avatar

    Terrore dei mari

    Group
    Member
    Posts
    2,813
    Location
    Forlì

    Status
    Offline
    sono problemi di font, il font che usi non contiene quei caratteri, lo puoi vedere nella sezione font dle menu'

    io ormai per questo problema sono abituato a usare gli apostrofi come accenti
     
    .
  15. Dallo95
     
    .

    User deleted


    Ho capito grazie ^^
     
    .
18 replies since 4/2/2012, 15:43   186 views
  Share  
.