LawrenceKnight

Members
  • Content Count

    56
  • Joined

  • Last visited

Community Reputation

1 Neutral

About LawrenceKnight

  • Rank
    Snitch

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  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 ^-^