[REQ|HELP] Richieste ed Aiuti
#66
Inviato il 03 maggio 2010 - 20:43
-nella mappa ci sia un segnalino rosso a delle coordinate
-se vai su questo segnalino spawni in altre coordinate
-e che questo segnalino sia la "sfera rossa"
Grazie in anticipo
Messaggio modificato da XxXBr0nXxX il 04 maggio 2010 - 21:39
#67
Inviato il 29 maggio 2010 - 11:05
E' uno script molto semplice da ideare:
{$CLEO} 0000: NOP while true wait 0 if 00FE: actor $PLAYER_ACTOR sphere 1 in_sphere 0.0 0.0 0.0 radius 2.5 2.5 2.5 then 00A1: put_actor $PLAYER_ACTOR at 0.0 0.0 0.0 end end
Le prime 3 coordinate, sono inerenti alla posizione dei segnalino rosso (non so se può essere inteso anche come "sfera rossa"); le seguenti, alla posizione che CJ assumerà dopo lo "spawn".
#68
Inviato il 29 maggio 2010 - 13:36
Allora io ho fatto una cosa simile:
:FINE_MISSIONE wait 150 if Actor.Dead(33@) else_jump @FINE_MISSIONE 01C2: remove_references_to_actor 33@ //Actor.RemoveReferences(33@) 0164: disable_marker $4 0998: add_respect 3 01E3: show_text_1number_styled GXT 'M_PASSR' number 6 time 5000 style 2 Player.Money($PLAYER_CHAR) += 5
Ho "disattivato" Actor.RemoveReferences perchè sulla guida [aiuto > guida in linea] dicevano che si poteva usare anche l'altro.:gh:Comunque, il problema sta nel fatto che quando uccido l'attore 33 non mi da ne soldi, ne appare la scritta, ne toglie il segnalino e il corpo. Come mai tutto questo?
Grazie per l'attenzione.
|| Guide (non importanti)
||Convert FFS
|| xStreamer
\\---------------------------------//
#69
Inviato il 29 maggio 2010 - 14:36
- Non è necessario il wait impostato a 150 in un loop del genere, altrimenti la condizione verrà eseguita ogni 150 millisecondi e magari non istantaneamente quando essa si verifica. Impostalo a 0 (o eliminalo se non si tratta di un loop, ma non in questo caso)
- Le variabili locali vanno da 0@ a 33@. Le ultime 2, ovvero 32@ e 33@, vengono viste dal gioco come dei "timer in millisecondi" che vengono costantemente incrementati
- Actor.RemoveReferences(33@) rappresenta l'opcode 01C2 sottoforma di classe, poichè è uno dei più utilizzati per agevolare lo scripter, senza che egli si debba ricordare la coppia di numeri che lo identifica
- Le variabili globali vanno, invece, da $0 a $16383 (ovvero 0xFFFF / 4 byte per variabile) e la più grande utilizzata dalla R* nel main.scm è $10947. Quindi, se il main è originale, occorre utilizzare in CLEO variabili globali a partire da $10948 perchè quelle che rientrano nell'intervallo sono probabilmente già utilizzate. In questo caso, non serve utilizzarle
:FINE_MISSIONE wait 0 if Actor.Dead(0@) else_jump @FINE_MISSIONE Actor.RemoveReferences(0@) 0164: disable_marker 1@ 0998: add_respect 3 01E3: show_text_1number_styled GXT 'M_PASSR' number 6 time 5000 style 2 Player.Money($PLAYER_CHAR) += 150
Ricordati di cambiare tutte le variabili che fanno riferimento a quelle modificate.
#74
Inviato il 11 luglio 2010 - 00:17
Aiuto super cj mod gta sa ?
Non riesco a sparare, aumentare la potenza con N o Y(non ricordo) usare il teleporter...
Riesco solo a volare e far volare e respingere auto, non mandatemi a cercare cose su google che tanto non c' é niente e controllate i siti prima di mandarmi i link perfavore ! E sul readme c' é un link che non funzione
Messaggio modificato da Rafael il 11 luglio 2010 - 00:18
#76
Inviato il 11 luglio 2010 - 22:48
- Cosa intendi per "digitato"?
- Consulta la "Guida in linea" del Sanny Builder che offre una vasta gamma di documentazioni varie. Per visualizzarle, vai su Aiuto->Guida in linea->SCM Documentation->GTA SA.
Rafael, sezione errata: quì si richiede la creazione di script oppure aiuti nel realizzarli.
Messaggio modificato da Wesser il 11 luglio 2010 - 22:51
#77
Inviato il 12 luglio 2010 - 08:27
Wesser, il 11 luglio 2010 - 22:48 ha detto:
ad esempio quando in gioco scrivo AEZAKME, la polizia non mi inseguirà più... io vorrei creare uno script che si attiverà solamente quando il giocatore scriverà ad esempio ATTIVO...
@Rafael: mandami un PM che te lo spiego io, per evitare di andare off topic...
EDIT: Ho risolto , ma adesso non so come fare apparire un testo in alto a sinistra ... Qualcuno mi può dire come si fa???
Messaggio modificato da Johnny 97 il 12 luglio 2010 - 12:01
#78
Inviato il 12 luglio 2010 - 12:27
dove sbaglio??? Credo che il problema sia che in realtà non ho capito come aggiungere il testo...
{$VERSION 3.1.0027} {$CLEO .cs} thread "CHEATING" :INIZIO wait 1000 0900: unknown_set_object "Benvenuti nella Mod Cheating by Johnny 97. Premi ~k~~PED_ANSWER_PHONE~ per attivare la modalità Cheating!" if 0AB0: key_pressed 9 else_jump @INIZIO 0900: unknown_set_object "Hai attivato la modalità cheating!"
Messaggio modificato da Johnny 97 il 12 luglio 2010 - 15:16
#79
Inviato il 12 luglio 2010 - 17:48
Ne deriva, quindi, che l'opcode per stampare del testo all'interno di una text box è lo 03E5.
L'opcode 0900 da te utilizzato, è un opcode così chiamato "di debug", che ha reso la sua utilità alla R* durante la stesura dei codici, per rendere nota la lettura di una determinata parte di essi oppure tenersi aggiornati sulle varie operazioni e sul punto effettivo della lettura in tempo reale.
Ogni script non ha una fine, a meno che non si decide di terminarlo con gli opcode 004E o 0459. Per far sì che ciò accada, bisogna impostare il jump (0002) in modo che ritorni al label principale, indipendentemente dalla/le condizione/i prefissate a cui fa riferimento il jump_if_false, else_jump o jf (004D).
Il blocco è causato essenzialmente da quanto riferito, ovvero dalla mancanza del primo "jump" mensionato.
In termini pratici, ecco il codice funzionante:
{$CLEO} thread "MYCHEAT" 03E5: show_text_box "MYCH_1" :START_1 wait 0 if 0AB0: key_pressed 0x30 // 0 jf @START_1 03E5: show_text_box "MYCH_2" jump @START_1
Crea un GXT Entry nel file text/*.gxt oppure in un file .fxt in CLEO/cleo_text:
MYCH_1 Benvenuti nella Mod Cheating by Johnny 97. Premi ~k~~PED_ANSWER_PHONE~ per attivare la modalita' Cheating! MYCH_2 Hai attivato la modalita' cheating!
Ulteriore suggerimenti:
- E' praticamente inutile impostare il wait di un loop ad un numero > 0; l'importante è che ci sia.
- La lunghezza del GXT Entry supportata è di 8 byte (1 byte per carattere), anche se, in realtà, è di 7 byte + null-terminator, quindi di 7 caratteri.
- Non utilizzare mai come GXT Value caratteri speciali: perlomeno utilizza apici per gli accenti, altrimenti il gioco potrebbe non riconoscerli come caratteri del font predefinito, per quello che possa ricordare.