Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,008
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Voltando ao seu tópico. Você pode criar uma table com todos os nomes de ACL Groups que vc quer verificar. No caso as ACL Groups das gangues. Depois vc passa um loop for por todas elas, verificando se o jogador está em pelo menos uma delas. Se estiver, permite que ele abra o painel de gangues, caso contrário, proíbe o acesso dele ao painel. Exemplo maroto: (server-side) local acls = {"PCC", "CV", "MAFIA"} -- Lista de ACL Groups, pode adicionar quantas quiser, separando por vírgula e sempre dentro de aspas duplas. function abrirPainel (thePlayer, cmd) for i, name in ipairs (acls) do -- Para cada item da table acls, faça: if (isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(thePlayer), aclGetGroup (name)) do -- Se o jogador está em alguma ACL Group da lista, então: outputChatBox ("Acesso permitido.", thePlayer, 0, 255, 0) -- Aqui normalmente teria um triggerClientEvent para mostrar o painel no client. return end end outputChatBox ("Acesso negado. Você precisa ser criminoso para usar este painel.", thePlayer, 255, 0, 0) end addCommandHandler ("gang", abrirPainel) -- Comando para abrir o painel, só por exemplo.
  2. Sim, já excluí o outro tópico. Vc precisa prestar mais atenção antes de postar, cara. Até pra evitar de postar dúvidas que outros membros acabaram de postar. Isso consta naquele vídeo das regras que mandei anteriormente.
  3. No resource voice, que fica em server\mods\deathmatch\resources\[gameplay], no script cPlayerMuting.Lua, na linha 153, adicione isso: setSoundVolume (player, 1) E depois reinicie o resource voice no server.
  4. Na próxima vez, poste na seção de Programação em Lua. Veja as regras aqui:
  5. Na próxima vez, poste na seção de Programação em Lua. E utilize o botão <> do fórum para postar códigos. Não cole direto no texto. Veja as regras aqui:
  6. A função supostamente serviria pra dar dinheiro aos jogadores a cada 2 segundos e meio. Mas creio que vc não quer isso. Então apenas apague esse setTimer.
  7. Poste seu código na formatação adequada clicando no botão <> do fórum. Veja as regras aqui:
  8. Ambos, principalmente o número de triângulos na malha. E as texturas devem ser as mais otimizadas possível. De preferência com proporção 1:1 e resolução múltipla de 2. 1024x1024 (Casos raríssimos onde exige extremo detalhamento de textura, nenhuma textura original do GTA SA chega nessa resolução) 512x512 (Objetos detalhados) 256x256 (Objetos intermediários) 128x128 (Objetos leves) 64x64 (Objetos muito leves) 32x32 (Objetos irrelevantes) 16x16 (Partes de objetos irrelevantes, texturas de modelos LOD) 8x8 e abaixo (geralmente nem é textura e sim uma paleta de cores) A propósito, quantos triângulos tem no total da construção? Ela está substituindo qual objeto? O objeto original que foi substituído tem quantos triângulos?
  9. @KronoS Lettify ficou difícil ler sua mensagem, estou usando o Tema Escuro no fórum. Mas sim, por isso que ele define o serial com um setAccountData no momento do registro e somente ali.
  10. Ah que burrice a minha. Nunca que iria funcionar daquela forma pois getPedOccupiedVehicle estava sempre retornando false, pois o jogador já não estava mais em veículo nenhum quando o evento é chamado. addEventHandler ("onClientVehicleExit", root, function (thePlayer) -- Faz o mesmo ao sair do veículo, tornando o veículo destrutível novamente. if (thePlayer == localPlayer) then setVehicleDamageProof (source, false) end end)
  11. Sim, é possível. Use getPlayerTeam e compare com getTeamFromName if (getPlayerTeam(thePlayer)) and (getTeamFromName ("Time")) then if (getPlayerTeam(thePlayer) == getTeamFromName ("Time")) then -- Code. end else outputChatBox ("Jogador não está em um time ou então o time especificado não existe.") end
  12. Na linha 86, não era pra ter colocado aquelas duas aspas ali. Ou então deveria ter concatenado as duas partes. Troque a linha por isso: dxDrawText("Idade: "..Idade.."|Peso: "..Peso, screenW * 0.3787, screenH * 0.3100, screenW * 0.6012, screenH * 0.3567, tocolor(255, 255, 255, 255), 1.00, "clear", "center", "center")
  13. addEventHandler ("onClientVehicleExit", root, function (thePlayer) -- Faz o mesmo ao sair do veículo, tornando o veículo destrutível novamente. if (thePlayer == localPlayer) then setVehicleDamageProof (getPedOccupiedVehicle (localPlayer), false) end end)
  14. @KronoS Lettify cuidado. Essa função não determina o real usuário da conta. Somente o serial de quem logou por último nela. This function returns a table containing all accounts that were logged onto from specified serial. If the serial is empty string, it will return all accounts that were never logged onto. Esta função retorna uma tabela contendo todas as contas que foram logadas pelo serial especificado. Se o serial for uma string vazia, essa função retornará todas as contas que nunca foram logadas. Se eu criar uma conta mas não logar nela, ela vai permanecer com esse serial vazio. Então eu fico criando quantas contas eu quiser antes de logar em alguma e burlo o sistema. Ou então eu peço pra algum amigo logar na minha conta, dai o serial registrado na minha conta vai passar a ser o serial dele, permitindo que eu crie outra conta e burle o sistema também. Se o painel usar um accountData definida exclusivamente no momento do registro, então mesmo que ninguém logue na conta ou que outras pessoas loguem na conta, ela vai continuar tendo aquele mesmo serial registrado no accountData, o serial vai sempre ser de quem registrou a conta, impedindo que ele registre outras.
  15. Você está usando a função útil isEventHandlerAdded. Por se tratar de uma useful function, falta o código-fonte dela.
  16. Favor não exagere no uso de Caps Lock, e utilize o botão <> do fórum para postar o código. Você pode ver as regras do fórum em: [VÍDEO] Tudo sobre este fórum - Portuguese / Português - Multi Theft Auto: Forums
  17. Sim, é possível. Antes de qualquer coisa, seu painel de login precisa bloquear o comando de /register para evitar que registrem contas fora do painel de login. Senão não vai adiantar nada. Você pode bloquear um comando, cancelando o evento onPlayerCommand. Verifique o exemplo da Wiki. Dai na hora de registrar uma conta nova, passa um loop por todas as contas, obtidas por um getAccounts, verificando se alguma já tem o serial deste jogador nela com getAccountData e getPlayerSerial. Se já tiver, cancela o registro com cancelEvent e manda um feedback pro jogador pedindo pra ele logar na conta existente. Se não tiver nenhuma conta com o serial desse jogador, então registra a conta normalmente com addAccount e atribui o serial deste jogador nessa conta com setAccountData.
  18. Adicionar um dxDrawImage não impossibilita dele jogar, só de ver o jogo. Para impedir que ele se movimente, vc pode mostrar o cursor na tela com showCursor (true) ou então desabilitar todos os controles do jogador com toggleAllControls (false).
  19. addEventHandler ("onClientVehicleEnter", root, function (thePlayer) -- Ativa essa função quando qualquer jogador streamed entrar em um veículo. if (passivo == true) then -- Se o localPlayer está no modo passivo, então: if (thePlayer == localPlayer) then -- Se o jogador que está entrando no veículo for o localPlayer, então: setVehicleDamageProof (getPedOccupiedVehicle (localPlayer), true) -- Torna o veículo que o jogador entrou indestrutível. end end end) addEventHandler ("onClientVehicleExit", root, function (thePlayer) -- Faz o mesmo ao sair do veículo, tornando o veículo destrutível novamente. if (passivo == true) then if (thePlayer == localPlayer) then setVehicleDamageProof (getPedOccupiedVehicle (localPlayer), false) end end end)
  20. O lag continua mesmo com todos os resources desligados? Se ficar normal, então é algum resource causando o lag.
  21. Na próxima vez, veja as regras do fórum. Pedidos de scripters/staffs devem ser feitos na seção Offtopic.
  22. local theNPC = createPed (...) -- NPC qualquer. addEventHandler ("onClientPlayerDamage", theNPC, function () -- Quando o theNPC tomar dano, cancela o dano e não perde vida. cancelEvent() end) addEventHandler ("onClientPlayerStealthKill", localPlayer, function (targetPlayer) -- Quando o jogador tenta usar a facada fatal em alguém. if (targetPlayer == theNPC) then -- Se o jogador alvo for o theNPC, então cancela e não permite a execução. cancelEvent() end end)
×
×
  • Create New...