Jonas^
Members-
Posts
1,016 -
Joined
-
Last visited
-
Days Won
9
Everything posted by Jonas^
-
Vlw pela explicação, vai ser útil.
-
Porta TCP Modem
Jonas^ replied to TheVodka's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Estranho as empresas fazerem isso hoje em dia ainda. Aqui em casa eu tenho um problema, mas é com o roteador, o pessoal não libera a senha então fica difícil usar o local pra testar algumas coisas com os amigos, até daria pra resetar o roteador, porém a configuração é PPoE então é conexão direta com o provedor através de outro login e senha. Sobre o hamachi acho que daria sim pra ele utilizar mas é chato ter que ficar criando rede e mais rede. Aconselharia comprar uma VPS mais barata que tiver só pra testes, tem várias por aí. -
Porta TCP Modem
Jonas^ replied to TheVodka's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Você tem que abrir no moldem e habilitar no firewall para que o servidor consiga efetuar a conexão e os jogadores conseguirem fazer o download. -
Vlw lord, eu imaginava que não iria funcionar direito, eu não sabia dessa função de centralizar no meio da tela vai ser muito útil pra mim.
-
Não, desta forma não funciona. Desta forma da apenas para ajustar em uma resolução, não sei se da pra identificar com essa mesma função a resolução que o jogador esta usando. Ex: local x, y = (screenH/1366), (screenW/768) local screenH, screenW = guiGetScreenSize() addEventHandler( "onClientResourceStart", resourceRoot, function() label1 = guiCreateLabel(x*105, y*696, x*211, y*19, "Teste 1", false) guiSetFont(label1, "default-bold-small") -- label2 = guiCreateLabel(x*81, y*677, x*211, y*19, "Teste 2", false) guiSetFont(label2, "default-bold-small") end ) o que quero fazer é identificar a resolução do jogador e ajustar.
-
Olá pessoal, boa noite, bom eu gostaria saber se tem alguma forma de identificar a resolução dos jogadores e aplicar na label, ou seja, ajustar de acordo com a resolução do player, fiz uma label de exemplo aqui: Código: addEventHandler( "onClientResourceStart", resourceRoot, function() label1 = guiCreateLabel(105, 696, 211, 19, "Teste 1", false) guiSetFont(label1, "default-bold-small") -- label2 = guiCreateLabel(81, 677, 211, 19, "Teste 2", false) guiSetFont(label2, "default-bold-small") end ) Fiz essa label na resolução 1280x720, queria ajustar para todas as resoluções, tem pessoas que usam 800x600 então isso fica desproporcional.
-
Bug Painel Admin qlqr player consegue abrir
Jonas^ replied to Alexandre206's topic in Programação em Lua
Abra a ACL do seu servidor e olhe o grupo admin verifique se tem * no grupo ex: user.* Se tiver remova. Caso não tiver, entre no servidor e digite /debugscript 3, se der erros envie aqui, você editou o painel? -
function SkinProvado(ViejoModelo, ModeloNuevo) if ModeloNuevo == 287 then if getAccountName(getPlayerAccount(source)) == "ContaAqui" then outputChatBox("COMANDOS ANFIBIOS!!!!", source, 0, 255, 0) else outputChatBox("Skin Exclusiva do Dono do Servidor!", source, 255, 0, 0) setTimer(setElementModel, 50, 1, source, ViejoModelo) end end end addEventHandler("onElementModelChange", root, SkinProvado) Editei o código atualiza a página. Não ta faltando uma parte deste código não?
-
Não testei mas não vi nem um erro olhando por cima, tente usar /debugscript pra ver se sobe algum tipo de erro.
-
Isso aí, nunca desista. Código: ( NÃO TESTEI ) RestricLocation = {} TeleportLocation = {} EnabledAlarm = true ColCuboid = false --------------------------------------- CONFIGS -------------------------------------------- RestricLocation["location1"] = {-264.21362304688,3335.7004394531,1.1062507629395} -- Local 1 RestricLocation["location2"] = {775.92932128906,2741.86544785156,150.10624694824} -- Local 2 TeleportLocation = {1976.0953369141,-1924.1055908203,13.546875} -- Local de TP GroupName = "MARINHA" -- ACL 1 GroupName2 = "MB" -- ACL 2 GroupName3 = "RecrutaMB" -- ACL 3 GroupName4 = "CmdMB" -- ACL 4 GroupNameBy = 2 -- 1 para Gang, e 2 para ACL MsgInvasao = "Base da MARINHA! Você não pode entrar aqui!" EnableVehicleGodMode = true -- Habilitar HabilitarAdmin = false -- Todos admins vao poder entrar na base GodMode = false -- Ao entrar na área protegida, habilita GodMode NaoAtirar = false -- Ao entrar na área protegida, não podera atirar --------------------------------------- CONFIGS -------------------------------------------- function sendMsg(iplayer,msg) outputChatBox ( msg, iplayer, 255, 0, 0, true ) end function EnterPlace ( theElement ) local veh = getPedOccupiedVehicle(theElement) local accName = getAccountName(getPlayerAccount(theElement)) if HabilitarAdmin == true then if ( isObjectInACLGroup ("user."..accName, aclGetGroup ( "Admin" ) ) ) then return end end if (getElementType ( theElement ) == "player") and (PlayerHaveLevel (theElement) == false) then sendMsg(theElement,MsgInvasao) if veh then setElementPosition( veh, TeleportLocation[1], TeleportLocation[2], TeleportLocation[3]) else setElementPosition( theElement, TeleportLocation[1], TeleportLocation[2], TeleportLocation[3]) end sendMsgOwners(theElement) elseif getElementType ( theElement ) == "vehicle" then SetVehicleGodMode(theElement,true) end end function ExitPlace ( theElement ) if GodMode == true then setElementData(theElement,"blood",12000) end if NaoAtirar == true then toggleControl(theElement, "fire", true) toggleControl(theElement, "vehicle_fire", true) toggleControl(theElement, "vehicle_secondary_fire", true) toggleControl(theElement, "aim_weapon", true) end if getElementType ( theElement ) == "vehicle" then SetVehicleGodMode(theElement,false) end end function PlayerHaveLevel( PlayerID ) if GroupNameBy == 1 then if ( getElementData ( PlayerID , "gang" ) == GroupName ) then if GodMode == true then setElementData(PlayerID,"blood",999999999999999) end if NaoAtirar == true then toggleControl (PlayerID, "fire", false) toggleControl (PlayerID, "vehicle_fire", false) toggleControl (PlayerID, "vehicle_secondary_fire", false) toggleControl (PlayerID, "aim_weapon", false) end return true else return false end else local accName = getAccountName ( getPlayerAccount ( PlayerID ) ) if ( isObjectInACLGroup ("user."..accName, aclGetGroup ( GroupName ) ) or isObjectInACLGroup ("user."..accName, aclGetGroup ( GroupName2 ) ) or isObjectInACLGroup ("user."..accName, aclGetGroup ( GroupName3 ) ) or isObjectInACLGroup ("user."..accName, aclGetGroup ( GroupName4 ) ) ) then if GodMode == true then setElementData(PlayerID,"blood",999999999999999) end if NaoAtirar == true then toggleControl (PlayerID, "fire", false) toggleControl (PlayerID, "vehicle_fire", false) toggleControl (PlayerID, "vehicle_secondary_fire", false) toggleControl (PlayerID, "aim_weapon", false) end return true else return false end end end function ResourceStart( ) LoadLocations() CreateCollision() end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ),ResourceStart) function LoadLocations() local RX, RY, RZ, WRX, WRX, WRX if(RestricLocation["location1"][1] > RestricLocation["location2"][1]) then RestricLocation["maxx"] = RestricLocation["location1"][1] RestricLocation["minx"] = RestricLocation["location2"][1] else RestricLocation["maxx"] = RestricLocation["location2"][1] RestricLocation["minx"] = RestricLocation["location1"][1] end if(RestricLocation["location1"][2] > RestricLocation["location2"][2]) then RestricLocation["maxy"] = RestricLocation["location1"][2] RestricLocation["miny"] = RestricLocation["location2"][2] else RestricLocation["maxy"] = RestricLocation["location2"][2] RestricLocation["miny"] = RestricLocation["location1"][2] end if(RestricLocation["location1"][3] > RestricLocation["location2"][3]) then RestricLocation["maxz"] = RestricLocation["location1"][3] RestricLocation["minz"] = RestricLocation["location2"][3] else RestricLocation["maxz"] = RestricLocation["location2"][3] RestricLocation["minz"] = RestricLocation["location1"][3] end end function CreateCollision() RX = RestricLocation["minx"] WRX = RestricLocation["maxx"] - RestricLocation["minx"] RY = RestricLocation["miny"] WRY = RestricLocation["maxy"] - RestricLocation["miny"] RZ = RestricLocation["minz"] WRZ = RestricLocation["maxz"] - RestricLocation["minz"] ColCuboid = createColCuboid ( RX, RY, RZ, WRX, WRY, WRZ ) if ColCuboid then addEventHandler ( "onColShapeHit", ColCuboid, EnterPlace ) addEventHandler ( "onColShapeLeave", ColCuboid, ExitPlace ) else outputDebugString("Erro, verifique: location1 e location2") end end function ResourceStop( ) destroyElement ( ColCuboid ) end addEventHandler( "onResourceStop", getResourceRootElement( getThisResource() ),ResourceStop) function sendMsgOwners( PlayerID ) local connectedPlayers = getElementsByType ( "player" ) for i, aPlayer in ipairs(connectedPlayers) do if(PlayerHaveLevel (aPlayer) == true) then sendMsg(aPlayer," O Jogador " ..getPlayerName ( PlayerID ) .." esta tentando invadir a sua BASE !") end end end function SetVehicleGodMode( VehicleID, godEoD ) if EnableVehicleGodMode == true then setElementData(VehicleID, "godmode", godEoD) setVehicleDamageProof (VehicleID, godEoD ) end end Editei o código me deparei com um erro copie de novo.
-
De alguma maneira os markers ficaram voando, eu corrigi isso, copie e cole a entrada/saida do marker. -- Entrada/Saida do marker local entrarInterior = createMarker (2423.2094726563, -1741.76171875, 12.65, "cylinder", 1.0, 255, 0, 0, 255 ) local sairInterior = createMarker (-27.316999435425, -57.005474090576, 1002.60, "cylinder", 1.0, 255, 0, 0, 255 )
-
Isso não tem nada ver com o script do marker, é sobre GUI, o marker não usa nem uma função GUI Altere 'Centro' por center Bom encontrei alguns erros no código e os corrigi, agora esta 100%, já configurei seu marker aonde você queria só copiar e testar. SERVER-SIDE -- Entrada/Saida do marker local entrarInterior = createMarker (2423.2094726563, -1741.76171875, 13.546875, "cylinder", 1.0, 255, 0, 0, 255 ) local sairInterior = createMarker (-27.316999435425, -57.005474090576, 1003.546875, "cylinder", 1.0, 255, 0, 0, 255 ) --/-- INTERIOR setElementInterior( sairInterior, 6 ) -- Seta o marker de saida no interior 6 no caso a loja. -- function entrarLocal(thePlayer) if getElementType( thePlayer ) == "player" and not isPedInVehicle(thePlayer) then -- Se o elemento que colidir for um player e não estiver em um veículo então: if source == entrarInterior then setElementPosition(thePlayer, -26.718338012695, -55.58829498291, 1003.546875 ) -- Posição de Entrada no interior setElementInterior ( thePlayer, 6 ) -- Interior ID end end end addEventHandler("onMarkerHit", getRootElement(), entrarLocal) function sairLocal(thePlayer) if getElementType( thePlayer ) == "player" and not isPedInVehicle(thePlayer) then -- Se o elemento que colidir for um player e não estiver em um veículo então: if source == sairInterior then setElementPosition(thePlayer, 2420.1950683594, -1738.2489013672, 13.3828125 ) -- Posição de saida do interior setElementInterior ( thePlayer, 0 ) -- Interior ID end end end addEventHandler("onMarkerHit", getRootElement(), sairLocal) Qualquer coisa me avise, teste com debug ativado. -EDIT - Como o LORD citou acima, quando estiver fazendo algum script usando a wiki, quando for copiar algo desative o tradutor da página, pois se colocar palavras em português onde não deve com certeza ira causar erros no seu script e não vai funcionar.
-
Não é necessário executar duas funções, sendo que você pode fazer isso em apenas uma função no lado client-side ex: -- CLIENT-SIDE --/-- function Teste () outputChatBox ("Testando bindkey...." ) -- Se você não ira usar hex no output não tem por que deixar ativo os argumenentos, já que é a quase a mesma coisa que deixar com 255,... end addCommandHandler("ativarbindkey", Teste) bindKey ("x", "down", Teste)
-
Sim, ao você apertar a bindkey creio que está ativando a linha do addcommand tente comentar ela e testar.
-
Quando for testar teste com /debugscript ativo se der erro me mostre aqui.
-
Sim você está usando as mesmas coordenadas/interior pra entrar e sair, na função sair você coloca interior 0 e a posição aonde você quer que o jogador apareça quando sair do interior aconselho por um pouco pra frente do marker de entrada
-
Eu testei aqui e funcionou, você deve ir no site e pegar as coordenadas e o respectivo ID de cada interior, e substituir no script Ex: Na posição do interior você vai colocar a posição x, y , z do interior que você também encontra no site que eu passei. Já no ID interior você vai por o ID que esta do lado da posição x,y,z eu adicionei um novo código sobre teleportar para o interior, atualize a página pode ser que você esteja usando o antigo.
-
Fiz uma alteração no código: O marker não estava criando arrumei o tamanho : local entrarInterior = createMarker(x, y, z, 'cylinder', 1.5, 255, 255, 0, 170 ) -- Local onde o marker de entrada ira ser criado. local sairInterior = createMarker(x,y,z, 'cylinder', 1.5, 255, 255, 0, 170 ) -- Local onde o marker de saida ira ser criado. --/-- function entrarLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não estiver em um veículo então: setElementPosition(hitElement, x, y, z) -- Posição que o jogador ira teleportar quando entrar. end end addEventHandler( "onMarkerHit", entrarInterior , entrarLocal ) --/-- function sairLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não estiver em um veículo então: setElementPosition(hitElement, x, y, z) -- Posição que o player ira teleportar para sair. end end addEventHandler( "onMarkerHit", sairInterior , sairLocal ) Pra enviar o jogador para um interior use : setElementInterior Tente isso para teleportar para o interior: local entrarInterior = createMarker(x, y, z, 'cylinder', 1.5, 255, 255, 0, 170 ) -- Local onde o marker de entrada ira ser criado. local sairInterior = createMarker(x, y, z, 'cylinder', 1.5, 255, 255, 0, 170 ) -- Local onde o marker de saida ira ser criado. --/-- function entrarLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não estiver em um veículo então: setElementPosition(hitElement, x, y, z) -- Posição Do Interior setElementInterior ( hitElement, ID INTERIOR ) -- Interior ID end end addEventHandler( "onMarkerHit", entrarInterior , entrarLocal ) --/-- function sairLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não estiver em um veículo então: setElementPosition(hitElement, x, y, z) -- Posição Do Interior setElementInterior ( hitElement, ID INTERIOR ) -- Interior ID end end addEventHandler( "onMarkerHit", sairInterior , sairLocal ) Aqui esta a lista de interiores/posições x,y,z deles. só substituir no script que te passei Lista de Interiores
-
Primeiro você tem que obter as coordenadas do marker de entrar/saida. Depois pegar as coordenadas do local onde quer que o jogador teleporte quando colidir no marker de entrada. Depois pegar as coordenadas do local onde quer que o jogador teleporte quando colidir no marker de saida. Fiz este script de exemplo pra você, teste e vê se funciona, se der erro deixe aqui em baixo, aonde tem x,y,z coloque as coordenadas do local. Comentei o código para você entender melhor. local entrarInterior = createMarker(x, y, z, 'cylinder', 1.0, 0, 255, 255, 0 ) -- Local onde o marker de entrada ira ser criado. local sairInterior = createMarker(x, y, z, 'cylinder', 1.0, 0, 255, 255, 0 ) -- Local onde o marker de saida ira ser criado. --/-- function entrarLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não um veículo então: setElementPosition(hitElement, x, y, z) -- Posição que o jogador ira teleportar quando entrar. end end addEventHandler( "onMarkerHit", entrarInterior , entrarLocal ) --/-- function sairLocal ( hitElement, matchingDimension ) if getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) then -- Se o elemento que colidir for um player e não um veículo então: setElementPosition(hitElement, x, y, z) -- Posição que o player ira teleportar para sair. end end addEventHandler( "onMarkerHit", sairInterior , sairLocal )
-
Use /debugscript 3, se subir alguns erros/warnings você checa o local do lado do warning mostra o local do arquivo, se for o script que esta trabalhando no momento você anota e posta no fórum junto com a sua dúvida. Exemplo: Pode ver que mostra o WARNING: Local do arquivo e o erro que esta ocorrendo, então, você copie e cole aqui em forma de screenshot ou escreva mesmo. se não me engano esses erros são salvos na pasta log's do servidor tem que dar uma procurada lá nos arquivos.
-
Você pode pedir auxilio aqui, sempre vai ter um pessoal de bom coração pra ajudar, porém você deve ver o que esta acontecendo no seu script antes, assim facilita pra nós que estamos tentando lhe ajudar, e facilita receber o auxilio, por exemplo, se você tivesse testado com o debugscript ligado seu script você já saberia os erros e teria colocado aqui, oque bastava fazer era apenas auxiliar você a resolver os erros.
-
Evite usar também nomes em funções iguais como: markerRandom você usou 3 vezes esse mesmo nome para definir, pode causar algum certo conflito, por que não use nomes diferentes como por exemplo: markerRandom1, markerRandom2, organize seu script, pra que espaço nessas linhas: addEventHandler( "onMarkerHit", markerRandom, markerTrab2) São coisas pequenas, mas que deixam o script organizado e fácil de entender.