GTA-Expert Forum: [DOC] Tutorial sul WeaponInfo.xml (parametri armi) - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[DOC] Tutorial sul WeaponInfo.xml (parametri armi)

#1 L'utente è offline   Fabio206 

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

Inviato il 08 dicembre 2008 - 02:27

Tutorial sul WeaponInfo.xml



La guida è in continuo aggiornamento, non appena sarà finita verrà inserita anche sul sito.


Introduzione

Il WeaponInfo.xml, presente all'interno della cartella C:\Programmi\Rockstar Games\Grand Theft Auto IV\common\data, descrive le caratteristiche e contiene i dati di tutte le armi del gioco.

Strumenti e programmi

N.B. Prima di modificare qualsiasi file nel modding, è necessario creare un backup, ossia una copia di sicurezza da ripristinare nel caso in cui la modifica abbia generato errori o sviste irreversibili.

Per poter modificare il file WeaponInfo.xml avrete bisogno solamente del Blocco Note.
Se nell'aprire il file troverete qualche difficoltà (ad esempio il vostro computer vi chiederà di selezionare un programma per aprirlo), cliccate col tasto destro sul file, selezionate "Apri con", quindi "Programma", nell'elenco cercate il Blocco Note, spuntate la voce "Usa sempre il programma selezionato per aprire questo tipo di file", quindi date l'ok e potrete aprire comodamente il file con il vostro editor.

WeaponInfo.xml

Le informazioni contenute nel WeaponInfo.xml, sono racchiuse all'interno dei tag
e .
Le armi sono state suddivise inoltre in "categorie", identificabili secondo il modello seguente:

 
        <!--        -->
        <!-- MELEE WEAPONS -->
        <!--        -->


Le quali sono:
MELEE: Armi bianche, tra cui coltello e mazza da baseball.
GUN: Armi da fuoco, dalla pistola al lanciarazzi.
PROJECTILE: Armi da lancio, tra cui granate e molotov.

All'interno del file, un'arma può essere identificata tramite un "blocco" di codice indicante il nome, all'interno del quale vi saranno i dati relativi all'arma stessa.

 
 <weapon type="NOME ARMA">

//qui il resto del codice contenente le informazioni dell'arma stessa

</weapon>


Di seguito analizzarò un "blocco" di codice, con un esempio chiaro utilizzando il blocco relativo alla pistola, la prima arma della categoria GUN WEAPONS e facilmente reperibile nel gioco.
Ecco blocco di codice originale.


<weapon type="PISTOL">
  <data slot="HANDGUN" firetype="INSTANT_HIT" damagetype="BULLET" group="PISTOL_SMALL" targetrange="45.0" weaponrange="50.0" clipsize="17" ammomax="1500" timebetweenshots="333">
   	<damage base="25" networkplayermod="3.0" networkpedmod="1.0"/>
   	<physics force="50.0"/>
   	<reload time="2000" fasttime="2000" crouchtime="2000"/>

    	<aiming accuracy="0.5">
       <offset     x="0.15" y="1.0" z="0.55"/>
       <crouchedoffset x="0.2" y="1.0" z="0.05"/>
       <reticule standing="0.65" ducked="0.55" scale="0.3"/>
    	</aiming>

    	<pickup regentime="120000" ammoonstreet="30"/>

    	<controller>
       <rumble duration="110" intensity="0.02"/>
    	</controller>

    	<flags>
       <flag>GUN</flag>
       <flag>CAN_AIM</flag>
       <flag>CAN_FREE_AIM</flag>
       <flag>ANIM_RELOAD</flag>
       <flag>ANIM_CROUCH_FIRE</flag>
    	</flags>
  </data>
 
  <assets model="w_glock">
    	<anim group="gun@handgun" meleegroup1="firearm_core"/>

    	<effects>
      	<muzzle fx="muz_pistol_small"/>
      	<shell fx="weap_ejected_pistol"/>
    	</effects>
  </assets>
	</weapon>


Come noterete, le informazioni sono ordinate secondo una specifica identazione (una sorta di scaletta con i tag di inizio e fine alla stessa distanza dal margine sinistro, per intenderci).

