GTAOnline.net
Multi Theft Auto (mta) => Scripting MTA [Lua Center] => Discussion démarrée par: Vanarian le 18 Mai 2012, 14:58:21
-
Bonjour,
Voilà j'ai un serveur Linux et je voudrais créer un serveur MTA, mais je ne connais pas grand chose à MTA, je connais plus SAMP.
Donc quand je suis sur mon FTP je comprends pas comment je dois faire pour utiliser tel gamemode, y'a une histoire avec les Meta.Xml que je ne comprends pas non plus, je voudrais faire un serveur avec un mode freeroam mais je n'y arrive pas, quand je lance mon serveur je vois un écran noir :/
Comment le serveur dois faire pour savoir quel gamemode il lance ? sur quelle map etc.
Merci.
-
Vu que tu ne t'y connais pas trop je pense que cela pourra t'aidé : http://wiki.multitheftauto.com/wiki/FR/Introduction_Programmation (http://wiki.multitheftauto.com/wiki/FR/Introduction_Programmation)
C'est le Wiki de Mta:Sa , il n'est pas totalement traduit mais c'est déjà pas mal pour que tu comprennes.
-
Bonsoir Vanarian,
Normalement, il faut suivre ces étapes:
http://linux.mtasa.com/ (http://linux.mtasa.com/)
lancer le serveur
puis ouvrir les ports ( tu peux vérifier si tes ports sont ouverts ici (http://nightly.mtasa.com/ports/) )
Normalement ça devrai marcher vu que freeroam se lance automatiquement avec le serveur.
Tiens nous au courant.
Citizen
-
j'ai réussi.
Vous pouvez me dire comment spawn directement dans les véhicules en freeroam (Panel F1 > create) car les voitures tombent a coté du perso et c'est pas super pratique.
Et comment sauvegarder le skin de notre perso, parce qu'il change après chaque mort.
Merci.
-
UP
-
Pour ça, il faut aller éditer les sources de freeroam.
Il faut chercher une ligne qui doit surement ressembler à ça:
local vehicle = createVehicle( blabla )et aussi une ligne qui doit ressembler à ça:
local x,y,z = getPlayerPosition( player )
ou
local x,y,z = getElementPosition( player )
et on va utiliser ces 2 variables ( player et vehicle ) pour la warpPedIntoVehicle (http://wiki.multitheftauto.com/wiki/WarpPedIntoVehicle)
Rajoute cette ligne après la création du véhicule:
warpPedIntoVehicle( player, vehicle )
Si tu trouves pas, je regarderai demain où c'est exactement.
PS: Désolé pour ce retard
Citizen
-
Merci beaucoup !
Je regarde ça tout de suite.
Edit: je vois : if not getVehicleOccupant(vehicle, i) then
if isPedDead(source) then
local x, y, z = getElementPosition(vehicle)
spawnMe(x + 4, y, z + 1)
end
warpPedIntoVehicle(source, vehicle, i)
return
et vehicle = createVehicle(vehID, vx, vy, vz, 0, 0, vrot)
if (not isElement(vehicle)) then return end
setElementInterior(vehicle, getElementInterior(source))
setElementDimension(vehicle, getElementDimension(source))
table.insert(vehicleList, vehicle)
g_VehicleData[vehicle] = { creator = source, timers = {} }
if vehID == 464 then
warpPedIntoVehicle(source, vehicle)
dans fr-server.lua, mais je ne sais pas quelle partie je dois changer..
-
Tiens c'est bizarre, on a pas la même version de freeroam enfin bref,
Sur le 2ème, tu vois que le warp se fait que si vehID = 464 ( le RC Baron )
( Tu peux tester de créer un RC baron, et tu verras que tu rentreras dedans tout seul )
Nous, on veut que ça "warp" le joueur dans véhicule pour tous les véhicules que le joueur crée.
Donc il faut bouger cette ligne:
warpPedIntoVehicle(source, vehicle)de façon à ce qu'elle soit en-dehors de ce if.
Le mieux c'est de le mettre juste au-dessus, donc juste en-dessous de:
g_VehicleData[vehicle] = { creator = source, timers = {} }
Et le tour est joué !
Dit moi si ça a fonctionné ;)
Citizen
-
oui c'est bon comme ça :
vehicle = createVehicle(vehID, vx, vy, vz, 0, 0, vrot)
if (not isElement(vehicle)) then return end
setElementInterior(vehicle, getElementInterior(source))
setElementDimension(vehicle, getElementDimension(source))
table.insert(vehicleList, vehicle)
g_VehicleData[vehicle] = { creator = source, timers = {} }
warpPedIntoVehicle(source, vehicle)
if vehID == 464 then
elseif not g_Trailers[vehID] then
if getOption('vehicles.idleexplode') then
g_VehicleData[vehicle].timers.fire = setTimer(commitArsonOnVehicle, getOption('vehicles.maxidletime'), 1, vehicle)
end
g_VehicleData[vehicle].timers.destroy = setTimer(unloadVehicle, getOption('vehicles.maxidletime') + (getOption('vehicles.idleexplode') and 10000 or 0), 1, vehicle)
end
vx = vx + 4
vz = vz + 4
Mais quand je spawn le véhicule il part sur la droite, c'est sûrement un problème de position, tu sais quelle ligne doit être modifiée pour résoudre ce problème ?
-
Il suffit de supprimer cette ligne:
vx = vx + 4
car là, il ajoute 4 unités sur l'axe des abscisses ( par rapport à la map de GTA )
Par contre, je te conseil de laisser le vz = vz + 4 car si tu fais apparaître un AT-400, il sera coincé dans le sol :laugh
Voilà, amuse toi bien :P
Citizen
-
Merci beaucoup pour ton aide ! :)
-
Content de t'avoir aidé :happy
Citizen