Jonas^
Members-
Posts
1,016 -
Joined
-
Last visited
-
Days Won
9
Everything posted by Jonas^
-
Código devidamente indentado é assim: local Minicio4 = createMarker (1038.02332, -1337.93970, 12.8, "cylinder", 1, 16, 102, 231, 100) local Mfim4 = createMarker ( 2801.29663, -1088.36243, 30.72142 -1, "cylinder", 2, 0 ,255 ,0, 255 ) local Bfim4 = createBlipAttachedTo ( Mfim4, 19 ) setElementVisibleTo ( Bfim4, root, false ) local veh = {} function incio4 (source) if isElementWithinMarker(source, Minicio4) then if veh[source] and isElement( veh[source] ) then destroyElement ( veh[source] ) veh[source] = nil end x,y,z = getElementPosition(source) Trabalho = true veh[source] = createVehicle(498,1009.50598, -1355.16431, 13.34428) setElementVisibleTo ( Bfim4, source, true ) warpPedIntoVehicle ( source, veh[source] ) dxMsg(source, "Leve as rosquinhas ate a bandeira no radar!", "info") end end addEventHandler( "onMarkerHit", Minicio4, incio4 ) function fim4 (source) if veh[source] and isElement(veh[source]) then destroyElement (veh[source]) givePlayerMoney(source,2500) -------------- Caso queira mudar o dinheiro que o player vai ganhar ao finalizar o trabalho setElementVisibleTo ( Bfim4, source, false ) setElementVisibleTo ( entregafinalizar, source, false ) dxMsg(source, "Você entregou as rosquinhas a fabrica e ganhou R$2500!", "sucess") -- else Por que esse else aqui? ... end end addEventHandler("onMarkerHit",Mfim4 ,fim4) function sair4 (source) if (veh[source]) and isElement(veh[source]) then setElementVisibleTo ( Bfim4, source, false ) destroyElement (veh[source]) dxMsg(source, "Você saiu do veiculo e perdeu o trabalho!", "error") -- else Por que esse else aqui de novo? ... end end addEventHandler ( "onVehicleExit", getRootElement(), sair4 ) function dxMsg(source, text, type) exports.dxmessages:outputDx(source, text, type) end Agora me responda as perguntas que lhe fiz no script, deixei 2 linhas comentadas queria sua explicação. Outra coisa não vi nada declarado relacionado a 'entregafinalizar' e no script você usa setElementVisibleTo ( entregafinalizar, source, false )
-
Enfim, ficar chutando posições não da, iniciei meu servidor de testes e posicionei pra você. Código: local Minicio4 = createMarker (1038.02332, -1337.93970, 12.8, "cylinder", 1, 16, 102, 231, 100)
-
Tente assim: Lembrando, posição Z é altura. então: local Minicio4 = createMarker (1038.02332, -1337.93970, 13.5, "cylinder", 1, 16 ,102 ,231, 100)
-
local Minicio4 = createMarker (1038.02332, -1337.93970, 13.72656, "cylinder", 1, 16 ,102 ,231, 100) Não entendi o por que desse -1 aí, até onde eu sei depois da posição z, é o tipo do marker, depois o tamanho.
-
Isso.
-
1. Não se usa cache false em server-side até porque ele não é mostrado após o jogador baixar. 2. Você esta fazendo errado, a maneira certa é essa que irei mostrar. 3. Você deve arrumar o código, colocar nas posições certinhas para encontrar os erros facilmente, ou até mesmo evitar possíveis warnings ou até mesmo erro, fiz isso por você. OBS: Coloque o nome da pasta aonde esta sendo executado os arquivos client e server como fortnitedances ------------------- Código: CLIENT-SIDE local customIfp = nil function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do setPedAnimation(ped, "Fortnite_"..i.."", animation, tiempo, true, false, false) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end addEvent("setPedFortniteAnimation",true) addEventHandler("setPedFortniteAnimation",getRootElement(),setPedFortniteAnimation) addEventHandler("onClientResourceStart", resourceRoot, function ( startedRes ) customIfp = engineLoadIFP ("Fortnite pt1.ifp", "Fortnite_1") customIfp2 = engineLoadIFP ("Fortnite pt2.ifp", "Fortnite_2") customIfp3 = engineLoadIFP ("Fortnite pt3.ifp", "Fortnite_3") if customIfp and customIfp2 and customIfp3 then outputDebugString ("Animaciones de Fortnite cargadas") else outputDebugString ("Las animaciones de Fortnite no fueron cargadas") end end ) SERVER-SIDE local totalDances = 13; function setPedFortniteAnimation (ped,animation,tiempo,repetir,mover,interrumpible) if (type(animation) ~= "string" or type(tiempo) ~= "number" or type(repetir) ~= "boolean" or type(mover) ~= "boolean" or type(interrumpible) ~= "boolean") then return false end if isElement(ped) then if animation == "baile 1" or animation == "baile 2" or animation == "baile 3" or animation == "baile 4" or animation == "baile 5" or animation == "baile 6" or animation == "baile 7" or animation == "baile 8" or animation == "baile 9" or animation == "baile 10" or animation == "baile 11" or animation == "baile 12" or animation == "baile 13" then for i = 1,3 do triggerClientEvent ( root, "setPedFortniteAnimation", root, ped,animation,tiempo,repetir,mover,interrumpible ) if tiempo > 1 then setTimer(setPedAnimation,tiempo,1,ped,false) setTimer(setPedAnimation,tiempo+100,1,ped,false) end end end end end addCommandHandler ( "dance", function ( player, _, ... ) local _ARG = { ... }; local DANCE_ID = tonumber( _ARG[1] ); if ( not DANCE_ID ) then return false; end if (tonumber(DANCE_ID) > totalDances) then return outputChatBox ( "* ERRO: Há apenas " .. totalDances .. " animações. Use /dance [1-" .. totalDances .. "].", player, 255, 0, 0 ); end exports.fortnitedances:setPedFortniteAnimation ( player, "baile " .. DANCE_ID, -1, true, false, false, false ); end)
-
Nem sabia que dava pra fazer desta forma rsrs
-
Não sei se é isso que você quer, não entendi muito bem mas se for por + de uma acl no comando ta ae: local veh = {} local vehQuebrado = {} function inicio (hitElement) -- Função do primeiro marker if getElementType (hitElement) == "player" and not getPedOccupiedVehicle (hitElement) then local accName = getAccountName (getPlayerAccount(hitElement)) if isObjectInACLGroup ("user."..accName, aclGetGroup ("ACL1")) or isObjectInACLGroup ("user."..accName, aclGetGroup ("ACL2")) or isObjectInACLGroup ("user."..accName, aclGetGroup ("ACL3")) then if veh[hitElement] and isElement (veh[hitElement]) then destroyElement (veh[hitElement]) veh[hitElement] = nil end if vehQuebrado[hitElement] and isElement (vehQuebrado[hitElement]) then destroyElement (vehQuebrado[hitElement]) vehQuebrado[hitElement] = nil end x, y, z = getElementPosition (hitElement) Trabalho = true FBlip = createBlipAttachedTo (FMarker, 19) -- Bandeira veh[hitElement] = createVehicle (578, 2533.0673828125, -1465.904296875, 23.977584838867, 0, 0, 270) -- Caminhão warpPedIntoVehicle (hitElement, veh[hitElement]) -- Transporta o jogador para dentro do caminhão vehQuebrado[hitElement] = createVehicle (411, 2533.0673828125, -1465.904296875, 23.977584838867, 0, 0,270) -- Caminhonete attachElements (vehQuebrado[hitElement], veh[hitElement], 0, -2, 0.7) setElementVisibleTo (FMarker, hitElement, true) outputChatBox ("#00ccff[Emprego] #ffffffBem-Vindo ao emprego #00ccff[Reboque]", hitElement, 255, 255, 255, true) setElementFrozen( vehQuebrado[hitElement], true ) else outputChatBox ("[#ff0000AVISO#00ccff] #ff0000Gangues não pode trabalha!!!", hitElement, 0, 204, 255, true) end end end addEventHandler ("onMarkerHit", PMarker, inicio)
-
Você pode fazer com gridlist dessa forma também, olhe o exemplo...
-
No Server-side tente isso: function animStart ( id1, id2) setPedAnimation(client, id1, id2 ,-1, true, false, false, true) end addEvent( "startAnim", true ) addEventHandler ("startAnim", root, animStart) Eu fiz um teste aqui e funcionou, mas usei outra animação, a sua eu não consegui reproduzir. Código de exemplo: GUIEditor = { button = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.button[1] = guiCreateButton(564, 364, 170, 37, "Animacao", false) guiSetFont(GUIEditor.button[1], "default-bold-small") guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FFAAAAAA") end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor.button[1] then triggerServerEvent("startAnim", localPlayer ) end end ) SERVER-SIDE function animStart () -- Procure não usar nome de função com o mesmo nome do trigger. setPedAnimation (client, "FOOD", "EAT_Burger", -1, false, false, nil, false) end addEvent( "startAnim", true ) addEventHandler ("startAnim", root, animStart) -- Procure não usar nome de função com o mesmo nome do trigger.
-
askoaspsa, eu tava tentando ajudar, mas o código é fácil de entender, acho que agora ele não terá mais dúvida com esse tipo de coisa.
-
Sim, clique no icone de coração no comentario do Lord como uma forma de agradecimento por te dar 100% do código pronto.
-
Agora você deve fazer uma verificação ex: if not pornStarted then e em baixo adicionar o trigger do client e aclGroupAddObject
-
Você deve fazer isso.
-
Inicie um lado server-side, lá você inicia o comando, AddCommandHandler
-
Ok, vamos lá, faça por partes, faça os passos que citei acima e poste aqui.
-
Então, você pode definir um grupo Punheta por exemplo, e adicionar os jogadores ' punheteiros ' lá, assim iriam ter a tag pra sempre e todos iriam ver, as vezes o jogador digita o comando /punheta e nem fala no chat, dai você só vai processar uma coisa que nem iria precisar.
-
Pra colocar permissão, você tem que fazer um trigger no lado client e puxar ele no server para usar o comando ' punheta ' lá. Ou você pode usar data ( que não aconselho ) Não entendi por que você esta tentando usar aclGroupRemoveObject e aclGroupAddObject -- Não tinha lido ali em cima sua pergunta desculpe rsrs ignore isso. OBS: Não acho viável fazer isso, aconselho você deixar esse comando livre para todos usar, ou até mesmo privar numa acl ex: Punheta é mais fácil. Vamos por partes, faça primeiro as modificações no client e coloque aqui para nos ajudarmos você. 1 - Adicione um evento no client e permita que ele possa ser chamado por outros recursos. 2- Dentro desse escopo do evento, você deve adicionar a parte que começa renderizar e o timer pra ele detectar e parar, você deve retirar a função startRender você vai usar essa parte dentro do escopo do evento que vai ser puxado pelo server pra iniciar a renderização. 3- Quando terminar esses 2 passos poste aqui para nós verificar, se tiver alguma dúvida pergunte. Não adianta a gente te dar o código todo pronto, Lordin já deu mais que 90% agora você tem que aprender fazer o resto com a nossa ajuda claro.
-
function showClan() local player = getLocalPlayer() local everybody = getElementsByType("player") for _, thePlayer in ipairs(everybody) do if getElementData(everybody, "gang") ~= "None" then if everybody ~= getLocalPlayer() then if getElementData(everybody, "gang") == getElementData(player, "gang") then local x, y, z = getElementPosition(thePlayer) local cx, cy, cz = getElementPosition(getLocalPlayer()) local namePlayer = string.gsub(getPlayerName(thePlayer),"#%x%x%x%x%x%x","") if getDistanceBetweenPoints3D(x, y, z, cx, cy, cz) <= 300 and localPlayer ~= thePlayer then local sX, sY, sZ = getScreenFromWorldPosition(x, y, z) if(sX and sY and sZ)then local color = tocolor(255, 255, 255) local size = 1 dxDrawText(namePlayer, sX+25, sY-40, 25, 20, color, size,"default-bold") dxDrawText(math.floor(getDistanceBetweenPoints3D(x,y,z, cx,cy,cz)).." m", sX+25, sY-20, 25, 20, color, size,"default-bold") end end end end end end end addEventHandler("onClientRender", getRootElement(), showClan) test.
-
Tentei isso ( não testei ) . SERVER-SIDE local tempoMensagem = 30 -- 30 MINUTOS local enviarMensagem = { " Teste 1", " Teste 2" } setTimer(function() outputChatBox (..enviarMensagem[ math.random( 1, #enviarMensagem ) ], root ) end, 60000 * tempoMensagem, 0 ) Defini uma variável pra você não precisar ficar mexendo em milesegundos.
-
Sim, passei despercebido, tinha a função pronta, só usei um trigger no client puxando para o server quando o jogador registrar ele seta a tab01 no caso login.
-
Exatamente isso que eu precisava obrigado.
-
Olá pessoal, bom eu andei dando uma olhadinha na wiki em relação a GUI, procurei algo relacionado com tabpanel e não achei o que eu precisava, na realidade provavelmente não existe essa função mas vamos lá, oque eu queria encontrar era uma função que quando o jogador por exemplo clicasse no tab2 vamo supor que é um painel de login, quando o jogador registrar ele automaticamente ir para o tab1 no caso o login, se alguém souber de algo que possa simular isso agradeço !