Come detto in precedenza, il blocco weapon indica identifica il codice relativo al nome dell'arma specificata ad inizio blocco. In questo caso "PISTOL", ossia pistola:

<weapon type="PISTOL">
 
// codice

</weapon>


All'interno del blocco stesso, saranno presenti due mini-blocchi, data e assets

Data:

	
  <data slot="HANDGUN" firetype="INSTANT_HIT" damagetype="BULLET" group="PISTOL_SMALL" targetrange="45.0" weaponrange="50.0" clipsize="17" ammomax="1500" timebetweenshots="333">
   	<damage base="25" networkplayermod="3.0" networkpedmod="1.0"/>
   	<physics force="50.0"/>
   	<reload time="2000" fasttime="2000" crouchtime="2000"/>

    	<aiming accuracy="0.5">
       <offset     x="0.15" y="1.0" z="0.55"/>
       <crouchedoffset x="0.2" y="1.0" z="0.05"/>
       <reticule standing="0.65" ducked="0.55" scale="0.3"/>
    	</aiming>

    	<pickup regentime="120000" ammoonstreet="30"/>

    	<controller>
       <rumble duration="110" intensity="0.02"/>
    	</controller>

    	<flags>
       <flag>GUN</flag>
       <flag>CAN_AIM</flag>
       <flag>CAN_FREE_AIM</flag>
       <flag>ANIM_RELOAD</flag>
       <flag>ANIM_CROUCH_FIRE</flag>
    	</flags>
  </data>


Assets:

  <assets model="w_glock">
    	<anim group="gun@handgun" meleegroup1="firearm_core"/>

    	<effects>
      	<muzzle fx="muz_pistol_small"/>
      	<shell fx="weap_ejected_pistol"/>
    	</effects>
  </assets>




BLOCCO DATA





Analizziamo prima il blocco data.

<data slot="HANDGUN" firetype="INSTANT_HIT" damagetype="BULLET" group="PISTOL_SMALL" targetrange="45.0" weaponrange="50.0" clipsize="17" ammomax="1500" timebetweenshots="333">


