Jump to content

Wumbaloo

Members
  • Posts

    292
  • Joined

  • Last visited

Everything posted by Wumbaloo

  1. Salut, Comme dit plus haut, c'est vrai que trouver un développeur qui est disponible gratuitement c'est compliqué, mais c'est pas impossible héhé. Bonne recherche à vous ! J'espère que votre projet vas fonctionner, tenez nous au courant !
  2. Avec des interfaces plus compliquées, il faut chercher à innover, en faisant des actions différemment, en limitant les commandes dans le chat, ce genre de choses, après il faut réfléchir pour innover, c'est compliqué.
  3. Je ne pense pas que tu pourras le vendre car il est trop simple pour être vendu mais continue comme ça !
  4. Bon courage pour votre reconstruction et pour votre projet !
  5. Projet intéressant, je vous souhaite une grande réussite !
  6. Pour moi, c'est la définition de ta table qui est pas bonne. Car si tu l'appelles avec "BANK_ACCOUNTS[id].balance" par exemple, il faut donc un index balance, mais sans mettre entre guillemets. Je veux dire par là que tu devrais faire : BANK_ACCOUNTS[id] = { balance = maBalance, } Au lieu de : BANK_ACCOUNTS[id] = { ["balance"] = maBalance, } Tu vois ? Je pense que c'est ça, mais du coup il faut un nom différent de l'index et de la valeur à définir, tu peux pas mettre "balance = balance", c'est pour ça j'ai mis "maBalance"
  7. C'est un gros défi à relever ! J'espère que le travail accomplit sera au niveau de l'image que cette idée renvoie ! Hâte de voir ce que ça donne
  8. Tiens, voici la version avec les table, j'ai mis en commentaire ce qui ne servait plus comme ça tu peux voir les changements. objects = { -- [index] = {object, direction=false, startPosition={0, 0, 0}, endPosition={0, 0, 0}, moving=false}, } function startResource() local object1 = createObject(1700, 0, 0, 2) --setElementData(object1, "direction", true) local object1X, object1Y, object1Z = getElementPosition(object1) objects[1] = {object1, direction=true, startPosition={object1X, object1Y, object1Z}, endPosition={8, 0, 2}, moving=false} -- setElementData(object1, "start:X", object1X) -- setElementData(object1, "start:Y", object1Y) -- setElementData(object1, "start:Z", object1Z) -- setElementData(object1, "end:X", 10) -- setElementData(object1, "end:Y", 0) -- setElementData(object1, "end:Z", 2) -- setElementData(object1, "moving", false) --table.insert(objects, object1) local object2 = createObject(1800, 5, 0, 2) -- setElementData(object2, "direction", true) local object2X, object2Y, object2Z = getElementPosition(object2) objects[2] = {object2, direction=true, startPosition={object2X, object2Y, object2Z}, endPosition={15, 0, 2}, moving=false} -- setElementData(object2, "start:X", object2X) -- setElementData(object2, "start:Y", object2Y) -- setElementData(object2, "start:Z", object2Z) -- setElementData(object2, "end:X", 15) -- setElementData(object2, "end:Y", 0) -- setElementData(object2, "end:Z", 2) -- setElementData(object2, "moving", false) --table.insert(objects, object2) setTimer(verifierCiblePosition, 3000, 0) -- Faire de même avec les différentes cibles end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), startResource) function verifierCiblePosition() for key, cible in pairs(objects) do if (isElement(cible[1])) then -- On vérifie si la cible existe if (cible.direction) then -- Si la direction est "true" --if (getElementData(cible, "direction")) then -- Si la direction est "true" -- On dit que "true" c'est vers la droite local endX, endY, endZ = unpack(cible.endPosition) -- local endX = getElementData(cible, "end:X") -- local endY = getElementData(cible, "end:Y") -- local endZ = getElementData(cible, "end:Z") local cibleX, cibleY, cibleZ = getElementPosition(cible[1]) if (cibleX >= endX and cibleZ >= endZ) then cible.direction = false cible.moving = true --setElementData(cible, "direction", false) -- On change de direction --setElementData(cible, "moving", true) -- Il est en mouvement local startX, startY, startZ = unpack(cible.startPosition) -- local startX = getElementData(cible, "start:X") -- local startY = getElementData(cible, "start:Y") -- local startZ = getElementData(cible, "start:Z") moveObject(cible[1], 3000*key*0.5, startX, startY, startZ) else if (not cible.moving) then -- On vérifie s'il ne bouge pas, de le faire bouger --if (not getElementData(cible, "moving")) then -- On vérifie s'il ne bouge pas, de le faire bouger moveObject(cible[1], 3000*key*0.5, endX, endY, endZ) end end else -- On dit que "false" c'est vers la gauche local endX, endY, endZ = unpack(cible.endPosition) -- local endX = getElementData(cible, "end:X") -- local endY = getElementData(cible, "end:Y") -- local endZ = getElementData(cible, "end:Z") local cibleX, cibleY, cibleZ = getElementPosition(cible[1]) if (cibleX <= endX and cibleZ <= endZ) then cible.direction = true cible.moving = true -- setElementData(cible, "direction", true) -- On change de direction -- setElementData(cible, "moving", true) -- Il est en mouvement moveObject(cible[1], 3000*key*0.5, endX, endY, endZ) else if (not cible.moving) then -- On vérifie s'il ne bouge pas, de le faire bouger --if (not getElementData(cible, "moving")) then -- On vérifie s'il ne bouge pas, de le faire bouger moveObject(cible[1], 3000*key*0.5, endX, endY, endZ) end end end end end end
  9. Ouais j'avais commencé avec des tables puis pour que ce soit plus clair pour un débutant j'ai fais via elementData Au début j'ai mis ces lignes là pour donner un visuel de la structure de la table : objects = { -- [index] = object } En réunissant tout dans une table, ta structure pourrait ressembler à celle-ci: objects = { -- [index] = {object, direction=false, startPosition={0, 0, 0}, endPosition={0, 0, 0}, moving=false} }
  10. Tiens je t'ai rédigé cet exemple, il fonctionne en jeu, je t'ai ajouté quelques commentaire si tu as besoin de savoir pourquoi j'ai écris telle ou telle chose, dit le moi je t'expliquerai. Tu n'as plus qu'à le tester, ajouter des objets, changer les positions et jouer avec les timer du "moveObject" la j'ai mis une petite opération qui fait un mouvement différent entre les deux objets. objects = { -- [index] = object } function startResource() local object1 = createObject(1700, 0, 0, 2) setElementData(object1, "direction", true) local object1X, object1Y, object1Z = getElementPosition(object1) setElementData(object1, "start:X", object1X) setElementData(object1, "start:Y", object1Y) setElementData(object1, "start:Z", object1Z) setElementData(object1, "end:X", 10) setElementData(object1, "end:Y", 0) setElementData(object1, "end:Z", 2) setElementData(object1, "moving", false) table.insert(objects, object1) local object2 = createObject(1800, 5, 0, 2) setElementData(object2, "direction", true) local object2X, object2Y, object2Z = getElementPosition(object2) setElementData(object2, "start:X", object2X) setElementData(object2, "start:Y", object2Y) setElementData(object2, "start:Z", object2Z) setElementData(object2, "end:X", 15) setElementData(object2, "end:Y", 0) setElementData(object2, "end:Z", 2) setElementData(object2, "moving", false) table.insert(objects, object2) setTimer(verifierCiblePosition, 3000, 0) -- Faire de même avec les différentes cibles end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), startResource) function verifierCiblePosition() for key, cible in pairs(objects) do if (isElement(cible)) then -- On vérifie si la cible existe if (getElementData(cible, "direction")) then -- Si la direction est "true" -- On dit que "true" c'est vers la droite local endX = getElementData(cible, "end:X") local endY = getElementData(cible, "end:Y") local endZ = getElementData(cible, "end:Z") local cibleX, cibleY, cibleZ = getElementPosition(cible) if (cibleX >= endX and cibleZ >= endZ) then setElementData(cible, "direction", false) -- On change de direction setElementData(cible, "moving", true) -- Il est en mouvement local startX = getElementData(cible, "start:X") local startY = getElementData(cible, "start:Y") local startZ = getElementData(cible, "start:Z") moveObject(cible, 3000*key/2, startX, startY, startZ) else if (not getElementData(cible, "moving")) then -- On vérifie s'il ne bouge pas, de le faire bouger moveObject(cible, 3000*key/2, endX, endY, endZ) end end else -- On dit que "false" c'est vers la gauche local endX = getElementData(cible, "end:X") local endY = getElementData(cible, "end:Y") local endZ = getElementData(cible, "end:Z") local cibleX, cibleY, cibleZ = getElementPosition(cible) if (cibleX <= endX and cibleZ <= endZ) then setElementData(cible, "direction", true) -- On change de direction setElementData(cible, "moving", true) -- Il est en mouvement moveObject(cible, 3000*key/2, endX, endY, endZ) else if (not getElementData(cible, "moving")) then -- On vérifie s'il ne bouge pas, de le faire bouger moveObject(cible, 3000*key/2, endX, endY, endZ) end end end end end end
  11. Désolé de la réponse tardive Ça dépend, si tu veux qu'il soit synchroniser entre les joueurs ou juste pour le joueur (en local)
  12. Je te propose d'utiliser un onClientRender si tu utilise ce script en client et tu met à jour la position à chaque loop de la fonction, avec un booléan qui vas servir de direction pour l'élément, en gros, s'il est sur false ton élément ira vers la gauche et à l'inverse, s'il est sur true il ira vers la droite. A la fin de tout ça, soit tu fais un "removeEventHandler" pour supprimer le mouvement de tes cibles, ou tu fais un autre booléan qui return au début de ta fonction pour "freeze" le tout. Tu veux un exemple? En serveur ou en client ?
  13. Essaye local state = 0 function light() if state == 0 then exports["dynamic_lighting"]:createPointLight(2104.56128, -1911.91638, 16.00, 255, 0, 0, 255, 10) state = state + 1 elseif state == 1 then exports["dynamic_lighting"]:createPointLight(2104.56128, -1911.91638, 16.00, 255, 0, 0, 0, 10) state = state - 1 end end addCommandHandler("lumiere", light) Ça devrait fonctionner car le wiki dit:
  14. Salut! Depuis quelques temps, je me suis mis au C# et je vise particulièrement la création de jeux vidéos à l'aide d'Unity. J'ai mis une vidéo de la version "Prototype" de mon jeu qui se nomme "Dirty City" Vous pouvez me donner des retours pour que je vois ce qu'il faut changer sur ce qui a déjà été fais ?
  15. Mis à part les injections de script dans les serveurs ou sur les sites de serveurs pour avoir des avantages en jeu directement j'ai pas vu grand chose sur les triches.
  16. Le flag c'est le string de la propriété que tu veux éditer sur l'arme, pour les connaître, regarde le Wiki de la fonction "setWeaponProperty" et tu regarde les valeurs qu'accepte l'argument "property". Ici, Citizen a mis "flags" comme ça il spécifie le flag via un bit, tu peux consulter la liste des bits flags ici : Weapon Flags. Tu peux mettre "flag_move_and_aim" et un autre avec "flag_move_and_shoot" c'est pareil, mais je trouve que c'est mieux les bits flags dans le sens ou c'est plus précis qu'un string quoi, donc durable dans le temps..
  17. Salut, La fonction newCharacter_init est bien appelée ? Tu as bien setup ta base de donnée ? Tu as des soucis dans le debugscript ? Pour ça, créé toi un compte ACL et met toi les droits administrateurs puis tu marques "debugscript 3" dans la console après t'être connecté "login NomDeCompte MotDePasse" dans la console aussi (F8 pour l'ouvrir)
  18. Évidement mais ce n'est pas de la programmation en elle même.
  19. Merci, ouais mon mode fait déjà ces choses sauf le changement de radio grâce aux touches. Je connais cette ressource oui, pour que ta liste des radios soit seulement en serverside, change le type du fichier dans le meta.xml Si tu veux que chacun puisse écouter la radio que le joueur sélectionne, alors il faut que tu communique la radio voulue par le joueur vers le serveur, le serveur se charge de faire une boucle sur tout les joueurs à proximité du véhicule vers un event client pour faire un "PlaySound3D", ce qui fera la synchronisation envers tout les joueurs. J'espère que tu m'as compris, dit le moi si tu ne comprends pas j'essaierai d'être plus clair dans mes propos. Pour vérifier qui peut changer la radio, utilise simplement un "getPedOccupiedVehicleSeat" pour récupérer le siège du joueur, une simple condition "if" permettrait de vérifier si le joueur peut contrôler la radio. J'ai regardé ta ressource, j'avais déjà fait ce système de radio personnalisé dessus pour un serveur. Merci pour ton avis sur mon système.
  20. Ouais, tu peux, il est top ton login panel, à part le design il est top Tu as utilisé mon tuto avec les edit field pour le faire ou tu as tout refais ?
  21. Il y a quelques jours j'ai développé ça: Si c'est ce que tu veux, j'ai utilisé une liste de radios côté serveur en XML et une autre côté client pour les radios personnalisées en XML, et j'ai juste vérifié si le joueur était conducteur ou passager avant droit, alors il peut contrôler la radio, ça marche avec un element data pour le "path" du PlaySound3D Pose moi des questions si tu veux que je t'épaule à la réalisation de celui ci.
  22. Désolé de ne pas avoir pu t'aider d'avantage, mais sur Driverscloud avec le test que je t'avais demandé de faire il ne t'avait pas détecté des pilotes à mettre à jour ?
  23. Du coup sur le site que je t'ai envoyé ils disent que tout tes pilotes sont à jours ? Pour ma part je ne vois rien d'anormal dans tes logs
×
×
  • Create New...