Jump to content

LawrenceKnight

Members
  • Posts

    56
  • Joined

  • Last visited

Everything posted by LawrenceKnight

  1. Problème résolu, il fallait modifier une valeur dans un autre fichier.. ^^ Je suis désolé, le topic a été posté 2 fois... bug de ma connexion je dirai...
  2. Bonjour, j'ai trouvé un excellent script faisant fonctionner la grande roue: https://community.multitheftauto.com/index.php?p=resources&s=details&id=3560 J'ai su y apporter mes propres modifications, sauf une...: Je n'arrive pas à modifier la rotation des cabines... Il y a ce fichier qui fait que chaque cabines vont se déplacer point par point: ferPos = { { 389.875, -2028.52, 8.78125 }, { 389.875, -2021.63, 10.9844 }, { 389.875, -2017.43, 16.8516 }, { 389.875, -2017.45, 24.0312 }, { 389.875, -2021.64, 29.9297 }, { 389.875, -2028.50, 32.2266 }, { 389.875, -2035.38, 29.9531 }, { 389.875, -2039.66, 24.1094 }, { 389.875, -2039.64, 16.8438 }, { 389.875, -2035.40, 10.9453 }, }; mov_ferPos = { { 389.875, -2028.52, 8.78125 }, { 389.875, -2024.9080810547, 9.3344249725342 }, { 389.875, -2021.63, 10.9844 }, { 389.875, -2019.0773925781, 13.53436088562 }, { 389.875, -2017.43, 16.8516 }, { 389.875, -2016.7751464844, 20.459255218506 }, { 389.875, -2017.45, 24.0312 }, { 389.875, -2018.9772949219, 27.334150314331 }, { 389.875, -2021.64, 29.9297 }, { 389.875, -2024.8330078125, 31.609085083008 }, { 389.875, -2028.5, 32.2266 }, { 389.875, -2032.0650634766, 31.609085083008 }, { 389.875, -2035.38, 29.9531 }, { 389.875, -2037.9958496094, 27.359149932861 }, { 389.875, -2039.66, 24.1094 }, { 389.875, -2040.2230224609, 20.484254837036 }, { 389.875, -2039.64, 16.8438 }, { 389.875, -2037.9958496094, 13.584360122681 }, { 389.875, -2035.4, 10.9453 }, { 389.875, -2032.1401367188, 9.2844257354736 }, }; J'ai pensé au début que la rotation pouvais s'ajouter ici, mais il s'avère que non... j'aimerai que toutes les cabines se retrouvent incliné à 90 au lieu de 0 (par défaut), parce que je reconstruit la roue ailleurs sur la map.. Pourriez-vous m'aider s'il vous plait?
  3. Parfait! merci beaucoup! J'ai même pu modifier le "font" et ajouter un peu de couleurs au passage: GUIEditor_Label[1] = guiCreateLabel(0.895,0.270,0.033,0.012,"Level:",true) guiSetFont(GUIEditor_Label[1],"default-bold-small") guiLabelSetColor( GUIEditor_Label[1], 0, 180, 210, 255 ) GUIEditor_Label[3] = guiCreateLabel(0.895,0.300,0.033,0.012,"Exp:",true) guiSetFont(GUIEditor_Label[3],"default-bold-small") guiLabelSetColor( GUIEditor_Label[3], 0, 180, 210, 255 ) GUIEditor_Label[2] = guiCreateLabel(0.920,0.270,0.033,0.012, tostring ( getElementData ( localPlayer, "level" ) ),true) guiSetFont ( GUIEditor_Label[2], "default-normal" ) GUIEditor_Label[4] = guiCreateLabel(0.915,0.300,0.033,0.012, tostring ( getElementData ( localPlayer, "exp" ) ),true) guiSetFont ( GUIEditor_Label[4], "default-normal" ) C'est tout pour moi, et encore merci!
  4. C'est bon, il est corrigé comme ceci: function dxsetText ( ) local text = "" local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 if ( UP == 1 ) then text = " /20" elseif ( UP == 2 ) then -- el 2 significa el level text = " /100" -- el 110 es el texto que va a aparecer osea la experiencia que le va a faltar eso editenlo a su gusto ponganlo de acuerdo a lo que pusieron en el level.xml del resource exp_system elseif ( UP == 3 ) then text = " /200" elseif ( UP == 4 ) then text = " /500" elseif ( UP == 5 ) then text = " /1000" elseif ( UP == 6 ) then text = " /2000" elseif ( UP == 7 ) then text = " /3000" elseif ( UP == 8 ) then text = " /4000" elseif ( UP == 9 ) then text = " /5000" elseif ( UP == 10 ) then text = " /6000" elseif ( UP == 11 ) then text = " /7000" elseif ( UP == 12 ) then text = " /8000" elseif ( UP == 13 ) then text = " /9000" elseif ( UP == 14 ) then text = " /10000" elseif ( UP == 15 ) then text = " /20000" elseif ( UP == 16 ) then text = " /30000" elseif ( UP == 17 ) then text = " /40000" elseif ( UP == 18 ) then text = " /50000" elseif ( UP == 19 ) then text = " /60000" elseif ( UP == 20 ) then text = " /lvl max!" end if isElement(GUIEditor_Label[5]) then destroyElement(GUIEditor_Label[5]) end GUIEditor_Label[5] = guiCreateLabel(706,159,63,13,text,false) guiSetFont ( GUIEditor_Label[5], "default-bold-small" ) end addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText ) addEventHandler ( "onClientElementDataChange", localPlayer, function ( dataName ) if ( dataName == "level" ) then dxsetText ( ) end end ) merci Et est-ce rapide pour faire en sorte que le script s'affiche en fonction de la résolution de l'écran du joueur? parce qu'il ne s'agit pas d'un tableau..
  5. Bonjour! Bon, pour les problèmes précédents c'est pas grave je laisse tomber... Mon serveur avance tout de même bien. Mais là je me retrouve avec, à mon humble avis, un petit problème. Pourtant je n'arrive pas à trouver comment on le gère.. En fait, j'ai ce script (qui fonctionne avec un autre script qui s'appel "exp_system") : https://community.multitheftauto.com/index.php?p=resources&s=details&id=6143 Il sert à afficher le level du joueur sur l'écran + l'XP nécessaire pour le prochain level (exemple: Level 2 | Exp: 52/60) Le problème, c'est qu'en fait lorsque le joueur passe au level suivant, le "text" précédant qui affiche l’expérience requis reste en dessous du nouveau. Ce qui fait qu'au bout d'un moment, il y a plein de "text" superposé... Le script est composé du fichier méta (non sans blague? ), et de deux fichiers type client, soient: addEventHandler ( "onClientResourceStart", resourceRoot, function ( ) GUIEditor_Label = { } GUIEditor_Label[1] = guiCreateLabel(624,135,66,14,"Level:",false) guiSetFont(GUIEditor_Label[1],"default-bold-small") GUIEditor_Label[3] = guiCreateLabel(691,138,83,15,"Exp:",false) guiSetFont(GUIEditor_Label[3],"default-bold-small") GUIEditor_Label[2] = guiCreateLabel(625,153,53,43, tostring ( getElementData ( localPlayer, "level" ) ),false) guiSetFont ( GUIEditor_Label[2], "sa-header" ) GUIEditor_Label[4] = guiCreateLabel(679,159,49,14, tostring ( getElementData ( localPlayer, "exp" ) ),false) guiSetFont ( GUIEditor_Label[4], "default-bold-small" ) end ) addEventHandler ( "onClientElementDataChange", localPlayer, function ( dataName ) if ( dataName == "level" ) then guiSetText ( GUIEditor_Label[2], tostring ( getElementData ( localPlayer, "level" ) ) ) elseif ( dataName == "exp" ) then guiSetText ( GUIEditor_Label[4], tostring ( getElementData ( localPlayer, "exp" ) ) ) end end ) -- Direct X Drawing addEventHandler("onClientRender",root, function() dxDrawText("",623.0,211.0,799.0,226.0,tocolor(255,255,255,255),1.0,"default","left","top",false,false,false) dxDrawRectangle(623.0,211.0,175.0,16.0,tocolor(0,0,0,0),false) end ) gMe = getLocalPlayer() puis: function dxsetText ( ) local text = "" local UP = tonumber ( getElementData ( localPlayer, "level" ) ) or 0 if ( UP == 1 ) then text = " /20" elseif ( UP == 2 ) then -- el 2 significa el level text = " /100" -- el 110 es el texto que va a aparecer osea la experiencia que le va a faltar eso editenlo a su gusto ponganlo de acuerdo a lo que pusieron en el level.xml del resource exp_system elseif ( UP == 3 ) then text = " /200" elseif ( UP == 4 ) then text = " /500" elseif ( UP == 5 ) then text = " /1000" elseif ( UP == 6 ) then text = " /2000" elseif ( UP == 7 ) then text = " /3000" elseif ( UP == 8 ) then text = " /4000" elseif ( UP == 9 ) then text = " /5000" elseif ( UP == 10 ) then text = " /6000" elseif ( UP == 11 ) then text = " /7000" elseif ( UP == 12 ) then text = " /8000" elseif ( UP == 13 ) then text = " /9000" elseif ( UP == 14 ) then text = " /10000" elseif ( UP == 15 ) then text = " /20000" elseif ( UP == 16 ) then text = " /30000" elseif ( UP == 17 ) then text = " /40000" elseif ( UP == 18 ) then text = " /50000" elseif ( UP == 19 ) then text = " /60000" elseif ( UP == 20 ) then text = " /lvl max!" end GUIEditor_Label[5] = guiCreateLabel(706,159,63,13,text,false) guiSetFont ( GUIEditor_Label[5], "default-bold-small" ) end addEventHandler ( "onClientResourceStart", resourceRoot, dxsetText ) addEventHandler ( "onClientElementDataChange", localPlayer, function ( dataName ) if ( dataName == "level" ) then dxsetText ( ) end end ) J'ai pensé qu'il fallait, supprimé le "text" lorsque le level d'après est atteint, pour qu'ensuite juste après le nouveau "text" s'affiche. Si c'est ce qu'il faut faire, ça parait bête mais je ne sais pas comment faire..
  6. Donc c'est ça alors: function SpawnZombie () local pacecount = 0 while pacecount < 5 do --4 ZOMBIES AT A TIME TO PREVENT FPS DROP if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 1) then local xcoord = 0 local ycoord = 0 local xdirection = math.random(1,2) if xdirection == 1 then xcoord = math.random(15,40) else xcoord = math.random(-40,-15) end local ydirection = math.random(1,2) if ydirection == 1 then ycoord = math.random(15,40) else ycoord = math.random(-40,-15) end local liveplayers = getAlivePlayers () if (table.getn( liveplayers ) > 0 ) then local lowestcount = 99999 local lowestguy = nil for PKey,thePlayer in ipairs(liveplayers) do if isElement(thePlayer) then if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) and (getElementData(thePlayer, "alreadyspawned" ) == true) then if (getElementData (thePlayer, "dangercount") < lowestcount) then local safezone = 0 local gx, gy, gz = getElementPosition( thePlayer ) local allradars = getElementsByType("radararea") for theKey,theradar in ipairs(allradars) do if getElementData(theradar, "zombieProof") == true then if isInsideRadarArea ( theradar, gx, gy ) then safezone = 1 end end end if safezone == 0 then lowestguy = thePlayer lowestcount = getElementData (thePlayer, "dangercount") end end end end end pacecount = pacecount+1 if isElement(lowestguy) then triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) else pacecount = pacecount+1 end else pacecount = pacecount+1 end else pacecount = pacecount+1 end end end Ah donc c'est bien ce que j'ai fais, mais toujours pas.. j'ai l'impression qu'on peut rien faire pour les sons..
  7. Si si, le script tourne bien sur mon serveur. Je pense que c'est ça function outbreak(startedResource) newZombieLimit = get("" .. getResourceName(startedResource) .. ".Zlimit") if newZombieLimit ~= false then if newZombieLimit > ZombieLimit then newZombieLimit = ZombieLimit end else newZombieLimit = ZombieLimit end WoodTimer = setTimer ( WoodSetup, 2000, 1) -- CHECKS FOR BARRIERS if startedResource == getThisResource() then -- call(getResourceFromName("scoreboard"), "scoreboardAddColumn", "Zombie kills") --ADDS TO SCOREBOARD local allplayers = getElementsByType ( "player" ) for pKey,thep in ipairs(allplayers) do setElementData ( thep, "dangercount", 0 ) end local alivePlayers = getAlivePlayers () for playerKey, playerValue in ipairs(alivePlayers) do setElementData ( playerValue, "alreadyspawned", true ) end if ZombieSpeed == 2 then MainTimer1 = setTimer ( setangle, 200, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION (fast) else MainTimer1 = setTimer ( setangle, 400, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION end MainTimer3 = setTimer ( clearFarZombies, 3000, 0) --KEEPS ALL THE ZOMBIES CLOSE TO PLAYERS if ZombieStreaming == 1 then MainTimer2 = setTimer ( SpawnZombie, 2500, 0 ) --Spawns zombies in random locations elseif ZombieStreaming == 2 then MainTimer2 = setTimer ( SpawnpointZombie, 2500, 0 ) --spawns zombies in zombie spawnpoints end end end addEventHandler("onResourceStart", getRootElement(), outbreak) Aucun problème Wumbaloo. if ( weaponID == 15 and isControlEnabled ( player,"fire" ) ) then C'est bien ce qu'il fallait faire pour l'argument? (j'ai rajouter le "player" avant le "fire")
  8. function Zomb_Idle (ped) if isElement(ped) then if ( getElementData ( ped, "status" ) == "idle" ) and ( isPedDead ( ped ) == false ) and (getElementData (ped, "zombie") == true) then local action = math.random( 1, 6 ) if action < 4 then -- walk a random direction local rdmangle = math.random( 1, 359 ) setPedRotation( ped, rdmangle ) setPedAnimation ( ped, "PED", "Player_Sneak", -1, true, true, true) setTimer ( Zomb_Idle, 7000, 1, ped ) elseif action == 4 then -- get on the ground setPedAnimation ( ped, "MEDIC", "cpr", -1, false, true, true) setTimer ( Zomb_Idle, 4000, 1, ped ) elseif action == 5 then -- stand still doing nothing setPedAnimation ( ped ) setTimer ( Zomb_Idle, 4000, 1, ped ) end end end end Voici un exemple de code que j'ai trouvé.
  9. Oui, j'ai déjà pensé à me reconnecter justement et ça ne fonctionne pas. D'ailleurs dans la console cette fois-ci ça m'affiche "WARNING: lightsaber\server.lua:3: Bad argument @ 'IsControlEnabled' [Expected player at argument 1, got string 'fire']" Et pour leoutputchatbox ça m'affiche du 7, du 5 ou false. C'est grave docteur?
  10. Donc pour le bind j'ai juste à remplacer le "bindKey ( source, "fire", "down", jedi )" du côté server? Si c'est le cas, dans la console je n'ai plus le Bad Argument mais le son ne se joue toujours pas, pourtant je prend la bonne arme.. Pour le /debugscript 3 apparemment rien ne s'affiche.. Et je n'ai pas très bien compris comment faire le reste..
  11. Super! Mais j'ai des problèmes pour les deux. En fait lorsque j'applique le corrigé, dans la console ça m'indique: "WARNING: lightsaber\server.lua:7: Bad argument @ 'bindkey' [Expected player at argument 1, got string 'fire']" Et puis concernant les dégâts avec la batte, ça ne tue pas les zombies..
  12. Etant moi aussi inexpérimenté j'ai quand même essayer mais sans résultat.. Je n'ai pas peur d'avoir honte, alors je vais exposé ce que j'ai essayé de faire (même si je sais que j'ai fais pas mal de cochonneries): côté client: local JediSound = { "a.mp3", "b.mp3", "c.mp3" } function sounds ( ) local muzzleX, muzzleY, muzzleZ = getPedWeaponMuzzlePosition ( localPlayer ) local px, py, pz = getElementPosition ( localPlayer ) local weaponID = getPedWeapon ( localPlayer ) local sound = playSound3D ( JediSound[ math.random( 1,#JediSound ) ], muzzleX, muzzleY, muzzleZ, false ) setSoundMaxDistance ( sound, 40 ) end addEvent( "PlaySound", true ) addEventHandler( "PlaySound", getRootElement(), sounds ) côté server: function jedi () if ( weaponID == 15 and isControlEnabled ( "fire" ) ) then triggerClientEvent ( "PlaySound", getRootElement() ) end end bindKey ( "fire", "down", jedi ) En ce qui concerne ma deuxième question, je pense avoir bien fait, mais cela ne tue pas les zombies. function killp () if weaponID == 5 then if (getElementData (source, "zombie") == true) then killPed(source, attacker, weapon, bodypart) end end end addEvent( "onClientPedDamage", true ) addEventHandler ( "onClientPedDamage", killp )
  13. Bonjour, https://community.multitheftauto.com/index.php?p=resources&s=details&id=6277 Le script fonctionne très bien, mais j'aimerais savoir comment faire en sorte que lorsqu'un zombie est équipé du sabre, qu'on puisse entendre les sons? Car à priori, il n'y a que le joueur qui peu entendre les sons.. Une second question, comment faire en sorte qu'une bat de Baseball (par exemple) puisse one shot un zombie? Merci de votre aide.
  14. D'accord merci beaucoup Désolé du temps de réponse ^-^
  15. Caméra freeze = ok ^^ D'accord merci je vais tester avec le codage optimisé sinon je chercherai ce qui pose problème. Par contre pour faire héberger son serveur, ou faut-il le faire? et est-ce gratuit, (je n'y connais rien là dessus ^^)
  16. Merci je vais regarder ça Cependant, mes joueurs disent mettre au moins 4h pour télécharger mes ressources (204.60mb) malgré qu'ils ont une bonne co, le problème viendraient de ou? (J’héberge mon serveur moi même) Edit: j'avais ce script pour le respawn des véhicules inutilisé pendant 15 minutes: local vehicles = getElementsByType ( "vehicle", getRootElement () ) for k,v in pairs(vehicles) do toggleVehicleRespawn ( v, true ) setVehicleIdleRespawnDelay ( v, 900000 ) end Mais le soucis c'est que lorsque je met 15 minutes en millisecondes (900000), cela ne fonctionne pas, par contre si je met 4 chiffre tel que 5000 (5 secondes) ou 9000 (9 secondes), là par contre ça fonctionne Le codage ci-dessus à toujours fonctionner auparavant
  17. Bonjour/Bonsoir ^^ Premièrement, j'aimerais savoir comment faire pour qu'au lieu de se balader dans toutes la map lors des téléchargement des scripts du serveur, qu'on ai la caméra freeze (par exemple au dessus de grove street montrant les joueurs en actions), je ne trouve pas comment faire Deuxièmement, je pense que depuis une certaine MAJ de MTA, il y a de nombreux soucis dans les scripts, pourriez vous me donner le code qui fait que le véhicule 15 minutes après son abandons, retourne à son point initial s'il vous plait Merci de m'aider
  18. Oui ^^ Pour résumer: j'aimerais pouvoir changer le tee shirt de CJ par le mode ci-dessus via la freeroam. ^^
  19. Ah merci Cependant je n'arrive pas à remplacer le tshirt, serais-t'il possible de me faire le code svp? L'ID du vêtement à remplacer est: 30512 (le vêtement s'appel: "tshirtprored") Merci de l'aide
  20. Je suis tomber sur ce topic hier soir ^^: https://forum.multitheftauto.com/viewtopic.php?f=91&t=62193 J'ai vraiment fouiller partout, je ne trouve pas comment obtenir un ID pour le vêtement, il dois forcement en avoir un.. Sinon bah au diable, je mettrais ce mod uniquement pour le solo. ^^
  21. Bonjour/Bonsoir, J'aimerais savoir quel est le script à faire pour remplacer un tee shirt par ce mod: http://www.gtaall.eu/fr/gta-san-andreas/clothes/45497-wwe-nexus-t-shirt.html Normalement il suffit juste de remplacer le .txd, mais je ne trouve pas l'id du tee shirt pour le placer dans le script... Si quelqu'un peut m'aider, merci. ^^ DeadKnight
  22. Impreccable, merci! (Je me douter que c'etait tout bête lol) EDIT: En fait non, ça fonctionner au début mais au final ça refait la même chose..
  23. Bonjour/Bonsoir, J'ai cette phrase qui s'affiche sur mon terminal lorsque je me rend dans la zone "spawnpoint" ou sont censer spawner les Ganado: "Client triggered serverside event onGanadospawn, but event is not added in serverside" (J'ai vaguement idée de ce que ça veut dire, pour moi c'est que l'event onGanadospawn n'est pas ajouté côté serveur.. mais sans plus) Alors oui je tiens à preciser, j'ai en plus de la ressource du zombie, la même ressource mais avec "Ganado" au lieu de "Zombie" dans les scripts, car j'aimerais qu'il y est des zombies qui spawn partout autour de nous, partout sur la map (donc les zombies). Et une race de zombies qui spawn dans une zone spécifique (Les ganado, au mount chiliad), tout fonctionne correctement, je n'ai aucun soucis de bad argument etc, juste la phrase ci-dessus qui s'affiche lorsque moi ou un autre joueur se rend dans la zone "Ganado"... Je ne sais pas ce qu'il faut modifier/ajouter ni ou le faire... Pourrais-je avoir de l'aide s'il vous plait, Merci.
×
×
  • Create New...