slot="NOME SLOT": indica il nome dello slot dell'arma (e più in generale, anche la categoria). Può avere i seguenti valori:
  • UNARMED (Disarmato)
  • MELEE (Arma bianca)
  • HANDGUN (Arma ad una mano) (è il nostro caso!)
  • SHOTGUN (Fucile)
  • SMG (Mitraglietta)
  • RIFLE (Fucile d'assalto)
  • SNIPER (Fucile da cecchino)
  • HEAVY (Arma pesante)
  • THROWN (Da lancio)
  • SPECIAL (Speciale)
firetype="NOME TIPO DI COLPO": indica il tipo di colpo/fuoco dell'arma. Può avere i seguenti valori:
  • MELEE (Colpo da arma bianca, es. coltello)
  • INSTANT_HIT (Colpo istantaneo, es. pistole) (è il nostro caso!)
  • DELAYED_HIT (Colpo ritardato, es. fucili da cecchino)
  • PROJECTILE (Colpo mobile, es. razzo del lanciarazzi)
damagetype="NOME TIPO DI DANNO": indica il tipo di danno inflitto dall'arma. Può avere i seguenti valori:
  • MELEE (Danno da arma bianca, debole)
  • BULLET (Danno da proiettile, da debole a forte) (è il nostro caso!)
  • EXPLOSIVE (Danno da esplosione)
  • FIRE (Danno da fiamme)
  • COLLISION (Danno da collisione)
group="NOME GRUPPO DELL'ARMA"": indica il nome del gruppo a cui appartiene l'arma. Può avere i seguenti valori:
  • PUNCH_KICK (Pugni e calci)
  • MELEE_WOOD (Arma in legno, es. mazza da baseball)
  • MELEE_SHARP (Arma in metallo, es. coltello)
  • PISTOL_SMALL (Pistola piccola) (è il nostro caso!)
  • PISTOL_LARGE (Pistola potente)
  • SHOTGUN (Fucile)
  • SMG (Mitraglietta)
  • RIFLE_ASSAULT (Fucile d'assalto)
  • RIFLE_SNIPER (Fucile da cecchino)
  • ROCKET (Lanciarazzi)
  • GRENADE (Granate)
  • MOLOTOV (Molotov)
  • MELEE_GENERIC (Generico)
targetrange="VALORE" : indica il valore della distanza alla quale può essere agganciato il bersaglio con la mira automatica.
Considerate che il valore di default della pistola è 45.0 mentre quello dell'M4 (fucile d'assalto) è 65.0.

weaponrange="VALORE": indica il valore della distanza massima raggiungibile dai colpi dell'arma.
Considerate che il valore di default della pistola è 50.0 mentre quello del fucile da cecchino è 1500.0.

clipsize="VALORE": indica il valore del numero di proiettili del caricatore (terminato il quale, si dovrà ricaricare l'arma e inizierà quindi l'animazione della ricarica).
Considerate che il valore massimo è 9999.

ammomax="VALORE": indica il valore del numero totale di proiettili massimo dell'arma (ad esempio quando la si raccoglie).
Considerate che il valore massimo è 9999.

timebetweenshots="VALORE": indica il valore del rateo di fuoco dell'arma.


<damage base="25" networkplayermod="3.0" networkpedmod="1.0"/>
<physics force="50.0"/>
<reload time="2000" fasttime="2000" crouchtime="2000"/>


La prima stringa damage indica dati e valori relativi ai danni che può infliggere l'arma.
  • base: indica il valore generale della potenza dell'arma.
  • networkplayermod: moltiplicatore dei danni inflitti da un altro giocatore nel multiplayer (credo quasi sicuramente solo in LAN).
  • networkpedmod: moltiplicatore dei danni inflitti da un pedone nel multiplayer. (credo quasi sicuramente solo in LAN).
La seconda stringa physics indica dati e valori relativi alla fisica dell'arma.
  • force: indica il valore della forza d'impatto del proiettile. Impostate un valore elevatissimo (es. 5000) per avere effetti devastanti sul bersaglio colpito.
La terza stringa reload indica dati e valori relativi alla ricarica dell'arma.
  • time: valore del tempo impiegato per ricaricare, in millisecondi. Ad esempio, il valore 1000 indicherà 1 secondo. (1000ms/1000=1 sec). Impostate un valore bassissimo (es. 1) per una ricarica rapidissima.
  • fasttime: indica il valore della velocità nel ricaricare.
  • crouchtime: indica il valore del tempo impiegato per accovacciarsi, in millisecondi.
<aiming accuracy="0.5">
<offset     x="0.15" y="1.0" z="0.55"/>
<crouchedoffset x="0.2" y="1.0" z="0.05"/>
<reticule standing="0.65" ducked="0.55" scale="0.3"/>
</aiming>

Parte di codice relativa all'accuratezza/precisione dell'arma.
  • accuracy: valore dell'accuratezza/precisione generale dell'arma.
  • offset: coordinate di deviazione del proiettile lungo la sua traiettoria (collegato anche al rinculo dell'arma ad ogni proiettile sparato).
  • crouchedoffset: coordinate di deviazione del proiettile lungo la sua traiettoria, sparando da accovacciati.
  • reticule: valori da testare.
<pickup regentime="120000" ammoonstreet="30"/>


Parte di codice relativa ai "pickup" ossia le armi che è possibile raccogliere per la strada.
  • regentime: valore del tempo di rigenerazione dell'arma in quel punto.
  • ammoonstreet: numero di proiettili disponibili nell'arma una volta raccolta.
<controller>
<rumble duration="110" intensity="0.02"/>
</controller>


Parte di codice relativa alle funzioni sul controller.
Rumble è la vibrazione:
  • duration: valore della durata della vibrazione del joypad.
  • intensity: valore dell'intensità della vibrazione del joypad.
<flags>
<flag>GUN</flag>
<flag>CAN_AIM</flag>
<flag>CAN_FREE_AIM</flag>
<flag>ANIM_RELOAD</flag>
<flag>ANIM_CROUCH_FIRE</flag>
</flags>


Sono i FLAGS, ossia animazioni e dati correlati a quell'arma. Una sorta di "inclusione" di caratteristiche (es. CAN_AIM, mira abilitata per quell'arma)





BLOCCO ASSETS


 <assets model="w_glock">
    <anim group="gun@handgun" meleegroup1="firearm_core"/>

    <effects>
      <muzzle fx="muz_pistol_small"/>
      <shell fx="weap_ejected_pistol"/>
    </effects>
  </assets>
  • model: nome del modello della texture dell'arma. Sarà il modello che visualizzarete estraendo l'arma.
    Es. Per sostituire la texture della pistola con quella del lanciarazzi, basterà sostituire con .
  • anim: tipi di animazioni del personaggio e dell'arma.
    • group: gruppo a cui appartiene l'animazione del personaggio per quell'arma.
    • meleegroup1: gruppo a cui appartiene il tipo di colpo per quell'arma.
  • effects: dati e valori relativi ai suoni dell'arma.



Il tutorial è quasi completo, mancano solamente alcune funzioni da aggiungere relative alle altre armi e non solo alla pistola presa in considerazione. ;)
0

