GTA-Expert Forum: [GUIDA] Caricare modelli - GTA-Expert Forum

Salta al contenuto

  • (2 Pagine)
  • +
  • 1
  • 2
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[GUIDA] Caricare modelli

#1 L'utente è offline   ~>Snake95<~ 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1253
  • Iscritto il: 06/02/08
  • GTA Preferito:Sconosciuto

Inviato il 08 maggio 2009 - 16:41

Caricare un modello prima di usarlo, serve per far sì che il gioco non crashi ( è sopratutto usato per gli attori, tipo i membri delle gang e etc) , in questa guida spiegherò come caricarli e utilizzarli.

- Tool e programmi da usare:

• Sanny Builder 3 DOWNLOAD
• GTA San Andreas ( il forum non ve lo può procurare).

- Iniziamo:

Creiamo un label e grazie all'implementazione 0247: request_model (MODELLO) li carichiamo, per poi caricarli utilizzando 038B: load_requested_models.
I modelli da caricare, in questo caso sono: M4, DESERT_EAGLE ed la skin wmydrug ( skin da spacciatore ), esempio:
:FCARICAMODELLI
0001: wait 0 ms 
0247: request_model #M4
0247: request_model #DESERT_EAGLE
0247: request_model #WMYDRUG
038B: load_requested_models

Ora che abbiamo caricato i modelli, dobbiamo vedere se sono stati caricati con successo, l'implementazione IF determina se una cosa è accaduta o meno, per farvi capire meglio vi faccio un esempio:

00D6: if
Actor.DrivingPoliceVehicle($PLAYER_ACTOR)
004D: jump_if_false @FINEMOD
0002: jump @DAIMOD


In questo caso se il giocatore stà guidando un veicolo della polizia và al label :DAIMOD, invece se non lo è finisce la mod andando nel label vuoto o pieno ( ad esempio dicendo un messaggio di fallitura della missione nello schermo ).
Noi ora per controllare se i modelli sono stati caricati non useremo if, ma ben sì if and, if and determina se più cose sono accadute, in questo caso dovremmo controllare 3 modelli non 1.

00D6: if and
 0248: model #M4 available
 0248: model #DESERT_EAGLE available
 0248: model #WMYDRUG available
004D: jump_if_false @FCARICAMODELLI 


Analizziamo il codice:

00D6: if and : Determina se più cose sono accadute.
0248: model #MODELLO available : Determina se il modello #MODELLO è stato caricato con successo, possiamo anche utilizzare Model.Available(#MODELLO) è la stessa cosa.
004D: jump_if_false @FCARICAMODELLI : Se i modelli non sono stati caricati con successo, fà ritornare al label principale dove si caricano i modelli, cioè FCARICAMODELLI. (vedi sopra).
Ora che abbiamo caricato i modelli e li abbiamo pronti li possiamo iniziare a utilizzare, ora qui sotto mostrerò come creare uno spacciatore armato di Desert Eagle e M4.

009A: 1@ = create_actor 17 #WMYDRUG at 561.0 -1252.0 17.0 

Prima di continuare, vi voglio far capire ogni singolo codice, analizziamo create_actor:
1@ = Variabile dove risiede il pedone, serve per specificare un pedone, per poi settargli la vita e o le armi.
4 = Tipo di PEDONE. ( lista completa sotto ).
#WMYDRUG = Modello da usare, cioè il pedone.
at 561.0 -1252.0 17.0 = Coordinate, qui verrà creato il pedone.

Poi useremo give_actor_ per dare le armi al nostro spacciatore:
01B2: give_actor 1@ weapon 24 ammo 900 
01B2: give_actor 1@ weapon 31 ammo 900 


Analizziamo il codice:

give_actor_ : implementazione come "dai all'attore", da qualcosa all'attore in questo caso un arma.
1@ : variabile pedone a cui dare l'arma, abbiamo definito 1@ per lo spacciatore, l'arma verrà data a lui.
weapon 31 : id arma dell'M4, potete mettere #M4 per essere più precisi.
ammo 900 : colpi da assegnare all'attore.

Abbiamo finito, qui sotto ci sono i tipi di pedoni:

Tipo: Gruppo:
0   PLAYER1 
1   PLAYER2 
2   PLAYER_NETWORK 
3   PLAYER_UNUSED 
4   UOMO 
5   DONNA 
6   POLIZIA 
7   GANG1 (Ballas) 
8   GANG2 (Grove Street Families) 
9   GANG3 (Los Santos Vagos) 
10   GANG4 (San Fierro Rifa) 
11   GANG5 (Da Nang Boys) 
12   GANG6 (Mafia) 
13   GANG7 (Mountain Cloud Triad) 
14   GANG8 (Varrio Los Aztecas) 
15   GANG9 (unused) 
16   GANG10 (unused) 
17   SPACCIATORI 
18   MEDICI 
19   VIGILI DEL FUOCO 
20   CRIMINALI 
21   BUM* 
22   PROSTITUTE 
23   SPECIALE //Viene usato per attori come cesar, ryder, sweet e altri. 
24   MISSION1 
25   MISSION2 
26   MISSION3 
27   MISSION4 
28   MISSION5 
29   MISSION6 
30   MISSION7 
31   MISSION8 

Ogni tipo di pedone ha una sua caratteristica e o aggressività, ad esempio i criminali verranno rincorsi dai poliziotti.
Codice esempio completo:
:FCARICAMODELLI
0001: wait 0 ms 
0247: request_model #M4
0247: request_model #DESERT_EAGLE
0247: request_model #WMYDRUG
038B: load_requested_models
00D6: if and
 0248: model #M4 available
 0248: model #DESERT_EAGLE available
 0248: model #WMYDRUG available
004D: jump_if_false @FCARICAMODELLI
009A: 1@ = create_actor 17 #WMYDRUG at 561.0 -1252.0 17.0 
01B2: give_actor 1@ weapon 24 ammo 900 
01B2: give_actor 1@ weapon 31 ammo 900 


- Attori Speciali.
Invece di usare request_model, utilizzeremo request_special_actor.
Caricheremo Tenpenny, Pulasky e Hernazeden ( o come si chiama :m: ).
023C: request_special_actor 'TENPEN' as 1
023C: request_special_actor 'PULASKI' as 2
023C: request_special_actor 'HERN' as 3

Analizziamo il codice:
request_special_actor : richiede l'attore specificato.
'TENPEN' : id del modello da richiedere.
as 1 : modello che verrà definito nell'id descritto, in questo caso 1.
Ora controlliamo che siano stati caricati tramite l'implementazione: if and e special_actor_ IDATTORE loaded.
Esempio:
00D6: if and
023D: special_actor 1 loaded
023D: special_actor 2 loaded
023D: special_actor 3 loaded
004D: jump_if_false @CARICAMODELLI


Ora creiamo l'attori:

01C8: 1@ = create_actor 23 #SPECIAL01 at 561.0 -1252.0 17.0 
0129: 2@ = create_actor 23 #SPECIAL02 at 561.0 -1252.0 17.0 
01C8: 3@ = create_actor 23 #SPECIAL03 at 561.0 -1252.0 17.0 

Per la definizione di create_actor guarda sopra.

Codice esempio completo:
:FCARICAMODELLI
0001: wait 0 ms 
023C: request_special_actor 'TENPEN' as 1
023C: request_special_actor 'PULASKI' as 2
023C: request_special_actor 'HERN' as 3
00D6: if and
023D: special_actor 1 loaded
023D: special_actor 2 loaded
023D: special_actor 3 loaded
004D: jump_if_false @FCARICAMODELLI
01C8: 1@ = create_actor 23 #SPECIAL01 at 561.0 -1252.0 17.0 
0129: 2@ = create_actor 23 #SPECIAL02 at 561.0 -1252.0 17.0 
01C8: 3@ = create_actor 23 #SPECIAL03 at 561.0 -1252.0 17.0 


Abbiamo finito, ora i tre poliziotti corrotti verranno creati nella posizione 561.0 -1252.0 17.0!
Per dargli l'arma usate 01B2: give_actor IDATTORE weapons #IDARMA ammo NUMEROCOLPI, vi ricordo di caricare prima il modello arma!


Guida By. ~>Snake95<~ a.k.a _GriLLeX_P4E.
Immagine Postata
0

