-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
@juaosilv Se você quiser dizer, "substituir element-data por account-data usando acc data também para salvamento temporário", minha resposta é não, element-data é o ideal para o salvamento temporário, basta saber usar.
-
https://wiki.multitheftauto.com/wiki/DxDrawGifImage
-
Você criou o addEventHandler antes de definir a variável do trailer, na prática você vai ter isto: addEventHandler ( "onTrailerAttach", nil, teste ) (o que vai ocorrer também com o onTrailerDetach) 'root' no parâmetro da função inicio está errado (root : getRootElement()), não precisa definir root. Te sugiro passar esse código para o lado cliente, já que não terá a necessidade do jogador especifico estar interagindo com os outros, e fazendo no cliente vai facilitar seu trabalho. -- Lembre-se de postar seu código com a formatação Lua, no botão <>. Leia este post. @FluxoTotal
-
paineis normais = CEGUI (a interface usada pelo MTA). Sim, a linha 17 são as posições e tamanho do botão na tela.
-
Just add this to line 3: if attacker == source then return end
-
Sobre o "Botão" em dx, veja este post: A createVehicle você vai chamar quando for detectando o clique, depois de ter feito o 'botão'.
-
addEventHandler é uma função que manipula eventos existentes. setTimer é uma função, o uso deve ser assim: setTimer( inicio, 10000, 0 )
-
Você pode pesquisar aqui pelo fórum, tem alguns posts sobre esse assunto. E também pode usar o fórum para tirar qualquer dúvida.
-
setTimer + createVehicle Se for respawn use respawnVehicle
-
You must set the position for the vehicle instead of for the driver (if he's in a vehicle).
-
Yeah. I actually asked this because I was wondering how MTA handles internally element-data where the old value is the same as the new... (may have some verification for the sake of performance). As for the on(client)ElementDataChange, it only fires when the new value is different from the old one.
-
> https://discord.com/invite/mtasa
-
Na Wiki do MTA: https://wiki.multitheftauto.com/wiki/Main_Page https://wiki.multitheftauto.com/wiki/Client_Scripting_Events - eventos clientside https://wiki.multitheftauto.com/wiki/Server_Scripting_Events - eventos serverside Estes eventos: onTrailerAttach onTrailerDetach * Se você quer anexar no trailer em vez de detectar então use as funções: attachTrailerToVehicle / detachTrailerFromVehicle Qualquer dúvida simples, você pode perguntar no discord do mta no canal pt-scripting
-
É organização mesmo. Isso se chama indentação.
-
Setando false ou nil provavelmente irá "ignorar" o argumento e a numberplate vai ser gerada por padrão. O underline mostrado no código do asrzkj ele pode ser usado. Ali na verdade é como se você tivesse colocado um nil já que não há uma referência definida para esse valor. Você pode também simplesmente definir o valor que já será o padrão, pois ali nas rotações o padrão será 0.
-
Primeiro erro: onHitMarker não existe, deveria ser onMarkerHit Fora isso o evento onMarkerHit está sendo adicionado antes da marker ser criada, marker ali irá retornar nil (além de outros erros na função 'final'). Tente: infernus = createVehicle (411, 1183.784, -1312.099, 12.5 + 1) function teste (player) marker = createMarker(1206.313, -1284.754, 12, "cylinder",3,255,255,255,50) addEventHandler("onMarkerHit", marker, final) outputChatBox("Pegue o veiculo e leve ate o local indicado no mapa", player) end addEventHandler ( "onVehicleEnter", infernus, teste ) function final (player) if getElementType(player) == "player" then local veh = getPedOccupiedVehicle(player) if veh and veh == infernus then destroyElement(infernus) end end end
-
After your new test (with MrTasty's code) I suggest you temporarily remove from your server (if possible) every resource that has a high setElementData usage rate, to make sure your issue is or not related to that. That would not be enough to cause any problems since the value is always the same and will not be updated, I am right? Off-topic: DNL in the event name has nothing to do with me
-
O maior erro é usar setElementData para qualquer tipo de armazenamento para um player/elemento. Isso é o que vejo em muitos scripts de amadores no assunto. Aqui vai um exemplo do uso incorreto: Código acima sem o setElementData: O erro que cometem com setElementData é usar de forma exagerada, e sem saber as consequências. Exemplos disso é: (1) Usar setElementData dentro do "onClientRender". (2) A desinformação quanto ao atributo synchronize (muito por conta do baixo nível de entendimento na programação/scripting). Há situações em que o scripter poderia simplesmente colocar false no 4º argumento, como em um caso que ele esteja usando element-data "no lugar de uma variável" (ou tabela). Ou seja, aquele element-data que não irá ter uso algum no lado server ou no lado cliente. Imagine um cliente com 1 setElementData no "onClientRender", isso irá criar um tráfego na rede do servidor umas 50-60 vezes por segundo (vai depender do fps). Claro que nem sempre terá esse tráfego todo na rede mesmo considerando a suposição acima, pois o element-data só é atualizado se ele for diferente do valor anterior (não posso afirmar isso com 100% de certeza mas acho que o MTA não iria deixar de fazer uma verificação antes, seria uma grande falha de otimização interna). Você pode continuar usando setElementData no código acima se o mesmo tiver com sync desativada. O mais otimizado, porém, continua sendo a versão com variável. É válida uma alternativa com trigger events e tabelas como alternativa ao element-data. Em resumo: Saiba quando usar element-Data: Estude sobre tables (ou arrays); opte por table ou variável. O caminho mais fácil não significa que é o melhor, setElementData é prática mas tem seu custo. Faça uso do argumento synchronize da função: setElementData( element, key, value, synchronize ) Por padrão ele será true, então certifique-se de setar false caso o element-data não tiver a necessidade da atualização para o server ou para o cliente. Saiba as consequências de usá-la: Terá uma sincronização (se a sync tiver ativada) em todo o servidor e dependendo da quantidade do uso isso pode sobrecarregar o tráfego de rede. Além de que aumenta o uso de processamento.
-
Já foi explicado o porquê nos seus dois tópicos. source já vai retornar o veículo danificado não precisa de getPedOccupiedVehicle. Veja esta resposta no outro tópico: https://forum.multitheftauto.com/topic/119164-vehicle-is-broken/?do=findComment&comment=961474 E continue lá.
-
Então só pode ser o seu código bugado, depure o cliente e veja o que está errado.
-
A única diferença é que vai evitar problemas nos valores reais; o que é setado no client só fica disponível no mesmo, a menos que: 1) Você seta o valor também no server para sincronizar 2) O MTA internamente faça a sincronização com o server Edit: No caso das armas não deve ter nenhum problema em obter no cliente, pois giveWeapon só funciona no server.
-
triggerServerEvent("Delta:RemoveData", resourceRoot, playerClicked, theData) Sobre as armas do player, o recomendado é obter as armas no lado server e mandar os valores ao cliente.
-
Você já havia postado o mesmo tópico aqui: @ODutii Não precisa criar outro tópico, só postar no primeiro.
-
local cvskin = createPickup ( 354.128, 46.554, 10.281, 3, 1275, 1000 ) function setSkinOnPickupUse ( thePlayer ) if source == cvskin then setElementModel ( thePlayer, 28) end end addEventHandler ( "onPickupUse", resourceRoot, setSkinOnPickupUse ) https://wiki.multitheftauto.com/wiki/Character_Skins Movido para Portuguese / Português > Programação em Lua @V1RU5