#2 L'utente è offline   TheUnknowPlayer 

  • Ex galeotto
  • Gruppo: Utenti
  • Messaggi: 707
  • Iscritto il: 09/12/08

Inviato il 03 aprile 2009 - 17:38

Modificare le armi


Descrizione: Questo tutorial spiega come modificare un'arma, ovvero potenza, capienza, tipo di proiettile, ecc...

Difficoltà: Bassa

Passo 1:
Per prima cosa dobbiamo aprire il file "WeaponInfo" situato in "C:\Programmi\Rockstar Games\Grand Theft Auto IV\common\data".

Passo 2:
Dopo aver aperto il file dobbiamo prima di tutto saper riconoscere i gruppi delle armi:
group="PUNCH_KICK" (Pugno)
group="MELEE_WOOD" (Mazza da baseball / Stecca da biliardo*)
group="MELEE_SHARP" (Coltello)
group="PISTOL_SMALL" (Pistola)
group="PISTOL_LARGE" (Desert Eagle)
group="SHOTGUN" (Fucile a pompa / Fucile da combattimento)
group="SMG" (Micro SMG / MP5)
group="RIFLE_ASSAULT" (AK-47 / M4 / Minigun*)
group="RIFLE_SNIPER" (Fucile da cecchino / Fucile di precisione)
group="ROCKET" (RPG / Razzo del RPG)
group="GRENADE" (Granata)
group="MOLOTOV" (Molotov)
group="MELEE_GENERIC" (Oggetti lanciabili)
*Queste armi non si trovano nel gioco in quanto non esiste il modello 3D

il tipo di fuoco:
firetype="MELEE" (Combattimento corpo a corpo)
firetype="INSTANT_HIT" (Automatico / Semiautomatico)
firetype="DELAYED_HIT" (Colpo singolo)
firetype="PROJECTILE" (Armi / Oggetti lanciabili)

e il tipo di danno:
damagetype="MELEE" (Da mischia)
damagetype="BULLET" (Da proiettile)
damagetype="EXPLOSIVE" (Esplosione)
damagetype="MOLOTOV" (Infiammabile)

Imparato questo meccanismo si può iniziare a modificare un arma.

Passo 3:
Ora vi spiegherò come modificare un arma riconoscendo e capendo le varie voci:




















GUN
CAN_AIM
CAN_FREE_AIM
ANIM_RELOAD
ANIM_CROUCH_FIRE
2HANDED















