Jump to content

main

Members
  • Posts

    112
  • Joined

  • Days Won

    1

Everything posted by main

  1. Os parâmetros do evento onPlayerLogin está errado e não é necessário usar O certo seria assim: local maleSkins = {[0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true} -- Tabela 01, skins 'masculinas' local femaleSkins = {[9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true} -- Tabela 02, skins 'femininas' function styleAndar (thePreviousAccount, theCurrentAccount) -- Inicio da função. local id = getElementModel (source) -- Detecta o id da skin do jogador . if (maleSkins[id]) then -- Se o jogador estiver com uma das skins da tabela 'maleSkins' então: setPedWalkingStyle (source, 10) -- Seta o modo de andar 'masculino' nele. outputChatBox ( "Stylo de andar: Masculino", source ) else setPedWalkingStyle (source, 11) -- Se for ao contrário no caso 'feminino' seta o modo 'feminino' outputChatBox ( "Stylo de andar: Feminino", source ) end end addEventHandler ("onPlayerLogin", getRootElement(), styleAndar) -- Evento onde a função sera chamada no caso no login de cada player.
  2. Consegui arrumar, o loop funcionava normalmente, o problema era na verificação e na data.
  3. Aparece o print("3") no debug, mas o outputChatBox não é executado
  4. Você precisa mostrar o resto do código para podermos verificar se não tem algo errado...
  5. -- Client-Side button = guiCreateButton(136, 192, 20, 39, "", false) function fToggleButtonEnabled(bool) guiSetEnabled(button, bool) end addEvent("toggleButtonEnabled", true) addEventHandler("toggleButtonEnabled", resourceRoot, fToggleButtonEnabled) -- Server-Side function aclPanel(thePlayer) local accName = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accName, aclGetGroup("Console") or aclGetGroup("SCMD-PMERJ")) then triggerClientEvent(thePlayer, "toggleButtonEnabled", resourceRoot, true) -- botao ativado else triggerClientEvent(thePlayer, "toggleButtonEnabled", resourceRoot, false) -- botao desativado end end
  6. Nunca tive problemas em programar assim, se você já viu algo sobre isso me informe por favor. addEventHandler("onPlayerLogin", root, function(_, theCurrentAccount) local dataFirstLogin = getAccountData(theCurrentAccount, "firstLogin") if not dataFirstLogin then givePlayerMoney(source, 10000) setAccountData(theCurrentAccount, "firstLogin", true) end end) Já que os amigos disse que gera conflito, pode usar deste modo.
  7. Só irá haver conflito se estiver outra função com mesmo nome .-.
  8. function onPlayerLogin(_, theCurrentAccount) local dataFirstLogin = getAccountData(theCurrentAccount, "firstLogin") if not dataFirstLogin then givePlayerMoney(source, 10000) setAccountData(theCurrentAccount, "firstLogin", true) end end addEventHandler("onPlayerLogin", root, onPlayerLogin)
  9. Isso é um pickup, para criar usa-se createPickup
  10. Ah verdade, já corrigi, muito obrigado @DNL291
  11. @DNL291 Na real foi pra ver se realmente o código estava bem otimizado, eu corrigi o código com essas dicas, não entendi a parte do ´Edit´ que você disse.
  12. Muito obrigado, vou rever com calma pra tentar sugar algo kk.
  13. Obrigado @Lord Henry pelas dicas.
  14. function onPlayerCommand(command) if command == "msg" then cancelEvent() outputChatBox("Use o comando /pm em vez deste comando", source, 255, 0, 0) playSoundFrontEnd(source, 40) end end addEventHandler("onPlayerCommand", root, onPlayerCommand) local blockPM = {} local replyPM = {} local timePM = {} local timeReply = {} function privateMessage(player, command, target, ...) local target = getPlayerFromPartialName(target) if timePM[player] then local tempo = math.floor(getTimerDetails(timePM[player])/1000) outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFEspere "..tempo.." segundos para enviar outra mensagem", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) return end if blockPM[target] then outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFEste jogador bloqueou o recebimento de mensagens", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) return end if target == player then outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFVocê não pode enviar mensagem para si mesmo", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) return end local text = table.concat({...}, " ") if text ~= "" then if isElement(target) then outputChatBox("#0080FF[PM] recebida de #FFFFFF"..getPlayerName(player).."#FFFFFF: "..text, target, 255, 255, 255, true) outputChatBox("#0080FF[PM] para #FFFFFF"..getPlayerName(target).."#FFFFFF: "..text, player, 255, 255, 255, true) replyPM[player] = target replyPM[target] = player triggerClientEvent(target, "playNotifyPM", resourceRoot) timePM[player] = setTimer(function() timePM[player] = false end, 3000, 1, player) else outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFO jogador especificado não foi encontrado", player, 255, 255, 255, true) end else outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFSYNTAX: /pm <jogador> <mensagem>", player, 255, 255, 255, true) end end addCommandHandler("pm", privateMessage) function replyMessage(player, command, ...) local target = replyPM[player] if timeReply[player] then local tempo = math.floor(getTimerDetails(timeReply[player])/1000) outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFEspere "..tempo.." segundos para responder outra mensagem", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) return end if blockPM[target] then outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFEste jogador bloqueou o recebimento de mensagens", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) return end local text = table.concat({...}, " ") if text ~= "" then if isElement(target) then outputChatBox("#0080FF[PM] recebida de #FFFFFF"..getPlayerName(player).."#FFFFFF: "..text, target, 255, 255, 255, true) outputChatBox("#0080FF[PM] para #FFFFFF"..getPlayerName(target).."#FFFFFF: "..text, player, 255, 255, 255, true) triggerClientEvent(target, "playNotifyPM", resourceRoot) timeReply[player] = setTimer(function() timeReply[player] = false end, 3000, 1, player) else outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFVocê ainda não recebeu mensagem de ninguém", player, 255, 255, 255, true) end else outputChatBox("#0080FF[PM] #FF1717ERROR: #FFFFFFSYNTAX: /re <mensagem>", player, 255, 255, 255, true) end end addCommandHandler("re", replyMessage) function blockPrivateMessage(player) if not blockPM[player] then blockPM[player] = true outputChatBox("#0080FF[PM] #FFFFFFVocê bloqueou o recebimento de mensagens", player, 255, 255, 255, true) playSoundFrontEnd(player, 1) else blockPM[player] = false outputChatBox("#0080FF[PM] #FFFFFFVocê desbloqueou o recebimento de mensagens", player, 255, 255, 255, true) playSoundFrontEnd(player, 40) end end addCommandHandler("blockpm", blockPrivateMessage) function onPlayerQuit() if blockPM[source] then blockPM[source] = nil elseif replyPM[source] then replyPM[source] = nil elseif timePM[source] then timePM[source] = nil end end addEventHandler("onPlayerQuit", root, onPlayerQuit) function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Olá pessoal, hoje eu fiz um sistema de mensagem privada, gostaria de saber se tem algo que eu possa otimizar para melhor fluir do script, desde já agradeço.
  15. @Lord Henry além de ter ajudado o rapaz, me ajudou muito também, eu tinha algumas dúvidas sobre o sql e fiquei satisfeito em ler este post, obrigado.
  16. Tem um resource disponível na comunidade que faz isso, talvez possa te ajudar. Segue o link: https://community.multitheftauto.com/index.php?p=resources&s=details&id=3526
  17. Tente isso: function finishExmanigAutoS () local veh = getPedOccupiedVehicle ( source ) if isElement ( veh ) then destroyElement ( veh ) end ac = getPlayerAccount ( source ) setAccountData ( ac, "carLicense", "1" ) setElementData ( source, "carLicense", true) outputChatBox ( "#FF0000-Auto Escola-#FFFF00Parabéns! Você passou No Teste!", source, 0, 255, 0, true ) outputChatBox ( "#FF0000-Auto Escola-#FFFF00Aqui Esta A Sua Habilitação E não quebre as regras.", source, 0, 255, 0, true ) setElementPosition (source, -2029.6142578125, -116.66015625, 1035.171875) end addEvent( "finishExmanigAuto", true ) addEventHandler( "finishExmanigAuto", getRootElement(), finishExmanigAutoS )
  18. getPlayerWantedLevel() não tem argumento quando usado no client-side Você pode setar uma data com as estrelas de cada jogador no server-side setTimer(function() for i, player in pairs(getElementsByType("player")) do local wanted = getPlayerWantedLevel(player) setElementData(player, "Player:Wanted", wanted) end end end, 1000, 0) E obtê-la no client-side for k, player in pairs(getElementsByType("player", root, true)) do if (player ~= localPlayer) then local procurado = getElementData(player, "Player:Wanted") if procurado == 1 then dxDrawImage(x - 80, y - 45, v/2.9 , 15, "gfx/stargold.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end
  19. Eu nem te conheço para querer te atacar, todo dia venho no fórum e vejo se tem algum post não respondido... em vez de falar asneira, você podia simplesmente ignorar o post.
  20. Tente usar guiSetInputMode, ou cancelar as teclas que fazem outros painéis abrir quando o jogador entrar com onClientKey.
  21. Of course, but can also do with dxDraw.
  22. local sWidth, sHeight = guiGetScreenSize() local hud = {} hud.bgHpX = sWidth - 200 hud.bgHpY = 20 hud.bgHpW = 50 -- pixels img hud.bgHpH = 50 -- pixels img hud.HpX = sWidth - 195.5 hud.HpY = 65 hud.HpW = 42 -- pixels img hud.HpH = 42 -- pixels img function onClientRender() dxDrawImage(hud.bgHpX, hud.bgHpY, hud.bgHpW, hud.bgHpH, "design/hp_bg.png") -- background hp local hp = getElementHealth(getLocalPlayer()) local hpHeigth = hud.HpH / 100 * (hp) dxDrawImageSection(hud.HpX, hud.HpY, hud.HpW, -hpHeigth, 0, 0, hud.HpW, -hpHeigth, "design/hp_full.png", 0, 0, 0, 0x50FF0000, false) end addEventHandler("onClientRender", root, onClientRender) Here is an example.
×
×
  • Create New...