Jump to content

[AIDE]Armes


Recommended Posts

Bonjour, je cherche a ajouter des IDs pour pouvoir ajouter des armes et non les remplacer.

J'ai regardé un peu partout comment faire mais aucun moyen de trouver quoi que se soit d’intéressant concernant l'ajout d'IDs.

Je me demande donc si quelqu'un serait me dire quoi.

--------------------------------------------------------------------------

Je viens de trouver :

createWeapon 

--------------------------------------------------------------------------

Je me demande maintenant si maintenant :

 createProjectile 

et

engineLoadTXD  
engineLoadDFF  
engineImportTXD  

pourrait être utiliser pour se que je veux

---------------------------------------------------------------------------

Bon j'ai trouver, sa devrait allé normalement

Link to comment
  • Moderators

Pour faire court, la réponse est non ! Il n'est pas encore possible de rajouter des ids et donc des armes.

Cette demande récurente fait déjà l'objet d'une tâche mais qui est tellement énorme à réaliser en terme de travail/code pour la team MTA que personne ne s'y est encore attaqué.

La demande: https://bugs.mtasa.com/view.php?id=7728 (créée en 2011)

Sous-tâche qui devra être réalisée avant même de pouvoir penser à réaliser la précédente: https://bugs.mtasa.com/view.php?id=6571 (crée en 2013)

La fonction createWeapon permet de spawn une arme comme si tu spawnais un objet avec createObject mais que tu peux contrôler via le script (comme faire tirer l'arme via setWeaponState(weapon, "firing")).

L'arme n'est donc pas portée par un joueur ou un NPC et tu peux l'attacher sur un capot de voiture par exemple. L'arme est donc comme un objet et tu ne peux pas non plus la ramasser car ce n'est pas un pickup.

Par contre, il me semble que c'est possible "de faire comme ci". En effet une solution possible serait de remplacer un objet dont l'id n'est pas utilisé par GTA.

Liste des ids non utilisé par GTA:

http://gtaforums.com/topic/488464-free- ... 1060756540

  

Mais dans la version 1.6 de MTA, ils ont pris certains de ces ids pour rajouter des skins (236 nouveaux skins au total) et donc il ne faut que t'utilises un id qui n'est pas dans cette liste:

https://wiki.multitheftauto.com/wiki/Character_Skins

3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 273, 289, 329, 340, 382, 383, 398, 399, 
612, 613, 614, 662, 663, 665, 666, 667, 668, 699, 793, 794, 795, 796, 797, 798, 799, 907, 
908, 909, 965, 999, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 
1206, 1326, 1573, 1699, 2883, 2884, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 
3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 
3160, 3161, 3162, 3163, 3164, 3165, 3166, 3176, 3177, 3179, 3180, 3181, 3182, 3183, 
3184, 3185, 3186, 3188, 3189, 3190, 3191, 3192, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 
3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3215, 
3216, 3217, 3218, 3219, 3220, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 
3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3245, 3247, 3248, 3251, 3254, 
3266, 3348, 3349, 3416, 3429, 3610, 3611, 3784, 3870, 3871, 3883, 3889, 3974, 4542, 4543, 
4544, 4545, 4546, 4547, 4548, 4549, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 
4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 
4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 
4802, 4803, 4804, 4805, 5090, 5104, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 
5384, 5385, 5386, 5387, 5388, 5389 

Une fois un id trouvé, tu le remplaces entièrement via les fonctions suivantes:

-- Texture 
engineImportTXD 
engineLoadTXD 
  
 -- Model 
engineLoadDFF 
engineReplaceModel 
  
-- Collision (n'en load pas pour des armes, c'est pas utile et ça peut faire glitcher/buguer) 
  
engineSetModelLODDistance -- Si jamais la distance d'affichage est trop courte 

Ensuite pour utiliser cette nouvelle "arme", tu donnes une arme qui existe déjà au joueur et qui correspond à la nouvelle arme (genre si ta nouvelle arme est un m4a4 qui se prend donc à 2 mains, tu donneras un ak et pas un uzi), tu remplaces sa texture par une texture invisible (y a moyen de le faire via les shaders, ou tout simplement les engineImportTXD et engineLoadTXD) et ensuite tu crées l'arme via le createObject et l'id choisit et tu l'attaches à la main droite du joueur (utilise la ressource bone_attach).

Il y aura le problème du son et tu pourras aussi changer les dégats de l'arme en codant un peu dans onClientPlayerDamage.

Avec tout ça on devrait avoir quelque chose de potable mais ça demande un peu de boulot.

Cordialement,

Citizen

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...