targetrange="-.-" (Distanza massima dell'automira)
weaponrange="-.-" (Distanza massima percorribile dai colpi dell'arma)
clipsize="-" (Dimensione del caricatore)
ammomax="-" (Munizioni massime trasportabili)
timebetweenshots="-" (Tempo che trascorre tra un colpo e l'altro quando si spara espresso in millisecondi)
damage base="-" (Danno di base)
physics force="-.-" (Forza fisica dell'oggetto all'impatto)
reload time="-" (Tempo di ricarica in millisecondi)
fasttime="-" (Tempo di ricarica mentre si corre in millisecondi)
crouchtime="-" (Tempo di ricarica mentre si è accovacciati in millisecondi)
aiming accuracy="-.-" (Accuratezza dell'arma)
pickup regentime="-.-" (Durata del tempo in cui l'arma rimane disponibile per terra in millisecondi)
ammoonstreet="-" (Numero di munizioni che si possono raccogliere da terra)
rumble duration="-" (Durata della vibrazione del controller in millisecondi)
intensity="-" (Intensità della vibrazione del controller)
Queste sono le voci più importanti da modificare in un arma, se ad esempio vogliamo aumentare il numero delle munizioni del caricatore ci basterà modificare il numero della stringa clipsize="30" da 30 a 200, in questo modo si potranno sparare fino a 200 colpi di seguito.

Infine rimangono le flags che servono a determinare movimenti e attacchi speciali a seconda dell'arma:
CAN_AIM (Si può usare l'automira)
CAN_FREE_AIM (Si può mirare liberamente)
MELEE_CLUB (Arma da mischia lunga)
MELEE_BLADE (Arma da mischia con lama)
ARMOUR_PENETRATING (Il colpo toglie vita anche se il nemico ha l'armatura)
GUN (Arma da fuoco)
ANIM_RELOAD (Animazione ricarica dell'arma, si può utilizzare solo se per l'arma esiste l'animazione della ricarica)
ANIM_CROUCH_FIRE (Si può sparare da accovacciati, si può utilizzare solo se per l'arma esiste l'animazione mentre si spara da accovacciati)
HEAVY (Arma pesante)
2HANDED (Arma trasportabile solo a due mani)
HIGHER_BREAK_FORCE (Quando si trasporta quest'arma non si può correre veloci)
KEEP_CAMERA_BEHIND (Blocca la telecamera dietro il giocatore mente si mira)
ADD_SMOKE_ON_EXPLOSION (Rilascia fumo quando esplode)
SILENCED (Rumore assordante quando esplode)
EXPLOSION_BASED_ON_IMPACT (Esplosione basata sull'impatto)
INSTANT_KILL_IN_MP (Uccisione istantanea in Multiplayer)
THROWN (???)
TREAT_AS_2HANDED_IN_COVER (???)
CREATE_VISIBLE_ORDNANCE (???)


Per le armi lanciabili ci sono altre impostazioni da modificare nella granata troverete:
projectile type="-" (se ce scritto "FUSE" vuol dire che si tratta di un oggetto che esplode dopo un tot di tempo da quando è stato lanciato; se invece c'è scritto "IMPACT" vuol dire che esplode non appena tocca terra, come le molotov e se invece c'è scritto "NONE" vuol dire che dopo che è stato lanciato non succede niente e l'oggetto rimane dove è caduto)
fusetime="-" (questa stringa è presente solo se si tratta di un proiettile di tipo "FUSE" ovvero che esplode dopo un tot di tempo e vi permette di settare il tempo che deve trascorre prima che l'oggetto esploda)

Passo 5:
Volendo è possibile sostituire i suoni e le animazioni delle armi con quelli di altre.
Animazioni e movimenti:
(Mazza da baseball)
(Coltello)
(Pistola)
(Desert Eagle)
(Fucile a pompa)
(Fucile da combattimento)
(Micro SGM)
(MP5)
(AK-47 / M4)
(Fucile di precisione)
(Fucile da cecchino)
(RPG)
(Granata / Oggetti)
(Molotov)

Immagine Postata
0

#3 L'utente è offline   Nikozz 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2525
  • Iscritto il: 28/02/09
  • GTA Preferito:GTA IV

Inviato il 03 aprile 2009 - 17:44

bella,comunque,non per essere scortese,un'arma si apostrofa...
0

#4 L'utente è offline   Kraff 

  • Vice
  • Gruppo: Moderatori
  • Messaggi: 9636
  • Iscritto il: 17/01/07
  • Provenienza:Crema
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2009 - 17:48

Hai scritto
CAN_AIM (Si può mirare liberamente)

invece di
CAN_FREE_AIM (Si può mirare liberamente)

EDIT:
THROWN penso sia l'animazione di quando finisci le munizioni e getta l'arma a terra
0

#5 L'utente è offline   TheUnknowPlayer 

  • Ex galeotto
  • Gruppo: Utenti
  • Messaggi: 707
  • Iscritto il: 09/12/08

Inviato il 03 aprile 2009 - 17:55

Quote

Originally posted by Kraff@03/04/09 - 18:48
Hai scritto
CAN_AIM (Si può mirare liberamente)

invece di
CAN_FREE_AIM (Si può mirare liberamente)

EDIT:
THROWN penso sia l'animazione di quando finisci le munizioni e getta l'arma a terra

grazie correggo! :P

EDIT:
Nikozz: bella,comunque,non per essere scortese,un'arma si apostrofa...
Doh non me 'ero accorto correggo anche quello!
Immagine Postata
0

#6 L'utente è offline   .XxAscordixX. 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1078
  • Iscritto il: 11/02/08
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2009 - 20:30

bravi veramente bravi O_O
SILENZIOSO & LETALE

Immagine Postata


My Hardware

[CPU]Intel i7 2600k 4,0ghz [MOBO] Asus p8p67 evo [VGA] GTX 560 X2 SLI [RAM] 8GB 4X2 Corsair 1333mhz. [CASE] Cooler Master Centurion II [HDD] Samsung Spint Point 1TB F4 7200Rpm
0

#7 L'utente è offline   Felicevai 

  • Taccheggiatore
  • Gruppo: Utenti
  • Messaggi: 32
  • Iscritto il: 10/12/09

Inviato il 13 gennaio 2010 - 11:38

Vorrei gentilmente dei ragguagli circa il parametro "accuracy", quali sono i valori di riferimento?

Per impostare l'M4 con valori alti di accuratezza cosa mi consigliate?

Thanks
0

#8 L'utente è offline   Lorenzo3024 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 892
  • Iscritto il: 17/10/10
  • Gamertag:Lorenzo3024it
  • GTA Preferito:GTA V

Inviato il 18 gennaio 2012 - 21:27

Visualizza MessaggiTheUnknowPlayer, il 03 aprile 2009 - 17:38 ha detto:

TREAT_AS_2HANDED_IN_COVER (???)

credo che si riferisca all'animazione da accovacciati, ovvero se l'arma deve essere tenuta a 2 mani anche accovacciandosi.

Visualizza MessaggiFelicevai, il 13 gennaio 2010 - 11:38 ha detto:

Per impostare l'M4 con valori alti di accuratezza cosa mi consigliate?

copia il valore accuracy dello sniper rifle

Visualizza MessaggiTheUnknowPlayer, il 03 aprile 2009 - 17:38 ha detto:

Thrown

oggetto lanciabile

comunque la stecca da biliardo esiste, solo che è nascosta. ora faccio un tutorial su come aggiungerla senza sostituire la mazza da baseball

Messaggio modificato da Lorenzo3024 il 14 febbraio 2012 - 22:26

Il mio NUOVO canale Youtube: https://www.youtube....ser/Lorenzo3024
Il mio VECCHIO canale Youtube: https://www.youtube....r/Lorenzo3024it
Il mio PC attuale: Asus X556UA con processore Intel Core i7-6500U fino a 3.1GHZ, RAM 12GB, scheda video NVidia Geforce GT 940M da 2GB. Sistema Operativo: Windows 10 Home a 64 Bit.[/center]
GTA Vice City Completato al 100%
GTA San Andreas Completato al 100%
GTA IV Completato al 100%
GTA TLaD Completato al 100%
GTA TBoGT Completato al 100%
GTA V Completato al 78%
0

Pagina 1 di 1
  • 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