Leaderboard
Popular Content
Showing content with the highest reputation on 15/05/20 in all areas
-
bengines provides custom engine sounds for vehicles. The resource is not focused to be ultra realistic, it is designed to use for casual servers. Not useful for me anymore so sharing with community. Used on old project. Sounds are copyrighted content not owned by me. Features: ready to use, chooses the best engine for vehicle depending on handling! easy to customize & expand for Lua programmers 30 soundpacks for vehicles (buses, bikes, sport cars etc.) stable code with quite high performance used on server with 600 players ALS effect (exhaust flames) Turbo (satisfying whistle and blow-off sounds) Videos: https://streamable.com/n7k40 https://streamable.com/lp14t https://streamable.com/q5e9g Download: Github: https://github.com/brzys/bengines (feel free to send pull requests) Community: to-do For programmers: --[[ Element datas used by resource [array] vehicle:engine - stores basic info about engine type, sound pack etc. (synced) [string] vehicle:type - used for engine calculation, useful for servers. Available: Bus, Truck, Sport, Casual, Muscle, Plane, Boat, Motorbike (synced) [string] vehicle:fuel_type - customized for each engine. Useful for servers. Available: "diesel", "petrol" (synced) You can use setElementData(vehicle, "vehicle:upgrades", {turbo=true, als=true}) to add turbo or ALS. --]] --[[ Exported functions --]] exports.bengines:getVehicleRPM(vehicle) -- returns RPM of given vehicle exports.bengines:getVehicleGear(vehicle) -- returns current gear of given vehicle exports.bengines:toggleEngines(bool) -- true / false, restore GTA engine sounds1 point
-
Com o crescimento de qualquer projeto, seja de MTA ou o quê for, cresce também a inveja de muitos e a preocupação dos principais concorrentes. É muito comum tentarem desacelerar e inibir o crescimento do outro perante o medo. O quê muita gente não sabe é que na maioria das vezes, os servidores não são derrubados por DDoS ou DoS. Ataques DDoS demandam grandes quantidades de dinheiro investido, e nessa guerra digital, vence quem tem a melhor infraestrutura, ou seja, quem gasta mais.. Mas se a maioria das quedas ou interferência nos servidores não acontecem por ataque de negação de serviço(o famoso DDoS), então onde e como eles são feitos? Em primeiro lugar, tem a talvez mais conhecida maneira de deixar algo instável: 1 - Flood É importante saber que existem vários tipos de floods, o mais fácil de identificar, é aquele flood por chat. Ele não é o único, existem floods que são um pouco mais complicados de identificar. O flood via chat é muito prejudicial ao servidor, portanto, é recomendável que cada jogador tenha um tempo definido entre as mensagens que podem enviar. Além do flood via chat, existe o flood por comando, que é possível fazer com qualquer comando que qualquer servidor tenha. Por isso, também é recomendável que exista um intervalo de tempo entre os comandos feitos pelo jogador. Principalmente os comandos verificados por ACL são prejudiciais ao servidor. Alguns comandos que com flood são muito prejudiciais são: restart, refresh. Mesmo que o jogador não tenha permissão de executá-lo, o servidor verificará toda vez em que ele digita esses comandos protegidos. Uma solução para isso é bloquear esses comandos por serial, assim, mesmo com o flood deles, o CPU do servidor será menos estressado. O bloqueio desses comandos por serial aliado ao tempo necessário entre um comando e outro, fará com que o servidor não fique sobrecarregado, gerando menores consequências. 2 - Scripts maliciosos Infelizmente pessoas que já tiveram bom nome na comunidade de MTA:SA no passado, acabaram perdendo toda a sua reputação e começaram a fazer o mau, disfarçada por vários nomes. Muitas vezes (deixando claro que não é em todos os casos) as pessoas vendem scripts compilados nos quais possuem códigos maliciosos para gerar estresse no servidor e atrapalhar a conexão, às vezes a ponto do servidor ser reiniciado automaticamente. Muitos desses scripts maliciosos funcionam perfeitamente, mas o código malicioso é acionado por algum comando. Então, você pode verificar os comandos existentes em cada script com o comando commands disponibilizado no nosso script logo abaixo. Existem também casos em que há um backdoor que possibilita o programador malicioso de quebrar toda segurança do servidor e fazer tudo o que está ao seu alcance. Pode ser: Redirecionar jogadores para outro servidor, criar um código o qual lhe dará vantagem no servidor, ganhar acesso restrito ao servidor, fazer ligações externas (com fetchRemote) afim de afetar o servidor com por exemplo, um vírus. 3 - Scripts mal otimizados Também é possível, e infelizmente ocorre com muitos servidores, de ter seu desempenho afetado por scripts mal otimizados. Muitos scripts da internet e não só eles, até scripts que o dono do servidor paga, pode afetar e muito no servidor (quanto mais jogadores, mais é afetado). Dependendo do código produzido, pode conter centenas e às vezes milhares de atualizações de ElementData simultâneas - o que afeta o servidor de modo que não há nem mesmo dedicado para intervir. Essa função em questão, é extremamente prejudicial tanto para o servidor tanto para o client, que é o usuário final - o jogador. Para saber se algum recurso está consumindo mais do que deveria, você pode utilizar o recurso IPB, que já vem com o MTA. Se você não tiver esse recurso no seu servidor, você pode baixá-lo dos resources oficiais do mta e colocar no seu servidor. Obviamente, não são só os ElementData's que podem prejudicar o desempenho do servidor. Um script pode ser mal otimizado por várias questões que englobam a programação. O ElementData foi citado por ser muito comum e muito prejudicial. Se você tem ou está montando um servidor, coloque além das suas idéias de novidades para ele, sua preocupação em relação ao desempenho de cada resource que irá rodar na máquina. Para saber como anda o desempenho dos resources no servidor, você pode verificar olhando o painel do resource ipb. Para isso, ligue o resource e digite o comando no chat "/ipb" ou no F8 "ipb". Selecione a categoria Server, alterne entre as opções de monitoramento e você saberá qual script está consumindo mais e afetando o desempenho do seu servidor. 4 - Múltiplos caracteres no login Talvez esse seja o mais bizarro dessa lista. Não limitar os caracteres no qual as pessoas podem escolher seu usuário ao se registrar. Isso, aliado ao flood de muitos logins com muitos caracteres, pode sim afetar o desempenho do servidor e até mesmo derrubá-lo. Esse é um exemplo de script com falhas deixadas pelo seu criador, que alguns servidores acabaram utilizando. E como não acaba aí, tem também códigos para fazer qualquer bom programador cair em desgosto que fazem aumentar muito o uso de cpu, de memória gráfica e ram. Problemas em geral por uma grande falta de preocupação do criador ou até mesmo a indiferença por ter aquela máxima "se está funcionando, tá bom" e "o que importa é terminar e receber meu dinheiro" (no caso de Scripter pago) acabam fazendo com que se proliferem péssimos tipos de scripts os quais muitos servidores grandes acabam utilizando. Link do script citado acima: https://community.multitheftauto.com/index.php?p=resources&s=details&id=18156 Também não posso deixar de agradecer ao @DNL291, que me ajudou a criar este tópico.1 point
-
1 point
-
1 point
-
بعد مايخلص الحركه الاعب بيضل واقف مسوي له فريز ولازم تقفز بالشخصيه عشان يفك الفريز تقدر بعد مايخلص الحركه يفكه تلقائي كدا setPedAnimation (localPlayer, "BOMBER", "BOM_Plant", -1,false, nil, nil, false )1 point
-
ترا تنفع بدون تايمر كذا bindKey("1","down",function() setPedAnimation(localPlayer, "BOMBER", "BOM_Plant",-1,false) end)1 point
-
1 point
-
Change back at onClientPlayerSpawn event. addEventHandler("onClientPlayerSpawn", localPlayer, function() setPedWalkingStyle(source, 0) end)1 point
-
السلام عليكم لعبة Grand Theft Auro V الان مجاناً علي منصة Epic Games حتي يوم ٢١ من هذا الشهر ولو ضيفتها في حسابك هتبقي معاك مدي الحياة فرصة تقدر تضيفها دلوقتى1 point
-
1 point
-
source é usado pra eventos dai não tenho certeza se pode gerar algum problema outra coisa são os triggerServerEvent com elemento localPlayer, geralmente se usa resourceRoot, verifique isso tbm pra ver se tem algum warning/erro no debugscript 3 quanto a solução vc pode usar o setElementData com flag no proprio player/assaltante, quando inicia o assalto deixa como true e qnd termina poe false, quando o cara quiser acionar a animação verifica se ele tem a elementdata e se tiver cancela con return, deixei um codigo que nao testei mas deve estar td ok, comentei pra ficar mais facil ver onde editei --CLIENT function animcruzabraco () if getElementData(localPlayer,"assaltando") then--checagem se o player tem elementdata assaltando, se tiver é cancelado outputChatBox("teste= animação impedida por elementdata") return end if getElementData ( localPlayer, "cruzabracodt" ) == false then setElementData(localPlayer, "cruzabracodt", true) setElementFrozen ( localPlayer, true ) triggerServerEvent("animcruzabraco",localPlayer)--verifique else setElementFrozen ( localPlayer, false ) setElementData(localPlayer, "cruzabracodt", false) triggerServerEvent("paraanim",localPlayer)--verifique end end bindKey("b", "both", animcruzabraco) --- --SERVER function sistema1(player)--coloquei player pq nao tenho certezz sobre usar source if player then if isElementWithinMarker(player, loja1) then local weaponType = getPedWeapon ( player ) if weaponType == 0 then outputChatBox ( "#727272Você está desarmado. #464646Tenha uma arma para assaltar.", player, 255, 255, 255, true ) else outputChatBox(" ", player, 255, 255, 255, true) outputChatBox("#cf3f3fINDFO: #e2e2e2Você está começando a roubar o banco Caixa #727272(Aguarde 4 minutos ou será punido). #e41c1cAs autoridades estão vindo.", player, 255, 255, 255, true) outputChatBox(" ", player, 255, 255, 255, true) setElementVisibleTo( loja1ass, root, true) setElementFrozen( player, true ) setElementData(player,"assaltando",true)-- aqui dou elementdata assaltando para o player, proibido de usar animacao b setPedAnimation( player, "bomber", "bom_plant_loop", 240000, true, false, false, false ) setMarkerSize(loja1, 0) outputChatBox(" ", player, 255, 255, 255, true) outputChatBox("#cf3f3fINFO: #e41c1cAtenção todas as autoridades. #e2e2e2O banco Caixa está sendo assaltado, compareçam ao local urgentemente!", root, 255, 255, 255, true) outputChatBox(" ", player, 255, 255, 255, true) setTimer(function(player) givePlayerMoney(player, GranaBanco)--GranaBanco nao ta definida na codigo do post verifique se esta no seu codigo inteiro setElementFrozen( player, false ) setPlayerWantedLevel( player, 6 ) outputChatBox("#cf3f3fINFO: #e41c1cVocê assaltou o banco Caixa e ganhou R$ "..GranaBanco, player, 255, 255, 255, true) setElementData(player,"assaltando",false)-- aqui tiro elementdata assaltando do player, liberado pra usar animação b end,240000,1,player) setTimer(function(player) setMarkerSize(loja1, 2.5) setElementVisibleTo( loja1ass, root, false) end,1800000,1,player) end end end end addCommandHandler("roubar", sistema1)1 point
-
Isso. Faltou só um end para fechar a função. Como eu disse, antes de postar seu código, ligue o resource no servidor e ative o debug com /debugscript 3 para ver erros. E não se esqueça de tirar um tempo para ler os tópicos fixados aqui na seção Portuguesa @NotoriusDayZ1 point
-
Olá e bem-vindo ao fórum. Para manter o local organizado temos os respectivos sub-fóruns, por isso, sempre que criar um tópico por favor crie-o dentro do sub-fórum Portuguese / Português Você pode encontrá-lo pela página inicial do fórum da forma mostrada abaixo: Isso evitará o trabalho que os moderadores têm diariamente de mover posts para os locais certos. Sempre que criar um novo tópico, certifique-se que esteja na devida categoria. No sub-fórum Português ficam todas postagens na linguagem portuguesa, enquanto que fora da categoria Other languages só é permitido posts em inglês, por isso, sempre que responder um tópico, preste atenção a isso.1 point
-
تمام شكرا اخى لك على الرد والمساعدة وانا انشاء الله بدخل عليه وبشوف الشرح انشاء الله استفاد ويكونو بيشرحو اكواد برجمة كويس واكواد كتير لانى محتاج اتعرف اكثر على البرمجة1 point
-
Ped lighting depends on the surface that they are standing on. If a ped is standing on a low-light ground, he will also be near-black. The same happens when you create a Ped in Air and there is no ground below him, GTA doesnt know the vertex lighting so the Ped appears dark when spawning.1 point
-
I have no idea if engineSetAsynchronousLoading works as Addlibs replied. << I truly hope this solves your issue to be honest But the loading process of that function probably doesn't include the reading of the mod files. In case of loading things in general, I recommend to align the process operation with the user his FPS. Because when you are loading a mod, you are blocking everything, so you can't go to the next frame until it is finished. > That is why loading 2 or more mods on a single frame can cause frame drops. > Large mods will cause frame drops, that is inevitable. If you load a mod every 1, 2 or 3 frames, you will balance performance with processing speed. This example is for loading a mod every frame. Speedy , but with performance impact. So more frames between each execution is better for performance. local table = {{}, {}, {}} function test () local item = table[1] if item then table.remove(table, 1) else removeEventHandler("onClientRender", root, test) end end addEventHandler("onClientRender", root, test)1 point
-
1 point