#2 L'utente è offline   DoomWind 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 1463
  • Iscritto il: 03/05/09
  • GTA Preferito:Sconosciuto

Inviato il 09 maggio 2009 - 23:27

che ficata mi serviva adesso vincero tutte le gang wars
0

#3 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72428
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 10 maggio 2009 - 00:39

Immagine Postata + pinned
0

#4 L'utente è offline   ~>Snake95<~ 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1253
  • Iscritto il: 06/02/08
  • GTA Preferito:Sconosciuto

Inviato il 10 maggio 2009 - 07:50

Quote

Originally posted by DoomWind@10/05/09 - 00:27
che ficata mi serviva adesso vincero tutte le gang wars

Non serve per le gang wars...
Comunque grazie Fabio :rotfl:
Immagine Postata
0

#5 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 25 luglio 2009 - 15:35

come faccio a salvarlo in cs???? :noo:
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#6 L'utente è offline   Saint Jake 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 10884
  • Iscritto il: 30/03/09
  • Provenienza:The Glitch City
  • GTA Preferito:GTA: San Andreas

Inviato il 25 luglio 2009 - 15:41

Quote

Originally posted by dvxx95@25/07/09 - 16:35
come faccio a salvarlo in cs???? :noo:

Non sia mai che ci viene in mente di mettere all'inizio del codice:

{$VERSION 3.1.0027}
{$CLEO .cs}


:embè:
Immagine Postata
"Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius"

Immagine Postata
0

#7 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 25 luglio 2009 - 16:10

l'ho fatto ma mi dice jump nn trovato


wow!!!!!!!111 il gioco ha crashato :cry: :w00t:
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#8 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 25 luglio 2009 - 17:31

Posta il codice quì così possiamo vedere dov'è l'errore.
WARNING> Signature either not found or not configured at all.
0

#9 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 25 luglio 2009 - 17:39

eccolo:


{$VERSION 3.1.0027}
{$CLEO .cs}

:FCARICAMODELLI

0001: wait 0 ms
0247: request_model #M4
0247: request_model #DESERT_EAGLE
0247: request_model #WMYDRUG
038B: load_requested_models
00D6: if and
0248: model #M4 available
0248: model #DESERT_EAGLE available
0248: model #WMYDRUG available
004D: jump_if_false @FCARICAMODELLI
009A: 1@ = create_actor 17 #WMYDRUG at 561.0 -1252.0 17.0
01B2: give_actor 1@ weapon 24 ammo 900
01B2: give_actor 1@ weapon 31 ammo 900



:gh:
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#10 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 25 luglio 2009 - 18:15

Il codice è corretto ma se è quello integrale che fa crashare il gioco, credo che tu debba aggiungere un opcode che termini il thread, o che almeno si riferisca ad un label (tramite un jump). Per ovviare a questo problema, aggiungi questo opcode al termine del codice:
0A93: end_custom_thread

Pensandoci un po', una volta spawnato, il pedone non potrà essere mai rimosso, perciò, dopo la morte, rimarra sempre privo di sensi per terra. Ecco lo script più corretto:
{$CLEO}

:LoadModel
0001: wait 0 ms
0247: request_model #M4 
0247: request_model #DESERT_EAGLE 
0247: request_model #WMYDRUG 
038B: load_requested_models
00D6: if and
0248: model #M4 available
0248: model #DESERT_EAGLE available
0248: model #WMYDRUG available
004D: jump_if_false @LoadModel 
009A: 1@ = create_actor 17 #WMYDRUG at 561.0 -1252.0 17.0 
01B2: give_actor 1@ weapon 24 ammo 900 
01B2: give_actor 1@ weapon 31 ammo 900 

:PedCheck
0001: wait 0 ms
00D6: if 
0118: actor 1@ dead
004D: jump_if_false @PedCheck 
01C2: remove_references_to_actor 1@ 
0A93: end_custom_thread

Così strutturato, penso che il codice non rispetti quello che vorresti realizzare, quindi dovresti dirmelo.

Se intendi rispawnarlo ogni qualvolta muore, invece di terminarlo, utilizza un jump che si riferisca al primo label.
WARNING> Signature either not found or not configured at all.
0

