[AP] Una domanda per programmazione script

Il luogo dove parlare di tutti i plug-in e i mod disponibili per X², X³, X³TC e X³AP.

Moderator: Moderatori per il Forum Italiano

Post Reply
TAOIT
Posts: 91
Joined: Sat, 13. Feb 10, 15:30
x4

[AP] Una domanda per programmazione script

Post by TAOIT » Mon, 11. Mar 13, 22:13

Ciao a tutti,
non riesco bene a capire come funziona un comando per script,
ovvero : $Classe = $Target -> get object class
Con quale criterio mi viene dato il risultato??
Mi spiego, ammettendo che il target sia una nave, se dopo questo comando metto una riga con scritto :
if $Classe == Nave
...
...
else
...
...
end
vengono eseguite sempre le righe tra else e end.
Eppure il target è una Nave, ma ho visto che Classe è uguale a M6 (se target è un M6 ovviamente).

Spero di essere stato chiaro, grazie in anticipo, ciao.

User avatar
Juggernaut93
Posts: 2897
Joined: Sun, 17. Jul 11, 21:03
x4

Post by Juggernaut93 » Wed, 13. Mar 13, 18:47

Vedi se questo ti può essere utile :)

TAOIT
Posts: 91
Joined: Sat, 13. Feb 10, 15:30
x4

Post by TAOIT » Thu, 14. Mar 13, 17:45

Ti ringrazio per la risposta, ma avevo gia visto l'articolo, il fatto è che non so quale è la priorita per la classe della risposta.
Se andrebbe nell'ordine mi dovrebbe dare ship perche viene prima, invece mi da M6 che è dopo, boh non so.

User avatar
-Dna-
Posts: 16661
Joined: Mon, 3. Jan 05, 13:11
x4

Post by -Dna- » Thu, 14. Mar 13, 20:04

Il metodo get object class ritorna la classe dell'oggetto a cui viene applicato. Non esiste alcuna classe "Nave" o "Ship" o "oggetto che vola", ma esistono "M3", "M6", "ST", eccetera.

Per fare quel controllo, posso suggerirti di usare il metodo is of class pensato appositamente per quel tipo di controllo:

Code: Select all

if $ship of class "M5"
    // esplodi
else
    // azzera scudi
end
Un modo semplice per sapere cosa ritorna un metodo è scrivere sul proprio diario di bordo e vedere cosa è stato scritto. Prendendo l'esempio dal MSCI reference:

Code: Select all

$my.class = [PLAYERSHIP] -> get object class 
write to player logbook $my.class
Remember: Good things don't come to an end: good things just stop. ~ [cit. Sean "Day[9]" Plott]

:xenon: Xenon Love! \#/ :xenon:
:split: Grill the Borons! :split:
:pirat: Real pirates (ab)use Jumpdrive (and Rum) :pirat:

User avatar
Juggernaut93
Posts: 2897
Joined: Sun, 17. Jul 11, 21:03
x4

Post by Juggernaut93 » Thu, 14. Mar 13, 20:40

Code: Select all

$class = [THIS]->get object class
write to player logbook $class
if $class == Nave
  write to player logbook '1'
end
if $class == M5
  write to player logbook '2'
end
if $class->is of class Nave
  write to player logbook '3'
end
if [THIS]->is of class Nave
  write to player logbook '4'
end
return null
Eseguendo questo codice su un M5, il risultato è il seguente:
  • Sul diario di bordo viene scritto 'M5', che è il tipo più "vicino" all'oggetto selezionato.
  • NON viene scritto '1', perché in effetti 'M5' è diverso da 'Nave'
  • VIENE scritto invece '2', per ovvi motivi
  • VIENE scritto anche '3', perché il comando "is of class" riconosce che 'M5' è un tipo derivato da 'Nave'
  • VIENE scritto '4', per lo stesso motivo
EDIT: Per ulteriori info sulle classi di oggetti c'è questa vecchia immagine che si riferisce a X2, ma che è ancora valida (a parte per le classi di navi aggiunte con Reunion e TC).

User avatar
-Dna-
Posts: 16661
Joined: Mon, 3. Jan 05, 13:11
x4

Post by -Dna- » Thu, 14. Mar 13, 21:34

Juggernaut93 wrote:EDIT: Per ulteriori info sulle classi di oggetti c'è questa vecchia immagine che si riferisce a X2, ma che è ancora valida (a parte per le classi di navi aggiunte con Reunion e TC).
[ external image ]



Mi mancava :lol:
Remember: Good things don't come to an end: good things just stop. ~ [cit. Sean "Day[9]" Plott]

:xenon: Xenon Love! \#/ :xenon:
:split: Grill the Borons! :split:
:pirat: Real pirates (ab)use Jumpdrive (and Rum) :pirat:

TAOIT
Posts: 91
Joined: Sat, 13. Feb 10, 15:30
x4

Post by TAOIT » Thu, 14. Mar 13, 22:15

Vi ringrazio per le risposte molto esaurienti.

Grazie alla prossima.

User avatar
Juggernaut93
Posts: 2897
Joined: Sun, 17. Jul 11, 21:03
x4

Post by Juggernaut93 » Fri, 15. Mar 13, 16:40

-Dna- wrote:
Juggernaut93 wrote:EDIT: Per ulteriori info sulle classi di oggetti c'è questa vecchia immagine che si riferisce a X2, ma che è ancora valida (a parte per le classi di navi aggiunte con Reunion e TC).
[ external image ]



Mi mancava :lol:
Ereditarietà degli oggetti anche in X :lol:

Post Reply

Return to “Script e Modding per la Trilogia di X”