• 28 Mars 2024, 14:59:40


Auteur Sujet: Changer les textures des armes.  (Lu 5344 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Remi

  • *
  • Criminel
  • Développeur de l'extension MTA:DayZ Epoch
  • Messages: 36
    • Voir le profil
Changer les textures des armes.
« le: 06 Avril 2013, 18:38:26 »
Bonjour,
Dans la quête d'améliorer mon serveur, j'ai voulu modifier les armes. Chose qui est tout a fait possible, car, j'avais déjà vue des armes modifier sur un autre serveur MTA.

Comme je commence le LUA est que je comprend pas tout à fait le fonctionnement de tout sa. J'ai foncé à l'aveugle et bien sur cela à échouer.

Voici le code que j'ai fait : (Ne vous moquez pas :embarrassed:)

Meta.xml
<meta>
<info type="misc" name="Nouveau sniper" author="Remi" description="" version="0.5" />
<file src="sniper.txd" />
<script type="client" src="arme.lua" />
</meta>

arme.lua
txd = engineLoadTXD("sniper.txd")
engineImportTXD(txd, 358)

358 correspond à l'ID de l'arme. (Enfin en théorie, le sniper rifle : https://wiki.multitheftauto.com/wiki/Weapons)

Je suppose que l'erreur doit certainement venir de "engineLoadTXD" et "engineImportTXD" non ? Je me suis tromper certainement à ce niveau là. Puisque "Engine" doit certainement être uniquement pour les véhicules.

Vous pouvez me dire quel est l'erreur et comment la corriger d'ailleurs.. J'en demande de l'aide en ce moment d'ailleurs..

Merci d'avance,
J'espère que j'ai bien était clair aussi.  :cool:

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Changer les textures des armes.
« Réponse #1 le: 06 Avril 2013, 19:49:30 »
Bonjour,

Alors tout d'abord, les .txd correspondent aux textures, et les .dff aux modèles 3D.
J'ai l'impression que tu veux juste changer la texture du sniper. (Précision que tu aurais pu nous donner.)

Pour pouvoir remplacer la texture du sniper, il faut attendre que la personne ai finit de téléchargé avant de remplacer la texture:

Code: (lua) [Sélectionner]
function customWeapons()
    outputChatBox("Chargement de la texture ...")
    local txd = engineLoadTXD("sniper.txd")
    outputChatBox("Remplacement de la texture ...")
    engineImportTXD(txd, 358)
    outputChatBox("Nouvelle texture importé !")
end
addEventHandler( "onClientResourceStart", getResourceRootElement(getThisResource()),customWeapons)

J'ai mit ici des outputChatBox afin de voir dans la chatbox l'avancée du remplacement de la texture.
Si les 3 messages s'affichent, la nouvelle texture devrait être chargée.
Sinon, indique nous quels messages s'affichent et donne nous aussi les dernières erreurs dans ton clientscript.log

La console du serveur n'affiche que les erreurs des scripts serveur, pour les erreurs côté client, elles s'enregistrent dans ton clientscript.log

Le miens par exemple se trouve dans:
C:\Program Files (x86)\MTA San Andreas 1.3\MTA

Pour le addEventHandler, cela permet d'attacher une fonction à un event, dès que cet event sera "trigger" (ou appelé), MTA éxecutera toutes les fonctions qui auront été attaché à cet event.
Cette fonction prend (dans sa version minimale) 3 arguments:
1 - Le nom de l'event
2 - Quels sont les sources autorisée pour cette liaison (liaison entre l'event et la fonction)
3 - Quelle fonction à lier

Donc "onClientResourceStart" se fait "trigger" lorsque un ressource démarre, mais on veux quelle soit exécuté que pour la ressource courante (celle où se trouve ce code).
C'est ce que permet ceci: getResourceRootElement(getThisResource())

Voilà, dit nous ce qu'il en est.

Cordialement,
Citizen
The rEvolution is coming ...

Hors ligne Remi

  • *
  • Criminel
  • Développeur de l'extension MTA:DayZ Epoch
  • Messages: 36
    • Voir le profil
Re : Changer les textures des armes.
« Réponse #2 le: 06 Avril 2013, 19:55:39 »
Et si, je souhaite remplacer le TXD et le DFF, il suffira de faire ça ? (Ou quelque chose de ressemblant)
Code: (lua) [Sélectionner]
    function customWeapons()
    outputChatBox("Chargement de la texture ...")
    local txd = engineLoadTXD("sniper.txd")
    local txd = engineLoadDFF("sniper.dff")
    outputChatBox("Remplacement de la texture ...")
    engineImportTXD(txd, 358)
    engineImportDFF(dff, 358)
    outputChatBox("Nouvelle texture importé !")
end
addEventHandler( "onClientResourceStart", getResourceRootElement(getThisResource()),customWeapons)

Hors ligne Citizen

  • Scripteur LUA confirmé
  • *
  • Messages: 235
    • Voir le profil
    • Byston Evolution
Re : Changer les textures des armes.
« Réponse #3 le: 06 Avril 2013, 23:12:41 »
Oui tout à fait à part que c'est:
Code: (lua) [Sélectionner]
local dff = engineLoadDFF("sniper.dff")(local dff et non local txd, surement un oublie dans ton copié collé)

En oubliant pas biensûr de rajouter le sniper.dff dans la meta.xml pour que le client le télécharge.

Du coup tu nous as pas dit si ça fonctionnait ...

Cordialement,
Citizen

The rEvolution is coming ...

Hors ligne Remi

  • *
  • Criminel
  • Développeur de l'extension MTA:DayZ Epoch
  • Messages: 36
    • Voir le profil
Re : Changer les textures des armes.
« Réponse #4 le: 07 Avril 2013, 00:00:46 »
J'avais essayer et sur le tchat, il n'y avais pas les messages. Et l'arme n'avais pas changer de texture du coups.
Je vais réessayer.

--------- EDIT:
Voilà, j'ai réessayer. Sa fonctionne à moitier. Les 2 premiers message s'affiche, mais le dernier qui confirme tout ne s'affiche pas.

La texture de l'arme n'est pas afficher, lors qu'on vise la lunette à était modifier et l'image de l'arme à était modifier.

http://img15.hostingpics.net/pics/54212732322.png

Peut-être que 358 n'est pas la bonne ID d'arme.. Même si, cela m’étonnerais.
EDIT : Je me permet de me contredire : C'est impossible que ce soit la mauvaise ID puisque l'image de l'arme apparaît bien et le viseur à était modifier. Donc cela viens d'autre chose..

Je te laisse mon ZIP : http://demo.ovh.com/fr/145ba9406e3c29637d8cfb7f92034d67/
« Modifié: 07 Avril 2013, 01:12:51 par Remi »