#11 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 25 luglio 2009 - 20:18

perchè mi da questo errore???? "jump zero offset found"
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#12 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 25 luglio 2009 - 21:15

Non mi ero mai trovato di fronte ad una cosa di tal genere. Mi correggo, allora! L'errore non compare solo utilizzando i comandi high level, ma oso dire SOLO quando, in cleo, iniziamo un thread con un loop, senza prima aver definito il suo nome con l'opcode "03A4" (name_thread) oppure aver aggiunto lo "0000" (NOP, no operation, uno dei tanti). Per concludere, quando si presenta l'errore "A jump to zero offset found" compare durante la compilazione, significa che il thread inizia subito con un loop, il cui "jump_if_false" o semplicemente "jump" si riferisce al label del ciclo innescato. Per cui, determinare (l'una esclude l'altra opzione):
  • Nome del thread con l'opcode "03A4" (name_thread).
  • Aggiungere l'opcode "0000" (NOP) prima del loop.
Buon per me e buon per voi! :asd:
WARNING> Signature either not found or not configured at all.
0

#13 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 26 luglio 2009 - 09:10

scusa se rompo ma c'è un modo che il gioco spawna i pedoni in automatico???
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#14 L'utente è offline   Saint Jake 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 10884
  • Iscritto il: 30/03/09
  • Provenienza:The Glitch City
  • GTA Preferito:GTA: San Andreas

Inviato il 26 luglio 2009 - 09:37

Quote

Originally posted by dvxx95@26/07/09 - 10:10
scusa se rompo ma c'è un modo che il gioco spawna i pedoni in automatico???

Spiegati: la tua frase non ha senso...

@Wesser: l'avevo detto io che andava messo il NOP :P
Immagine Postata
"Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius"

Immagine Postata
0

#15 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 26 luglio 2009 - 10:00

intendevo ad esempio quanto sei in una qualsiasi città e vedi i pedoni che vengono spawnati a caso uno dp l' altro no??? io vorrei fare lo stesso modo nel quartiere che ho creato...si può????
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#16 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 26 luglio 2009 - 10:45

Via scm è tranquillamente possibile, ma vorrà dire che dovremmo creare uno script meno efficiente di quello interno al gioco. Quindi credo che tu debba modificare gli .ipl, non so come, ma è l'unica possibilità.
WARNING> Signature either not found or not configured at all.
0

#17 L'utente è offline   dvxx95 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 287
  • Iscritto il: 27/05/09

Inviato il 26 luglio 2009 - 13:11

ok ho usato lo script del killer togliendo le armi ,togliendo l'immortalità ecc.

ora mi mancano solo 2 cose...come faccio a inserire i punti di salvataggio e i teletrasporti negli interior

p.s. rispondetemi via mp perchè sto rovinando il topic :siso:
I BAMBINI HANNO PAURA DEL BUIO....IL BUIO HA PAURA DI CHUCK NORRIS
0

#18 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 26 luglio 2009 - 13:39

Cerca di riproporre il tuo problema quì, se lo stuff lo permette.
WARNING> Signature either not found or not configured at all.
0

#19 L'utente è offline   Frayx 

  • Cittadino Integerrimo
  • Gruppo: Utenti
  • Messaggi: 8
  • Iscritto il: 20/11/08

Inviato il 05 agosto 2009 - 22:12

Se volessi controllare se il player ha una certa arma in mano, come posso fare? Per eliminarla uso Model.Destroy?
0

#20 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1625
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 07 agosto 2009 - 19:58

Basta creare un semplicissimo script del seguente tipo:
:label
wait 0 
if 
02D8: actor $PLAYER_ACTOR current_weapon == 22 
jf @label 
0555: remove_weapon 22 from_actor $PLAYER_ACTOR 
0A93: end_custom_thread 

In questo caso, se CJ ha in mano una colt45, quest'ultima verrà eliminata (non testato). Per conoscere tutti i valori delle armi, in Sanny Builder, andare su "Aiuto->Guida in linea->SCM Documentation-> GTA SA->Weapon numbers".
WARNING> Signature either not found or not configured at all.
0

  • (2 Pagine)
  • +
  • 1
  • 2
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi