Jump to content

Angelo Pereira

Members
  • Posts

    251
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Angelo Pereira

  1. Sim, basta você fazer e deixa o comando livre para os jogadores em seu servidor, e para fazer-lo basta utilizar os meios deixado pelo Lord Henry! Deixarei um pequeno exemplo : -- Client-Side. addCommandHandler ("Rainbow", function () if not getElementData(getLocalPlayer(),"Elemento:Rainbow") then setElementData(localPlayer, "Elemento:Rainbow", true) --/> Ativar else --/> Desativar setElementData(localPlayer, "Elemento:Rainbow", false) end end) -- NET/ rainbow = {} function rainbowCar() for _, player in pairs(getElementsByType("player")) do if getElementData(player, "Elemento:Rainbow") then local vehicle = getPedOccupiedVehicle(player) if vehicle then if not rainbow[player] then rainbow[player] = 0 return end local r, g, b = getVehicleColor(vehicle, true) if rainbow[player] == 0 then if r < 250 then r = r + 3 if r > 255 then r = 250 end else rainbow[player] = 1 end end if rainbow[player] == 1 then if g < 250 then g = g + 3 else rainbow[player] = 2 end elseif rainbow[player] == 2 then if b < 255 then if r > 0 then r = r - 3 else r = 0 end b = b + 3 if b > 255 then b = 255 end else rainbow[player] = 3 end elseif rainbow[player] == 3 then if g > 0 then if r > 0 then r = r - 3 else r = 0 end g = g - 3 if g < 0 then g = 0 end else rainbow[player] = 4 end elseif rainbow[player] == 4 then if b > 0 then b = b - 3 if b < 0 then b = 0 end else b = 0 rainbow[player] = 0 end end setVehicleColor(vehicle, r, g, b) end end end end addEventHandler("onClientPreRender", getRootElement(), rainbowCar)
  2. Utilize : -- Irá pegar o Veículo Que o Player Esta ... https://wiki.multitheftauto.com/wiki/GetPedOccupiedVehicle --/> local veiculo = getPedOccupiedVehicle (thePed) -- Irá Reparar o Veículo Que o Player Está ... https://wiki.multitheftauto.com/wiki/FixVehicle --/> fixVehicle(veiculo)
  3. Você deve está errando em alguma coisa, eu testei aqui é esta funcionando. Verifique se você fez certo. Caso não encontra o problema, envie print do seu resource e meta.
  4. chatTime = {} lastChatMessage = {} addEventHandler("onPlayerChat", getRootElement(), function(text, msgtype) if (msgtype == 0) then local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local new = "" local iter = 0 msg = string.gsub(text,"ـ","") for word in msg:gmatch("%S+") do iter = iter + 1 if iter == 1 and word:len() > 0 then word = word:gsub("%a",string.upper,1) end new = new..word.." " end if new ~= "" then msg = new end if chatTime[source] and chatTime[source] + tonumber(1000) > getTickCount() then cancelEvent() outputChatBox("Espere 5 segundos para poder digitar novamente!", source, 255, 0, 0, true) return else chatTime[source] = getTickCount() end lastChatMessage[source] = text cancelEvent() local x, y, z = getElementPosition(source) local colplay = createColSphere (x, y, z, 20) local colisao = getElementsWithinColShape (colplay, "player") destroyElement(colplay) for _, player in ipairs(colisao) do outputChatBox("[CHAT LOCAL] Player: " .. name .." : " .. msg.."", player, 255, 255, 255, true) end end end ) Desse jeito irá ser um CHAT LOCAL. lastChatMessage = {} addEventHandler("onPlayerChat", getRootElement(), function(text, msgtype) if (msgtype == 0) then local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local new = "" local iter = 0 msg = string.gsub(text,"ـ","") for word in msg:gmatch("%S+") do iter = iter + 1 if iter == 1 and word:len() > 0 then word = word:gsub("%a",string.upper,1) end new = new..word.." " end if new ~= "" then msg = new end if chatTime[source] and chatTime[source] + tonumber(1000) > getTickCount() then cancelEvent() outputChatBox("Espere 5 segundos para poder digitar novamente!", source, 255, 0, 0, true) return else chatTime[source] = getTickCount() end lastChatMessage[source] = text cancelEvent() outputChatBox("[CHAT LOCAL] Player: " .. name .." : " .. msg.."", root, 255, 255, 255, true) end end ) Desse Jeito apenas será a TAG [CHAT LOCAL]
  5. Da /debugscript 3 e envia a linha do erro Testei aqui está funcionando perfeitamente, apenas faltou um guiSetVisible() na hora de o resource start no client. addEventHandler ("onClientResourceStart", resourceRoot, function () mainWindow = guiCreateWindow (sX/2 - 140, sY/2 - 135, 280, 270, "Loja de Armas", false) guiWindowSetSizable (mainWindow, false) guiSetProperty (mainWindow, "CaptionColour", "FF00FF00") btnM4 = guiCreateButton (59, 46, 163, 37, "M4 = 12000R$", false, mainWindow) guiSetProperty (btnM4, "HoverTextColour", "FF00FF00") btnDeagle = guiCreateButton (59, 93, 163, 37, "Deagle = 7000R$", false, mainWindow) guiSetProperty (btnDeagle, "HoverTextColour", "FF00FF00") btnAk = guiCreateButton (59, 140, 163, 37, "Ak-47 = 15000R$", false, mainWindow) guiSetProperty (btnAk, "HoverTextColour", "FF00FF00") btnMP5 = guiCreateButton (59, 187, 163, 37, "MP5 = 30000$", false, mainWindow) guiSetProperty (btnMP5, "HoverTextColour", "FF00FF00") btnClose = guiCreateButton (244, 240, 26, 20, "x", false, mainWindow) guiSetProperty (btnClose, "HoverTextColour", "FFFF0000") guiSetVisible (mainWindow, false) --/> Adicionando ! end)
  6. da /debugscript 3 e da start no resource e tente abrir-lo, e verifique o erro. (Caso você não conseguir arruma, envie a linha do erro aqui e + código do script).
  7. Nesta correção do Jonas, você precisa criar 2 arquivos, um para o lado do servidor, e o outro para o lado do client. Ou seja, você cria um arquivo para o lado server de exemplo : "armas.Lua", e para o lado client exemplo de : "dx_painel.Lua", então seu "meta.xml" precisa está apontando seus arquivos: <meta> <script src="armas.Lua" type="server" /> <script src="dx_painel.Lua" type="client" /> </meta> O que for server-side, adicione em "armas.Lua", e o que for client-side, adicione em "dx_painel.Lua". Observação Importante : Você pode saber para qual lado vai a função/evento, indo até wiki, e no canto superior direita da tela estará as seguintes informações : Clientside event - Evento Apenas para o lado Client. Serverside event - Evento Apenas para o lado Server. Client-only function - Função Apenas para o lado Client. Server-only function - Função Apenas para o lado Server. Shared function - Função Compartilhada entre Server e Client. Shared Event - Evento Compartilhado entre Server e Client. .Lua - minusculo.
  8. Linha 417. function repairVehicle() local vehicle = getPedOccupiedVehicle(g_Me) if vehicle then if isTimer(timer) then outputChatBox("Aguarde 5 Segundos...") return end server.fixVehicle(vehicle) timer = setTimer(function() if isTimer(timer) then killTimer(timer) end end, 5000, 1) end end
  9. function mastering (element) if not isElementWithinMarker(element, marker) then return end if getElementType(element) == "player" then local inTeam = getPlayerTeam (element) if inTeam then if getTeamName(inTeam) == equipe_dominando then outputChatBox("Sua Equipe Já Dominou...",element,255,255,255,true) return end --/> AQUI if dominado == true then outputChatBox("Esta Area Já Está Sendo Dominada...",element,255,255,255,true) return end --/> AQUI dominado = true --/> AQUI triggerClientEvent(element,"Temp",element) r, g, b = getTeamColor ( inTeam ) outputChatBox("#7D26CD* #ffffffA GANG #7D26CD"..getTeamName(inTeam).." #ffffffESTA DOMINANDO O TERRITORIO #ff0000"..(nomePlayer or ""), root,255,255,255,true) setRadarAreaFlashing ( hillRadar, true ) time = setTimer (function() setRadarAreaFlashing ( hillRadar, false ) givePlayerMoney(element,0) outputChatBox("#7D26CD* "..getTeamName(inTeam).." #ffffffDominou a gang #ff0000"..(nomePlayer or ""), root,255,255,255,true) nomePlayer = getTeamName(inTeam) equipe_dominando = nomePlayer --/> AQUI dominado = false --/> AQUI sql.Query( "UPDATE areas SET atualEquipe = '".. nomePlayer .."'") setRadarAreaColor(hillRadar,r,g,b,200) --/> r,g,b triggerClientEvent(element,"TimerStamp",element) setMarkerColor(marker, 0 ,255 ,0, 80) end,15000,1) else outputChatBox("#7D26CD* #ffffffVocê não esta em nenhuma gang", element,255,255,255,true) end end end addCommandHandler("dominar", mastering)
  10. O script já pega as cores atuais da team e coloca na área linha 30. só trocar o setRadarAreaColor(hillRadar, 0 ,255 ,0, 130) por setRadarAreaColor(hillRadar, r,g ,b, 130)
  11. if getTeamName(inTeam) == equipe_dominando then outputChatBox("Sua Equipe Já Está Dominando...",element,255,255,255,true) return end --/> AQUI Tente isso, bom isso fará que sua team não consiga mais domina a área já domina pela sua team, se for outra coisa, eu não estou te entendendo. Agora, o que você quer é, se você dominar, somente você não conseguir dominar novamente e o resto da team sim?, é isto?
  12. Já foi feito, verifique se está funcionando na linha 11. if (inTeam == equipe_dominando) then outputChatBox("Sua Equipe Já Está Dominando...",element,255,255,255,true) return end --/> AQUI Para dominar este local novamente, outra team terá que dominar o local, caso não estiver funcional, diga aqui que o pessoal ajuda
  13. equipe_dominando = nil --/> AQUI dominado = false --/> AQUI function mastering (element) if not isElementWithinMarker(element, marker) then return end if getElementType(element) == "player" then local inTeam = getPlayerTeam (element) if inTeam then if inTeam == equipe_dominando then outputChatBox("Sua Equipe Já Está Dominando...",element,255,255,255,true) return end --/> AQUI if dominado == true then outputChatBox("Esta Area Já Está Sendo Dominada...",element,255,255,255,true) return end --/> AQUI dominado = true --/> AQUI triggerClientEvent(element,"Temp",element) r, g, b = getTeamColor ( inTeam ) outputChatBox("#7D26CD* #ffffffA GANG #7D26CD"..getTeamName(inTeam).." #ffffffESTA DOMINANDO O TERRITORIO #ff0000"..(nomePlayer or ""), root,255,255,255,true) setRadarAreaFlashing ( hillRadar, true ) time = setTimer (function() setRadarAreaFlashing ( hillRadar, false ) givePlayerMoney(element,0) outputChatBox("#7D26CD* "..getTeamName(inTeam).." #ffffffDominou a gang #ff0000"..(nomePlayer or ""), root,255,255,255,true) nomePlayer = getTeamName(inTeam) equipe_dominando = nomePlayer --/> AQUI dominado = false --/> AQUI sql.Query( "UPDATE areas SET atualEquipe = '".. nomePlayer .."'") setRadarAreaColor(hillRadar, 0 ,255 ,0, 130) triggerClientEvent(element,"TimerStamp",element) setMarkerColor(marker, 0 ,255 ,0, 80) end,15000,1) else outputChatBox("#7D26CD* #ffffffVocê não esta em nenhuma gang", element,255,255,255,true) end end end addCommandHandler("dominar", mastering) function onLeave (element) triggerClientEvent(element,"TimerStamp",element) setRadarAreaFlashing ( hillRadar, false ) if not killTimer(time) then return end dominado = false --/> AQUI outputChatBox("#7D26CD* #ffffffVolte para o marker para continuar dominando.", element,255,255,255,true) end addEventHandler("onMarkerLeave",marker,onLeave) Não testei, caso tiver algum erro, siga o raciocínio do SrPattif.
  14. function AceitarWeapon () local Vendedor = getElementData(source, "TS:Vendedor") if Vendedor then local Preco = tonumber(getElementData(Vendedor, "TS:Preco")) or 0 local Municoes = getElementData(Vendedor, "TS:Muni") or 5 local IDArmaTS = tonumber(getElementData(Vendedor, "TS:IDArma")) or 0 local NomeArma = getElementData(Vendedor, "TS:NomeArma") or "Error" local MunicaoAtual = getElementData(Vendedor, "TS:MuniAtual") or 0 local MunicaoTotalVendedor = MunicaoAtual - Municoes if getPlayerMoney(source) < Preco then triggerClientEvent(source, "addNotification", root, "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffDinheiro Insuficiente!") triggerClientEvent(Vendedor, "addNotification", root, "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffO jogador não tem dinheiro suficiente!") setElementData(Vendedor, "TS:Cliente", nil) setElementData(source, "TS:Vendedor", nil) setElementData(Vendedor, "TS:Preco", nil) setElementData(Vendedor, "TS:Muni", nil) setElementData(Vendedor, "TS:IDArma", nil) setElementData(Vendedor, "TS:NomeArma", nil) return end valor_permitido = 1000000 --/> Altere Caso Queira uma Quantidade Diferente! if Preco >= tonumber(1) and Preco <= tonumber(valor_permitido) then --/> AQUI takePlayerMoney(source, Preco) givePlayerMoney(Vendedor, Preco) takeWeapon(Vendedor, IDArmaTS, Municoes) giveWeapon(source, IDArmaTS, Municoes, true ) setElementData(Vendedor, "TS:Cliente", nil) setElementData(source, "TS:Vendedor", nil) setElementData(Vendedor, "TS:Preco", nil) setElementData(Vendedor, "TS:Muni", nil) setElementData(Vendedor, "TS:IDArma", nil) setElementData(Vendedor, "TS:NomeArma", nil) triggerClientEvent(Vendedor, "addNotification", root, "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffO jogador aceitou a negociação !") triggerClientEvent(source, "addNotification", root, "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffVocê aceitou a negociação!") else --/> AQUI triggerClientEvent(Vendedor, "addNotification", root, "#0037FF✘#ffffffINFO#0037FF✘➺ #ffffffApenas Permitidos Valores de 1 a 1,000.000!") --/> AQUI end --/> AQUI end end addEvent ("TS:AceitarWeapon", true) addEventHandler ("TS:AceitarWeapon", root, AceitarWeapon) Verifique se deste modo iram conseguir bular, e verifique se as alterações está funcional dos (--/>AQUI)
  15. Olá Pessoal ! Bom, eu queria saber quais funções e eventos lado client eu devo utilizar para na 1º pessoa fazer criar uma mira, e eu conseguir mover essa mira para ambas posições. Eu já tenho o script de 1º Pessoa, porem, nela, eu não tenho controle da mira quando eu miro, e quando mira, não existe mira (o ponto X na tela). Se alguém poder me ajudar, agradeço!
  16. root = getRootElement() tempo = 2000 -- 2s p/ carregar a skin apos morrer/Logar ! --/> MORRER function salvar_skin () local skin = getPedSkin(source) setTimer (setElementModel, tempo, 1, source, skin, true) end addEventHandler ( "onPlayerWasted", root, salvar_skin ) --/> QUIT / Salvar no Element "skin_salva" function quit_salvar_skin () local conta = getPlayerAccount(source) setAccountData (conta, "skin_salva", tostring (getPedSkin(source))) end addEventHandler ( "onPlayerQuit", root, quit_salvar_skin ) --/> LOGIN / Carregará function playerLogin (_, account) local conta_date = getAccountData (account, "skin_salva") if conta_date then setTimer (setElementModel, tempo, 1, source, conta_date, true) end end addEventHandler ("onPlayerLogin", root, playerLogin) É apenas um exemplo, se está funcional eu não sei
  17. Este painel de login ele faz login utilizando elemento, e não um LogIn. Para resolver isto, você precisa adapta-lo para criar uma conta usando a função addAccount e depois LogIn. Nesse meio, você precisará adiciona verificações para verificar a conta já não existe para não bugarem.
  18. Adicione embaixo da função : local accName = getAccountName(getPlayerAccount(playerSource)) --/> PEGAR CONTA DO JOGADOR if isObjectInACLGroup ("user."..accName, aclGetGroup ( "vip") ) then --/> VERIFICAR SE O LOGIN ESTA NA ACL vip e adicione um end no final da função. Ficará assim : function fix (playerSource) local accName = getAccountName(getPlayerAccount(playerSource)) --/> AQUI if isObjectInACLGroup ("user."..accName, aclGetGroup ( "vip") ) then --/> AQUI local theVehicle = getPedOccupiedVehicle (playerSource) if theVehicle and getVehicleController ( theVehicle ) == playerSource then fixVehicle (theVehicle) outputChatBox("", playerSource, 255,255,255,true) end end --/> AQUI end addCommandHandler ("fix" , fix)
  19. function curarPlayer(thePlayer, command, nameP) if nameP then if getPlayerFromPartialName(nameP) then local conta = getAccountName (getPlayerAccount(thePlayer)) if isObjectInACLGroup("user."..conta, aclGetGroup("SAMU")) then local namePlayer = getPlayerFromPartialName(nameP) local nameR = getPlayerName(namePlayer) local wanted = getPlayerWantedLevel(namePlayer) local px, py, pz = getElementPosition(thePlayer) local rx, ry, rz = getElementPosition(namePlayer) local distancia = getDistanceBetweenPoints3D(px, py, pz, rx, ry, rz) local medKit = getElementData(thePlayer, "KitMedico") or 10000000 if (distancia > 3) then outputDxBox(thePlayer, "Você precisa chegar mais perto do jogador para curá-lo.", "error") elseif (distancia < 2) then if getElementData(namePlayer, "playerFallen") then if not getElementData(namePlayer, "Curando_Este_Jogador") then -- /> Adicionado setElementData(namePlayer, "Curando_Este_Jogador", true) -- /> Adicionado setPedAnimation(thePlayer, "BOMBER", "BOM_Plant", 1000, false) if isElement ( blip[namePlayer] ) then destroyElement(blip[namePlayer]) end outputDxBox(thePlayer, "Curando jogador...", "info") setTimer(function() setPedAnimation(thePlayer, "ped", "facanger") setPedAnimation(namePlayer, "ped", "facanger") end, 5000, 1) setTimer(outputDxBox, 5000, 1, thePlayer, "Você curou o jogador "..nameR, "success") --setTimer(outputDxBox, 5000, 1, thePlayer, "Caso fique bugado use #00ff00/debug", "success") setTimer(outputDxBox, 5000, 1, namePlayer, "Você foi curado por um médico!", "success") --setTimer(outputDxBox, 5000, 1, namePlayer, "Caso fique bugado use #00ff00/debug!", "success") setTimer(givePlayerMoney, 5000, 1, thePlayer, 3000) setTimer(setPlayerFallen, 5000, 1, namePlayer, false) setTimer(function() setElementData ( thePlayer, "AirNewSCR_LiberarXP", "Sim" ) setPedAnimation ( thePlayer ) setPedAnimation ( namePlayer ) removeElementData (namePlayer, "Curando_Este_Jogador") -- /> Adicionado end, 6000, 1) else -- /> Adicionado outputDxBox(thePlayer, "Jogador já está sendo curado.", "error") -- /> Adicionado end -- /> Adicionado else outputDxBox(thePlayer, "O jogador não precisa ser curado.", "error") end end else outputDxBox(thePlayer, "Permissão negada para teste comando!", "error") end end else outputDxBox(thePlayer, "Erro! O correto é /curar Nome", "error") end end addCommandHandler("curar", curarPlayer) Teste lá
  20. Use a primeira opção que eu deixei, e depois aprimore, apenas adicionei linhas para não buga a team após dado o teleporte.
  21. zonapvp = createColRectangle ( 5441.9, -1926.4, 119.5, 133 ) event_iniciado = 1 verificarOne = 0 oldTeam = {} -- Tabela para salvar o Team antigo. local spawns = { {5460.70264, -1825.30945, 10.97057}, {5454.74805, -1884.13953, 10.29621}, {5537.57373, -1887.13306, 11.04092}, {5545.14746, -1829.44873, 10.29401}, {5501.95557, -1861.66174, 10.29621} } function start_admin_event (player) if event_iniciado == 1 then local accName = getAccountName(getPlayerAccount(player)) if isObjectInACLGroup("user."..accName, aclGetGroup("Owner")) then outputDebugString ("Evento Iniciado") event_iniciado = event_iniciado + 1 i = 0 pvp_1 = createTeam("PVP-Red [use /pvp]", 255, 0, 0) pvp_2 = createTeam("PVP-Green [use /pvp]", 0, 255, 0) pvp_3 = createTeam("PVP-Blue [use /pvp]", 0, 0, 255) pvp_4 = createTeam("PVP-Yellow [use /pvp]", 255, 255, 0) addCommandHandler ( "pvp", tele ) end end end addCommandHandler ( "eventStart", start_admin_event ) function entrar_na_zona( thePlayer, matchingDimension ) if getElementType ( thePlayer ) == "player" then redirecionar_team (thePlayer ) end end addEventHandler("onColShapeHit", zonapvp, entrar_na_zona) function sair_da_zona( thePlayer, matchingDimension ) if getElementType ( thePlayer ) == "player" then retirar_team (thePlayer ) end end addEventHandler("onColShapeLeave", zonapvp, sair_da_zona) function tele(player) local teles = math.random ( #spawns ) if ( teles ) then local isTeamPlayer = getPlayerTeam ( player ) verificarOne = verificarOne +1 setElementData(player,"inPVP",true) redirecionar_team(player) setElementPosition(player, unpack ( spawns [ teles ] )) end end function redirecionar_team (thePlayer) playerTeam = getPlayerTeam(thePlayer) i = i + 1 if i > 4 then i = 1 end if pvp_1 and pvp_2 and pvp_3 and pvp_4 then if playerTeam then if not oldTeam[thePlayer] then -- Adicionado oldTeam[thePlayer] = getTeamName(playerTeam) end -- Adicionado --else -- Adicionado -- oldTeam[thePlayer] = true -- Adicionado end if i == 1 then setPlayerTeam ( thePlayer, pvp_1 ) end if i == 2 then setPlayerTeam ( thePlayer, pvp_2 ) end if i == 3 then setPlayerTeam ( thePlayer, pvp_3 ) end if i == 4 then setPlayerTeam ( thePlayer, pvp_4 ) end end end function retirar_team (player) if oldTeam[player] then local team = getTeamFromName(oldTeam[player]) or false -- Adicionado if team then -- Adicionado setPlayerTeam(player, getTeamFromName(oldTeam[player])) oldTeam[player] = nil -- Adicionado end else setPlayerTeam(player, nil) -- Adicionado end end addCommandHandler("stop123", function (player) local accName = getAccountName ( getPlayerAccount ( player ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "Owner" ) ) then if event_iniciado >= 2 then for k , v in ipairs(getElementsByType("player")) do if getElementData(v,"inPVP") then retirar_team(v) end end destroyElement(pvp_1) destroyElement(pvp_2) destroyElement(pvp_3) destroyElement(pvp_4) removeCommandHandler("pvp") event_iniciado = 1 end end end) Você fez alterações no código, em vez, de remover a linha que eu tinha mencionado, teste isso
×
×
  • Create New...