-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
Não pois os parâmetros desse evento não são esses. Os parâmetros são: function click (button, state, absoluteX, absoluteY) Sendo que desses parâmetros você só vai precisar usar o primeiro ( button ) : if button == "left" then Qual tipo de verificação você quer fazer? Edit: se for obter o jogador, getPlayerFromName não vai funcionar se o nick teve seu código hex removido.
-
Use funções de conta pra salvar/obter da conta. Você vai precisar destas funções e eventos: addEventHandler "onResourceStop" "onPlayerQuit" "onPlayerLogout" getPlayerAccount setAccountData getElementModel "onPlayerLogin" "onResourceStart" getAccountData setElementModel
-
Tem este shader que faz esse efeito: https://community.multitheftauto.com/index.php?p=resources&s=details&id=7349 Uma dica pra você otimizar o evento "onClientGUIClick" é sempre definir guiRoot (assim como você fez no seu código) em vez de root/getRootElement(). Isso quando você não anexar o evento diretamente a um elemento GUI. guiRoot irá englobar todos os elementos GUI criados no próprio resource, enquanto root fará executar para todos GUIs criados. Sobre usar o guieditor, pessoalmente eu prefiro sempre usar, pois crio esboços antes de fazer meus projetos, e isso também ajuda muito quem não tem muito conhecimento, vai te poupar tempo posicionando sem nenhuma ferramenta. É possível também usar uma folha pra calcular manualmente.
-
Coloque false depois de 'click' na linha 9. Na função click, você está usando o parâmetro state e verificando se o clique está 'segurado'. Mas na verdade esse parâmetro só funciona para o state "up" (botão solto), tornando essa verificação desnecessária. Também, a verificação (source == playerList) será desnecessária já que source sempre será a gridList, e por fim, gui deve estar definido no seu código, caso contrário a verificação será sempre invalidada. Sobre o clique nas rows, o código funcionará assim: local sr = guiGridListGetSelectedItem (source) -- obtendo a row selecionada if sr and sr ~= -1 then -- verificando se o clique foi na row local playerName = guiGridListGetItemText ( source, sr, 1 ) -- obtendo o valor da row selecionada outputChatBox ( playerName ) else -- o clique foi fora de qualquer 'row' outputChatBox ( "Nenhuma row selecionada" ) end
-
O server mal vai abrir em beta e já é o melhor roleplay do MTA? Senti um leve exagero aí.
-
Você deve definir a resolução que você fez a interface na linha 3 e não outra resolução que esteja dando problemas. Além disso, se você quer mesmo ajustar as dimensões de cada elemento bem como as posições, tenha em mente que será necessário outros cálculos, como ajustar o tamanho da fonte do texto-dx.
-
Tem um problema com o parâmetro da função, 'vehicle' não está retornando um elemento.
-
Recomendo mostrar o código dx (se possível) Vai facilitar pra gente entender o que realmente é, e dar uma solução.
-
Tente isto (não testado) : local table = {} -- armazena os jogadores que tem acesso as bikes local veh local marker addEventHandler( "onResourceStart", resourceRoot, function() veh = { [ createVehicle(481, 1505.42102, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +1, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +2, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +3, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +4, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +5, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +6, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +7, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +8, -1753.69446, 13.54688) ] = true, [ createVehicle(481, 1505.42102 +9, -1753.69446, 13.54688) ] = true } marker = createMarker(1505.57727, -1750.79688, 12.6, "cylinder", 1, 255, 100, 0, 100) for v, _ in pairs(veh) do local px, py, pz = getElementPosition(v) local rx, ry, rz = getElementRotation(v) setVehicleRespawnPosition(v, px, py, pz, rx, ry, rz) end addEventHandler ( "onVehicleStartEnter", resourceRoot, isTempOwner ) setTimer(respawnVehicles, 60000, 0) end ) addEventHandler("onPlayerMarkerHit", root, function(m) if m == marker and not isPedInVehicle(source) then -- se o jogador entrar no marker exports.dxmsgs:outputDx(source, "Use o comando /alugarbike para ter acesso as uma bikes, custo R$50.", "info") end end) addCommandHandler ("alugarbike", function(thePlayer) if not table.thePlayer and isElementWithinMarker(thePlayer, marker) then --se o jogador não está na tabela então... if isTimer(table.thePlayer) then return outputChatBox( "Você já alugou uma bike. Aguarde até que possa alugar novamente", thePlayer, 230, 30,30 ) end if getPlayerMoney(thePlayer) >= 50 then takePlayerMoney(thePlayer, 50) table.thePlayer = setTimer( function(p) if not (isElement(p)) then return end -- removeTempOwner(p) exports.dxmsgs:outputDx(p, "Seu tempo para usar as bikes acabou.", "warning") end, 10000, 1, thePlayer ) exports.dxmsgs:outputDx(thePlayer, "Você pode usar as bikes por dez minutos.", "success") else exports.dxmsgs:outputDx(thePlayer, "Você não tem dinheiro suficiente.", "error") end end end) function isTempOwner(thePlayer) if not table.thePlayer then -- se o jogador não está na tabela não pode usar as bikes exports.dxmsgs:outputDx(thePlayer, "Você precisa alugar uma bike para poder usá-la", "error") cancelEvent() end end function respawnVehicles() for v, _ in pairs(veh) do if not getVehicleOccupant(v, 0) then respawnVehicle(v) fixVehicle(v) end end end function removeTempOwner(thePlayer) if thePlayer and table.thePlayer then local tempVeh = getPedOccupiedVehicle(thePlayer) if tempVeh and veh[tempVeh] then removePedFromVehicle(thePlayer) end table.thePlayer = nil end end addEventHandler( "onPlayerQuit", root, function() if table.source then if isTimer(table.source) then killTimer(table.source) end table.source = nil end end)
-
Parece ser o tamanho e/ou a qualidade da fonte (se é que você está se referindo aos textos).
-
Pode ter ban do jogo e dependendo da decisão da staff ser punido no fórum também. Depende do quão grave os admins julgarem, mas acho que dificilmente seria punido globalmente no MTA.
-
@Ri$ke Como você disse, já foi enviada uma mensagem privada para um Staff, nesse caso te aconselho a descrever tudo corretamente e com uma tradução correta, além das provas. Você também pode me contatar com relação a isso, posso intermediar esse assunto com a administração/moderação global. Lembre-se, não precisa deixar tudo aqui no tópico, você pode deixar suas informações e evidências no privado. Vale também pra outras pessoas afetadas. Se tiver provas não hesite em denunciar. Você disse que tem comprovantes de pagamento pelo serviço então sim, você também tem a escolha de denunciar judicialmente. Pessoas de má índole tem em todos lugares, infelizmente. Então te aconselho a sempre ficar atento com todo tipo de pessoa e como um dono de servidor, evitar que rode códigos de terceiros no seu gamemode. E o MTA pode punir qualquer pessoa desse tipo, basta provar a veracidade, tenho certeza que haverá atenção e ação por parte da Staff.
-
Tente isto (não testado) : local mascaras = { "devil","vendetta","darth","horse","gasmask","kovboy","zombie","vampire", "skull","raccoon","owl", "cat","bag","dog","baby","monster","tilki","admin" } maskTable = {} yelekTable = {} yelekTable["yelek1"] = {1922, 3, 90} yelekTable["yelek2"] = {1923, 3, 90} yelekTable["yelek3"] = {1924, 3, 90} maskTable["devil"] = {1512, 1, 90} maskTable["vendetta"] = {1455, 1, 90} maskTable["darth"] = {1484, 1, 90} maskTable["horse"] = {1485, 1, 90} maskTable["gasmask"] = {1487, 1, 90} maskTable["kovboy"] = {1543, 1, 90} maskTable["zombie"] = {1544, 1, 90} maskTable["vampire"] = {1666, 1, 90} maskTable["skull"] = {1667, 1, 90} maskTable["raccoon"] = {1668, 1, 180} maskTable["owl"] = {1950, 1, 180} maskTable["cat"] = {1951, 1, 180} maskTable["bag"] = {1551, 1, 90} maskTable["dog"] = {1546, 1, 90} maskTable["baby"] = {1669, 1, 90} maskTable["monster"] = {1853, 1, 90} maskTable["tilki"] = {1854, 1, 90} maskTable["admin"] = {1855, 1, 180} obje = {} yelek = {} addCommandHandler( "setmask", function ( player, cmd, id) local name if id and mascaras[tonumber(id)] then id = tonumber(id) name = mascaras[id] else return outputChatBox("[setmask] Sintaxe: /setmask [id]", player, 255, 0, 0) end if id == #mascaras then if ( hasObjectPermissionTo ( player, "function.kickPlayer" ) ) then if obje[player] then destroyElement(obje[player]) end local objeid = maskTable[name][1] local bodyattach = maskTable[name][2] local zROT = maskTable[name][3] obje[player] = createObject ( objeid, 0, 0, 0, 0, 0, 0 ) exports.bone_attach:attachElementToBone(obje[player],player,bodyattach,0,0.02,-0.61,0,0,zROT) else outputChatBox("Bu maskeyi sadece adminler kullanabilir", player, 255, 0, 0) end elseif id == 4 then if obje[player] then destroyElement(obje[player]) end local objeid = maskTable[name][1] local bodyattach = maskTable[name][2] local zROT = maskTable[name][3] obje[player] = createObject ( objeid, 0, 0, 0, 0, 0, 0 ) exports.bone_attach:attachElementToBone(obje[player],player,bodyattach,-0.04,0,-0.55,0,0,zROT) else if obje[player] then destroyElement(obje[player]) end local objeid = maskTable[name][1] local bodyattach = maskTable[name][2] local zROT = maskTable[name][3] obje[player] = createObject ( objeid, 0, 0, 0, 0, 0, 0 ) exports.bone_attach:attachElementToBone(obje[player],player,bodyattach,0,0,-0.61,0,0,zROT) end end, false, false ) function maske_kaldir() if obje[source] then destroyElement(obje[source]) end end addEvent("removemask",true) addEventHandler("removemask", root, maske_kaldir) function quitPlayer ( ) if obje[source] then destroyElement(obje[source]) obje[source] = nil end if yelek[source] then destroyElement(yelek[source]) yelek[source] = nil end end addEventHandler ( "onPlayerQuit", getRootElement(), quitPlayer )
-
De onde você pegou esse código? Edit: O resource é este: https://community.multitheftauto.com/index.php?p=resources&s=details&id=14125 Neste caso não há nenhum problema. Quanto à sua pergunta, você pode usar tabela com os nomes das máscaras e obtê-las com o índice da tabela. Exemplo: mascaras = { "devil" } local id = 1 maskTable[ mascaras[id] ]
-
Também verifique o meta.xml, o script deve estar do lado client. Também tenha certeza que você está olhando no mapa para as mesmas coordenadas que estão no código. Caso nada aconteça, o primeiro passo da depuração é certificar-se que o script está executando, para isso você pode colocar um outputChatBox.
-
ajuda quero que some a mensagem pois so esta sumindo marker
DNL291 replied to magicplayerc's topic in Programação em Lua
Corrigi o link do tópico acima. Caso não tenha visto, aqui está: Edit: @magicplayerc -
getDistanceBetweenPoints3D
-
Po ficaria grato, mas tem que ser nesse mesmo personagem
-
Olhando as 3 me faz lembrar que minha imagem precisa de uma arrumada lol
-
1 - Search for your server in the server list and select it; 2 - Click the "Server banners" tab; 3- Copy the link on BBCode Done
-
/debugscript 3 Lembre-se desse comando pois ele será útil pra te mostrar os erros dos scripts. Se tiver mostrando algum erro, deixe aqui a mensagem dele.
-
Eu já deixei. Ficará fixado na área geral do sub-fórum.
-
Parabéns pelo nível do tutorial! Muito bom mesmo. Seria bom até pra seção geral ter um post em vídeo assim. Bom saber que tem uma galera pra manter a seção organizada e em harmonia, tem algumas coisas que realmente cansa, mas isso revigora e muito. PS: O volume no final ficou muito alto, mas isso é o de menos xd. 2:40 AAHAUHAUHHAUH
-
If the above code doesn't work, try this: function MakePlayerHeadshot( attacker, weapon, bodypart, loss ) if getElementType ( attacker ) == "player" and bodypart == 9 then if getPedArmor(source) > 0 then setPedArmor( source, 0 ) if loss and loss > 0 then setElementHealth( source, getElementHealth(source) + loss ) end -- dunno if 'loss' also works for the armor else triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) setPedHeadless ( source, true ) killPed( source, attacker, weapon, bodypart ) setTimer( BackUp, 900, 1, source ) end end end addEventHandler( "onPlayerDamage", getRootElement(), MakePlayerHeadshot ) function BackUp( source ) if getElementType ( source ) == "player" then setPedHeadless ( source, false ) end end