Jump to content

ma2med

Members
  • Posts

    178
  • Joined

  • Last visited

Everything posted by ma2med

  1. ma2med

    Server list spam

    mtasa://37.247.99.199:22005 Stolen resources and name.
  2. Ah d'accord merci, j'ai trouvé
  3. Ahh. Merci mais c'est pas sa que je voulais faire, en gros ce que je voulais faire c'est que quand il clique sur OK sa lui donne les fusils..
  4. Si tu ne l'as pas trouvé, comment ce fait il qu'il soit dans ton script ??? (onClientGUIClick) Voilà ton code revu et corrigé. Reste à savoir s'il fonctionne, je n'ai pas testé: local gui = {} local screenWidth, screenHeight = guiGetScreenSize() -- a completer pour rajouter des armes dans le tableau local weapons = { "ak-47", "deagle", "chainsaw" } -- a completer pour rajouter des gadgets dans le tableau local gadgets = { "armor" } local function onOkClicked(button, state, absoluteX, absoluteY) if button ~= "left" and state ~= "up" then return end local rowWeaponSelected = guiGridListGetSelectedItem(gui["listWidget"]) local rowGadgetSelected = guiGridListGetSelectedItem(gui["listWidget_2"]) if rowWeaponSelected and rowGadgetSelected then local weaponSelected = guiGridListGetItemText(gui["listWidget"], rowWeaponSelected, 1) local gadgetSelected = guiGridListGetItemText(gui["listWidget_2"], rowGadgetSelected, 1) --debug: outputChatBox("You selected "..weaponSelected.." and "..gadgetSelected) else -- Il n'a pas choisit dans les deux tableaux end toggleWeaponWindow() end local function onCancelClicked(button, state, absoluteX, absoluteY) if button ~= "left" and state ~= "up" then return end toggleWeaponWindow() end function createShopWindow() local windowWidth, windowHeight = 400, 315 local left = screenWidth/2 - windowWidth/2 local top = screenHeight/2 - windowHeight/2 gui["window"] = guiCreateWindow(left, top, windowWidth, windowHeight, "CHOOSE", false) guiWindowSetSizable(gui["window"], false) gui["btn_ok"] = guiCreateButton(111, 257, 77, 28, "OK", false, gui["window"]) addEventHandler("onClientGUIClick", gui["btn_ok"], onOkClicked, false) gui["btn_cancel"] = guiCreateButton(194, 257, 77, 28, "Cancel", false, gui["window"]) addEventHandler("onClientGUIClick", gui["btn_cancel"], onCancelClicked, false) gui["listWidget"] = guiCreateGridList(0, 45, 161, 191, false, gui["window"]) guiGridListSetSortingEnabled(gui["listWidget"], false) guiGridListAddColumn(gui["listWidget"], "WEAPONS", 0.85) for k, weaponName in ipairs(weapons) do local row = guiGridListAddRow(gui["listWidget"]) guiGridListSetItemText(gui["listWidget"], row, gui["listWidget_col"], weaponName, false, false ) end gui["listWidget_2"] = guiCreateGridList(230, 45, 161, 191, false, gui["window"]) guiGridListSetSortingEnabled(gui["listWidget_2"], false) guiGridListAddColumn(gui["listWidget_2"], "GADGETS", 0.85) for k, gadgetName in ipairs (gadgets) do local row = guiGridListAddRow(gui["listWidget_2"]) guiGridListSetItemText(gui["listWidget_2"], row, gui["listWidget_2_col"], gadgetName, false, false ) end guiSetVisible(gui["window"], false) end addEventHandler("onClientResourceStart", resourceRoot, createShopWindow) function toggleShopWindow() local visibility = guiGetVisible(gui["window"]) guiSetVisible(gui["window"], not visibility) showCursor(not visibility) end addCommandHandler("gui", toggleShopWindow) A noter que la fenêtre est crée au moment ou le joueur à rejoins le serveur et qu'on le cache directement. Un /gui permet de le rendre visible s'il ne l'ai pas et inversement. On ne s'amuse donc pas à recréer l'intégralité du GUI à chaque fois. Je t'ai aussi "prémaché" la fonction qui est exécuté pour le OK. Pour rajouter des armes et gadgets, il te faut remplir les deux listes en haut du script. Si ça ne fonctionne pas, merci de me donner l(es) erreur(s) côté client (donc visibles via /debugscript 3 et non pas dans la console du serveur) Bonjour, merci d'avoir répondu et sa ne marche pas, voici les erreurs:
  5. Mhh.. Voila l'expliquation des trucs que j'ai rajoutais: Server : function rewardOnWasted ( killer ) -- En gros cette function donne de l'experience quand un joueur tue un zombie local exp = getElementData(killer,"exp") if exp then setElementData(killer,"exp",tonumber(getElementData(killer,"exp"))+10) outputChatBox("Tu gagne +5 experience ! total ".. tonumber(exp)+5,killer,0,255,0) else setElementData(killer,"exp",10) end end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), rewardOnWasted ) function recomp(player) -- Ici c'est la fonction pour donner 10000$ quand la bar est pleine. outputChatBox("Tu gagne 10000$ !",source,0,255,0) givePlayerMoney ( source, 10000 ) --Donner 10000$ end addEvent("recomp",true) -- Donc j'ajoute l'event pour faire un TriggerServerEvent. addEventHandler ( "recomp", getRootElement(), recomp ) addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function onzombiedie ( killer ) Ici sa donne 100$ a chaque fois que le joueur tue un zombie triggerClientEvent ( "lol", getRootElement() ) givePlayerMoney ( killer, 100 ) --Donner 100$ end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), onzombiedie ) function clientResourceStart( ) --Ici c'est pour crée la bar de progressement somebar = guiCreateProgressBar( 0, 0.9, 10, 0.1, true, nil ) end addEventHandler( "onClientResourceStart", getRootElement(), clientResourceStart ) function clientResourceStop( ) -- La c'est quand le script s'arrête, la bar disparait. Sinon elle ne disparait pas donc c'est important sa destroyElement( somebar ) end addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function lol() -- La c'est quand un joueur tue un zombie la bar de progressement gagne 2 de plus. if ( somebar ) then local progress = guiProgressBarGetProgress(somebar) -- On regarde a combien elle est guiProgressBarSetProgress(somebar, progress+2) -- et on rajoute deux de plus end if ( guiProgressBarGetProgress(somebar) == 100 ) then -- Donc la on verifie si elle est a 100%. guiProgressBarSetProgress(somebar, 0) --Si oui alors ont la remet a zero. triggerServerEvent ( "recomp", getRootElement() ) -- et on donne la récompense ( 10000$ ) end end addEvent( "lol", true ) addEventHandler( "lol", getRootElement(), lol Voila. J'éspére que tu as compris Sinon tu me dis quesque tu n'as pas compris ^^
  6. Bah... Rajoute cette ligne dans meta.xml:
  7. Merci. J'espère juste trouver un deuxième scripteur pour aider le premier dans le script... Derien. Par contre je ne pense pas que demander un scripteur français soit la meilleur solution. Le seule bon scripteur ici c'est Citizen.
  8. Récolteur de sel = Saliculteur je pense. Sinon ca m'a tout l'air d'un trés bon projet. Bonne chance.
  9. Mhh.. Passe moi ton scripts que je puisse voir comment c'est.
  10. Remplace seulement le script que tu as trouver par : Nomme le client.lua le script au dessus. Et dans le meta.xml ( tu as oublier une ligne )
  11. Bonjour, essaye sa: addCommandHandler ( "givespray", function ( ) giveWeapon ( getRootElement(), 41, 500 ) end ) Si tu veux seulement pour les admins: ( seulement les admins peuvent utiliser cette commande ) addCommandHandler ( "givespray", function (thePlayer ) local name = getPlayerName(thePlayer) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) then giveWeapon ( getRootElement(), 41, 500 ) end end )
  12. Voila le script et je ne sais pas ce qu'il arrive quand une bar est complete donc j'ai dis comme quoi qu'il gagne 10000$ Modifie si ce n'est pas ce que tu voulais. SERVER local rootElement = getRootElement() levels = {} levels[0] = {"Test 0", "10"} levels[1] = {"Test 1", "20"} levels[2] = {"Test 2", "100"} levels[3] = {"Test 3", "150"} levels[4] = {"Test 4", "200"} function ResourceStart () executeSQLCreateTable("levels", "accountname STRING, level INT") end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), ResourceStart) function addPlayer() local account = getPlayerAccount(source) local playername = getPlayerName(source) CheckPlayer = executeSQLSelect ( "levels", "accountname", "accountname = '" .. getAccountName(account) .. "'" ) if ( type( CheckPlayer ) == "table" and #CheckPlayer == 0 ) or not CheckPlayer then executeSQLInsert ( "levels", "'".. getAccountName(account) .."','0'" ) end end addEventHandler("onPlayerLogin",rootElement,addPlayer) addEventHandler( "onElementDataChange", rootElement, function () if getElementType(source) == "player" then local acc = getPlayerAccount(source) local accountname = getAccountName(acc) local playername = getPlayerName(source) local data = getElementData(source,"exp") local sqldata = executeSQLSelect ( "levels", "level","accountname = '" .. accountname .. "'") lvl = sqldata[1]["level"] if tostring(data) == tostring(levels[lvl][2]) then outputChatBox("*Level system: congratulations ".. playername .." you're now a ".. levels[lvl][1] .."!",getRootElement(),0,255,0) local textDis = textCreateDisplay () local item = textCreateTextItem( "LEVEL UP! YOU'RE NOW LEVEL ".. tostring(sqldata[1]["level"]), 0.5, 0.4, 2, 0, 255, 0, 255, 4, "center", "center" ) textDisplayAddText ( textDis, item ) textDisplayAddObserver ( textDis, source ) setTimer ( textDestroyTextItem, 5000, 1, item ) setTimer ( textDestroyDisplay, 5000, 1, textDis ) sql = tonumber(sqldata[1]["level"]) + 1 executeSQLUpdate("levels", "level = '".. sql .."'", "accountname = '".. accountname .."'") end end end) function rewardOnWasted ( killer ) local exp = getElementData(killer,"exp") if exp then setElementData(killer,"exp",tonumber(getElementData(killer,"exp"))+10) outputChatBox("Tu gagne +5 experience ! total ".. tonumber(exp)+5,killer,0,255,0) else setElementData(killer,"exp",10) end end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), rewardOnWasted ) function recomp(player) outputChatBox("Tu gagne 10000$ !",source,0,255,0) givePlayerMoney ( source, 10000 ) --Donner 1000$ end addEvent("recomp",true) addEventHandler ( "recomp", getRootElement(), recomp ) addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function onzombiedie ( killer ) triggerClientEvent ( "lol", getRootElement() ) givePlayerMoney ( killer, 100 ) --Donner 100$ end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), onzombiedie ) CLIENT function clientResourceStart( ) somebar = guiCreateProgressBar( 0, 0.9, 10, 0.1, true, nil ) end addEventHandler( "onClientResourceStart", getRootElement(), clientResourceStart ) function clientResourceStop( ) destroyElement( somebar ) end addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function lol() if ( somebar ) then local progress = guiProgressBarGetProgress(somebar) guiProgressBarSetProgress(somebar, progress+2) end if ( guiProgressBarGetProgress(somebar) == 100 ) then guiProgressBarSetProgress(somebar, 0) triggerServerEvent ( "recomp", getRootElement() ) end end addEvent( "lol", true ) addEventHandler( "lol", getRootElement(), lol META OU télécharge: http://www.mediafire.com/download/ea3u8ddba2cp0d1/zombielvl.zip
  13. Ok, je vais essayer, pas besoin d'argent. Merci quand même.
  14. Bonsoir, voici le script : (server) local rootElement = getRootElement() levels = {} levels[0] = {"Test 0", "10"} levels[1] = {"Test 1", "20"} levels[2] = {"Test 2", "100"} levels[3] = {"Test 3", "150"} levels[4] = {"Test 4", "200"} function ResourceStart () executeSQLCreateTable("levels", "accountname STRING, level INT") end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), ResourceStart) function addPlayer() local account = getPlayerAccount(source) local playername = getPlayerName(source) CheckPlayer = executeSQLSelect ( "levels", "accountname", "accountname = '" .. getAccountName(account) .. "'" ) if ( type( CheckPlayer ) == "table" and #CheckPlayer == 0 ) or not CheckPlayer then executeSQLInsert ( "levels", "'".. getAccountName(account) .."','0'" ) end end addEventHandler("onPlayerLogin",rootElement,addPlayer) addEventHandler( "onElementDataChange", rootElement, function () if getElementType(source) == "player" then local acc = getPlayerAccount(source) local accountname = getAccountName(acc) local playername = getPlayerName(source) local data = getElementData(source,"exp") local sqldata = executeSQLSelect ( "levels", "level","accountname = '" .. accountname .. "'") lvl = sqldata[1]["level"] if tostring(data) == tostring(levels[lvl][2]) then outputChatBox("*Level system: congratulations ".. playername .." you're now a ".. levels[lvl][1] .."!",getRootElement(),0,255,0) local textDis = textCreateDisplay () local item = textCreateTextItem( "LEVEL UP! YOU'RE NOW LEVEL ".. tostring(sqldata[1]["level"]), 0.5, 0.4, 2, 0, 255, 0, 255, 4, "center", "center" ) textDisplayAddText ( textDis, item ) textDisplayAddObserver ( textDis, source ) setTimer ( textDestroyTextItem, 5000, 1, item ) setTimer ( textDestroyDisplay, 5000, 1, textDis ) sql = tonumber(sqldata[1]["level"]) + 1 executeSQLUpdate("levels", "level = '".. sql .."'", "accountname = '".. accountname .."'") end end end) function rewardOnWasted ( killer ) local exp = getElementData(killer,"exp") if exp then setElementData(killer,"exp",tonumber(getElementData(killer,"exp"))+5) outputChatBox("Experience gained +5! total ".. tonumber(exp)+5,killer,0,255,0) else setElementData(killer,"exp",5) end end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), rewardOnWasted ) Le script viens de castillo14 ( url: https://community.multitheftauto.com/ind ... ls&id=1253 ) (modifier) Voici un autre example de script que tu peux faire: function onzombiedie ( killer ) outputChatBox("Tu as tué un zombie !", killer,255,255,0) outputChatBox("Tu gagne 1000$ !", killer,255,0,0) givePlayerMoney ( killer, 1000 ) --Donner 1000$ end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), onzombiedie ) Tu ajoute alors (L'event c'est) : addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), onzombiedie ) Plus d'infos: https://wiki.multitheftauto.com/wiki/Slothman/Zombies Et pour la bar tu peux faire un truc comme sa: Client function clientResourceStart( ) progressBar = guiCreateProgressBar( 0.8, 0.8, 0.1, 0.1, true, nil ) end addEventHandler( "onClientResourceStart", getRootElement(), clientResourceStart ) function clientResourceStop( ) destroyElement( progressBar ) end addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function lol() lol = guiScrollBarGetScrollPosition ( progressBar ) guiScrollBarSetScrollPosition ( progressBar, lol+1 ) end addEvent( "lol", true ) addEventHandler( "lol", getRootElement(), lol ) Server addEventHandler( "onClientResourceStop", getRootElement(), clientResourceStop ) function onzombiedie ( killer ) triggerClientEvent ( "lol", getRootElement() ) givePlayerMoney ( killer, 1000 ) --Donner 1000$ end addEvent("onZombieWasted",true) addEventHandler ( "onZombieWasted", getRootElement(), onzombiedie ) Les fonctions pour la bar: ( client ) https://wiki.multitheftauto.com/wiki/guiCreateProgressBar https://wiki.multitheftauto.com/wiki/guiProgressBarSetProgressPosition https://wiki.multitheftauto.com/wiki/guiProgressBarGetProgressPosition Mais je ne pense pas que sa marche le script juste en haut. Je suis pas chez moi je ne pas tester.
  15. Bonjour, j'ai "fais" un script et j'aimerais que quand le joueur selectionne AK47, deagle etc... Il a le fusil. Mais j'ai pas trouver de Event comme quand le joueur selectionne un truc dans la liste et aprés appuit sur OK. Merci d'avance. Le script: function build_Dialog() local gui = {} gui._placeHolders = {} local screenWidth, screenHeight = guiGetScreenSize() local windowWidth, windowHeight = 400, 315 local left = screenWidth/2 - windowWidth/2 local top = screenHeight/2 - windowHeight/2 myWindows = guiCreateWindow(left, top, windowWidth, windowHeight, "CHOOSE", false) guiWindowSetSizable(myWindows, false) showCursor ( true ) gui[""] = guiCreateButton(111, 257, 77, 28, "OK", false, myWindows) if on__clicked then addEventHandler("onClientGUIClick", gui[""], on__clicked, false) end gui[""] = guiCreateButton(194, 257, 77, 28, "Cancel", false, myWindows) if on__clicked then addEventHandler("onClientGUIClick", gui[""], on__clicked, false) end gui["listWidget"] = guiCreateGridList(0, 45, 161, 191, false, myWindows) guiGridListSetSortingEnabled(gui["listWidget"], false) gui["listWidget_col"] = guiGridListAddColumn(gui["listWidget"], "WEAPONS", 0.85) local listWidget_row = nil listWidget_row = guiGridListAddRow(gui["listWidget"]) guiGridListSetItemText(gui["listWidget"], listWidget_row, gui["listWidget_col"], "ak-47", false, false ) listWidget_row = guiGridListAddRow(gui["listWidget"]) guiGridListSetItemText(gui["listWidget"], listWidget_row, gui["listWidget_col"], "deagle", false, false ) listWidget_row = guiGridListAddRow(gui["listWidget"]) guiGridListSetItemText(gui["listWidget"], listWidget_row, gui["listWidget_col"], "chainsaw", false, false ) gui["listWidget_2"] = guiCreateGridList(230, 45, 161, 191, false, myWindows) guiGridListSetSortingEnabled(gui["listWidget_2"], false) gui["listWidget_2_col"] = guiGridListAddColumn(gui["listWidget_2"], "GADGETS", 0.85) local listWidget_2_row = nil listWidget_2_row = guiGridListAddRow(gui["listWidget_2"]) guiGridListSetItemText(gui["listWidget_2"], listWidget_2_row, gui["listWidget_2_col"], "armor", false, false ) return gui, windowWidth, windowHeight end function on__clicked(button, state, absoluteX, absoluteY) if (button ~= "left") or (state ~= "up") then return end showCursor ( false ) destroyElement(myWindows) end function on__clicked(button, state, absoluteX, absoluteY) if (button ~= "left") or (state ~= "up") then return end showCursor ( false ) destroyElement(myWindows) end addCommandHandler("gui", build_Dialog)
  16. Merci infiniment, encore une fois sa marche nickel. Merci.
  17. Bonjour, je cherche comment faire un script pour que le joueur qui dit "/ammo" a 50 munitions a tout les fusils qu'il porte, Merci d'avance.
  18. ma2med

    Objet

    Parfait, merci infiniment
  19. ma2med

    Objet

    Sa affiche: rx: 0, ry: 0, rz: 270.38589477539 It works Vous avez créé un objet en face de vous !
  20. ma2med

    Objet

    En fait, le barril a la même rotation que moi, mais il n'apparait pas devant moi, et il n'est pas toujours derriére moi, si ma rotation est de 0, donc il seras devant moi par contre si c'est 180 il seras derriére moi un truc comme sa.
×
×
  • Create New...