-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
Bem, acho que o correto seria o jogador primeiro terminar o download para logar e jogar. Você quer gerar no jogo o jogador que está baixando?
-
Veja o que mostra no debug mode, digite /debugscript 3. Se não tiver erros lá, realmente deve ser outro problema já que o código que o #RooTs testou funciona.
-
Pessoal, em vez de fazer do tópico um bate-papo, aviso mais uma vez que o proceder correto é reportar a mensagem, deixar que os moderadores tomem as decisões e não se envolver em mensagens fora do assunto. XeoN-: Não basta os vários avisos que os Staff's já te deram nem mesmo um banimento... Acho que a sua segunda chance está acabando. Se fosse por mim você nem estaria mais por aqui.
-
Qual comando? Se for o "cctv", só ir no evento do lado server "cctvGate" e modificar a parte da permissão.
-
Vê se não tá mostrando erros no debug mode (com /debugscript 3). Se não tiver, então mostre aqui o seu meta.xml.
-
Can you tell me what's the point of using a "re-captcha system"?
-
Tá faltando verificar se o jogador que morreu estava no evento. Na função entrarnoevento também tem um erro. local playersnoevento = 0 local maxplayersnoevento = 100 function entrarnoevento(source) if getElementData (source, "noevento") then return end setElementData(source,"noevento",true) setElementPosition(source, 324.64304, -1803.92261, 4.58925) outputChatBox("[EVENTO] "..getPlayerName(source).." entrou no evento ["..playersnoevento.."/"..maxplayersnoevento.."]", getRootElement(), 255, 255, 255, true ) playernoevento = playersnoevento + 1 end addCommandHandler("irevento",entrarnoevento) function sairdoevento() if not getElementData (source, "noevento") or (playersnoevento < 1) then return end; local msg if playersnoevento == 1 then msg = "[EVENTO] O jogador "..getPlayerName(source).." ganhou o evento!" else msg = "[EVENTO] "..getPlayerName(source).." saiu do evento ["..(playersnoevento - 1).."/"..maxplayersnoevento.."]" end setElementData(source,"noevento",false) playersnoevento = playersnoevento - 1 outputChatBox(msg, getRootElement(), 255, 255, 255, true ) end addEventHandler("onPlayerWasted",getRootElement(),sairdoevento)
-
Mude esta linha: repeat until setElementModel(player,math.random(312)) Para: setElementModel(player,0)
-
Use addCommandHandler para o comando. Quando o jogador digitar o comando, armazene o jogador numa tabela ou apenas aumente o valor duma variável com a contagem de jogadores, se o caso for apenas para contar quantos estão no evento; e adicione o evento onPlayerWasted para esse jogador. No evento "onPlayerWasted": Diminua o valor com o total de jogadores no evento, ou tirando o jogador da tabela ou definindo - 1 para a variável. É aqui também que você vai mostrar a mensagem citada: outputChatBox("[ Evento ] O jogador "..getPlayerName(source).." morreu no evento restao "..jogadoresAtualmenteNoEvento.."/"..totalDeJogadores) Verificando a cada chamada à função quantos jogadores ainda restam, você faz uma checagem para ver se esse é o último jogador, em caso afirmativo, vai a mensagem: outputChatBox("[ Evento ] O jogador "..getPlayerName(source).." ganhou o evento!") Sobre toda a funcionalidade ao evento, como você não citou, penso que não preciso explicar. Se ainda falta isso para o código e a questão é sobre fazer um sistema de evento em si então você terá coisas a mais a fazer.
-
Actually, I checked if the length of the tag was less or equal than 3, but I should check if it's greater. addCommandHandler( "gangtag", function ( source, cmdname, tag ) if tag and ( tag:len() > 3 or tag:len() == 0 ) then return outputChatBox("A tag deve ter no máximo 3 caracteres.", source, 230, 0, 0) end if getPlayerTeam(source) and tag then setPlayerName(source, "["..tag.."]"..getPlayerName(source)) elseif not tag then outputChatBox("Sintaxe: /gangtag ", source, 230, 0, 0) end end )
-
addCommandHandler( "gangtag", function ( source, cmdname, tag ) if tag and tag:len() <= 3 then return outputChatBox("A tag deve ter no máximo 3 caracteres.", source, 230, 0, 0) end if getPlayerTeam(source) and tag then setPlayerName(source, "["..tag.."]"..getPlayerName(source)) elseif not tag then outputChatBox("Sintaxe: /gangtag ", source, 230, 0, 0) end end )
-
[Help] show window and guiCreateCheckBox (Not solved)
DNL291 replied to Adissonboy11's topic in Scripting
Try this: local checkbox = {} local window = {} local button = {} local label = {} window[1] = guiCreateWindow(31, 179, 251, 307, "15", false) guiWindowSetMovable(window[1], false) guiWindowSetSizable(window[1], false) guiSetAlpha(window[1], 0.78) guiSetVisible(window[1], false) checkbox[1] = guiCreateCheckBox(96, 70, 15, 15, "", false, false, window[1]) panel.label[1] = guiCreateLabel(120, 68, 78, 19, "CHATBOX", false, window[1]) addEventHandler( "onClientGUIClick", checkbox[1], function() showChat( not guiCheckBoxGetSelected(source) ) end, false ) function showpanel(key,keyState) if getElementData(getLocalPlayer(),"logedin") then if ( keyState == "down" ) then guiSetVisible(window[1],not guiGetVisible(window[1])) showCursor(not isCursorShowing()) if guiGetVisible(window[1]) == true then onClientOpenpanelStopMenu () else hidepanel () end end end end bindKey ( "o", "down", showpanel ) function showpanelManual () guiSetVisible(window[1],not guiGetVisible(window[1])) showCursor(not isCursorShowing()) refreshInventory() if guiGetVisible(window[1]) == true then onClientOpenpanelStopMenu () end end function hidepanelManual () guiSetVisible(window[1],false) showCursor(false) hidepanel () end addEvent("hidepanelManual",true) addEventHandler("hidepanelManual",getLocalPlayer(),hidepanelManual) function onClientOpenpanelStopMenu () triggerEvent("disableMenu",getLocalPlayer()) end function hidepanel () guiSetVisible(rightclickWindow,false) end -
Para a barra de rolagem DX, você pode fazer usando estas funções: dxCreateRenderTarget dxSetRenderTarget getTickCount interpolateBetween dxDrawRectangle getKeyState Mas para isso, você precisa de um bom entendimento em Lua. Como saber fazer um render target, fazer cálculos, saber usar a função interpolateBetween, além de outras coisas.
-
Use table.concat. function criarGang ( source, commandName, ... ) local getaMoney = getPlayerMoney (source) local teamName = table.concat({...}, " ") if teamName then if getaMoney <5000 then outputChatBox("#7d26cd[sERVER] #FF0000Você não tem dinheiro suficiente para criar uma gang valor 5000$",source,255,255,255,true) else if ( getPlayerTeam(source) ~= false ) and ( countPlayersInTeam(getPlayerTeam(source)) == 1 ) then destroyElement(getPlayerTeam(source)) outputChatBox("#F4A460[sERVER]#F08080 Sua gang antiga foi deletada e foi criada uma nova!",source,255,255,255,true) end local newTeam = createTeam ( teamName) if newTeam then takePlayerMoney (source,300 ) local getGang = getTeamName ( newTeam ) setTeamColor (newTeam,math.random(0,255), math.random(0,255), math.random(0,255)) setPlayerTeam ( source, newTeam ) local playerTeam = getPlayerTeam( source ) outputChatBox("#43CD80[GANG] #FFFFFFGang criada com sucesso!",source, 255, 255, 255, true) end end else outputChatBox("#43CD80[GANG] #FFFFFFUso correto: /gangcriar [nome]",source,255,255,255,true) end end addCommandHandler("gangcriar",criarGang)
-
Sendo que getElementData(col,"parent") retorna true e não um elemento, que deveria ser, então o erro está aí. Isso quer dizer, que está sendo passado o valor booleano true na linha 12.
-
Console bug !
DNL291 replied to MrBugsFive's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Não acho que o problema dele é com isso. Se você fez alguma alteração nas propriedades do console, então deve ser por isso. Tente restaurar as mudanças que foram feitas. -
I think now it is fixed, try this: local oldPlayerData = {} function team() createTeam("Staff", 255, 255, 255) for _,p in pairs(getElementsByType("player")) do if not isGuestAccount(getPlayerAccount(p)) and isPlayerAdmin(p) then oldPlayerData[p] = { getElementModel(p), getPlayerTeam(p) or ""} bindKey(p, "F3", "down", setTeam) end end end addEventHandler("onResourceStart", resourceRoot, team) function setTeam(thePlayer) if (getPlayerTeam(thePlayer) or "") ~= oldPlayerData[thePlayer][2] then setElementModel(oldPlayerData[thePlayer][1]) setPlayerTeam(thePlayer, oldPlayerData[thePlayer][2]) return end for _, id in pairs( {69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79} ) do setPedStat(thePlayer, id, 1000) end setPedWalkingStyle(thePlayer, 69) setElementModel(thePlayer, 211) giveWeapon(thePlayer, 26, 9999) giveWeapon(thePlayer, 28, 9999) giveWeapon(thePlayer, 38, 9999) setPlayerTeam ( thePlayer, getTeamFromName("Staff") ) end addEventHandler("onPlayerLogin", root, function() if isPlayerAdmin(source) then oldPlayerData[source] = { getElementModel(source), getPlayerTeam(source) or ""} bindKey(source, "F3", "down", setTeam) end end) addEventHandler("onPlayerLogout", root, function() if isKeyBound(source, "F3", "down", setTeam) then unbindKey(source, "F3", "down", setTeam) oldPlayerData[source] = nil end end) function isPlayerAdmin(p) if isElement(p) then return isObjectInACLGroup("user."..getAccountName ( getPlayerAccount ( p ) ), aclGetGroup ( "Admin" ) ) end return false end addEventHandler( "onPlayerQuit", root, function() if oldPlayerData[source] then oldPlayerData[source] = nil end end )
-
local oldPlayerData = {} function team() createTeam("Staff", 255, 255, 255) for _,p in pairs(getElementsByType("player")) do if not isGuestAccount(getPlayerAccount(p)) and isPlayerAdmin(p) then bindKey(p, "F3", "down", setTeam) end end end addEventHandler("onResourceStart", resourceRoot, team) function setTeam(thePlayer) --if hasObjectPermissionTo(thePlayer, "function.kickPlayer", true) then if oldPlayerData[thePlayer] then setElementModel(oldPlayerData[thePlayer][1]) if oldPlayerData[thePlayer][2] ~= "" then setPlayerTeam(thePlayer, oldPlayerData[thePlayer][2]) end oldPlayerData[thePlayer] = nil return end oldPlayerData[thePlayer] = { getElementModel(thePlayer), getPlayerTeam(thePlayer) or "" } for _, id in pairs( {69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79} ) do setPedStat(thePlayer, id, 1000) end setPedWalkingStyle(thePlayer, 69) setElementModel(thePlayer, 211) giveWeapon(thePlayer, 26, 9999) giveWeapon(thePlayer, 28, 9999) giveWeapon(thePlayer, 38, 9999) setPlayerTeam ( thePlayer, getTeamFromName("Staff") ) end addEventHandler("onPlayerLogin", root, function() if isPlayerAdmin(source) then bindKey(source, "F3", "down", setTeam) end end) addEventHandler("onPlayerLogout", root, function() if isKeyBound(source, "F3", "down", setTeam) then unbindKey(source, "F3", "down", setTeam) end end) function isPlayerAdmin(p) if isElement(p) then return isObjectInACLGroup("user."..getAccountName ( getPlayerAccount ( p ) ), aclGetGroup ( "Admin" ) ) end return false end Try it.
-
I see no error in getPlayerNametagColor function. It will only get errors if the script is set as client-side. Try to debug that code by using outputChatBox/outputDebugString.
-
Try this: local markers = { {296.20737, -37.42688, 1001.51563, 1}, {312.10248, -165.32639, 999.60101, 6}, {288.38971, -106.55548, 1001.51563, 6}, {277.55972, -37.21804, 1001.60779, 1}, {292.98145, -103.60979, 1008.27344, 6}, {293.52847, -80.34721, 1001.51563, 4}, {293.24643, -115.71572, 1008.27344, 4}, {312.62921, -149.50658, 1007.67291, 6}, {308.24817, -140.86179, 999.60156, 7}, } addEventHandler( "onClientResourceStart", resourceRoot, function() ammowin = guiCreateWindow(351, 132, 590, 482, "Ammunations Shop", false) guiWindowSetSizable(ammowin, false) pistol = guiCreateButton(10, 27, 116, 40, "Pistol\n10,000 $", false, ammowin) pistolammo = guiCreateButton(162, 27, 116, 40, "Pistol Ammo\n5$ / ammo", false, ammowin) Desert = guiCreateButton(10, 77, 116, 40, "Desert Eagle\n25,000 $", false, ammowin) desertammo = guiCreateButton(162, 77, 116, 40, "Desert Eagle Ammo\n7$ / ammo", false, ammowin) shotgun = guiCreateButton(10, 126, 116, 40, "Shotgun\n40,000 $", false, ammowin) shotgunammo = guiCreateButton(162, 126, 116, 40, "Shotgun Ammo\n9$ / ammo", false, ammowin) sawnoffshotgun = guiCreateButton(10, 176, 116, 40, "Sawn-Off Shotgun\n35,000 $", false, ammowin) swanshotgunammo = guiCreateButton(162, 176, 116, 40, "Sawn-Off Ammo\n8$ / ammo", false, ammowin) combatshotgun = guiCreateButton(10, 226, 116, 40, "Combat Shotgun\n40,000 $", false, ammowin) combatammo = guiCreateButton(162, 226, 116, 40, "Combat Ammo\n9$ / ammo", false, ammowin) Uzi = guiCreateButton(10, 276, 116, 40, "Uzi\n30,000 $", false, ammowin) uziammo = guiCreateButton(162, 276, 116, 40, "Uzi Ammo\n6$ / ammo", false, ammowin) MP5 = guiCreateButton(10, 326, 116, 40, "MP5\n30,000 $", false, ammowin) tec9ammo = guiCreateButton(162, 376, 116, 40, "TEC-9 Ammo\n6$ / ammo", false, ammowin) TEC9 = guiCreateButton(10, 376, 116, 40, "TEC-9\n25,000 $", false, ammowin) ak47 = guiCreateButton(303, 27, 116, 40, "AK-47\n60,000 $", false, ammowin) m4 = guiCreateButton(303, 77, 116, 40, "M4\n60,000 $", false, ammowin) countryrifle = guiCreateButton(303, 127, 116, 40, "Country Rifle\n70,000 $", false, ammowin) sniperrifle = guiCreateButton(303, 176, 116, 40, "Sniper Rifle\n90,000 $", false, ammowin) miniigun = guiCreateButton(303, 226, 116, 40, "Minigun\n1,000,000 $", false, ammowin) MP5ammo = guiCreateButton(162, 326, 116, 40, "MP5 Ammo\n7$ / ammo", false, ammowin) ak47ammo = guiCreateButton(443, 27, 116, 40, "AK-47 Ammo\n11$ / ammo", false, ammowin) m4ammo = guiCreateButton(443, 76, 116, 40, "M4 Ammo\n11$ / ammo", false, ammowin) countryrifleammo = guiCreateButton(443, 127, 116, 40, "Country Rifle Ammo\n15$ / ammo", false, ammowin) sniperrifleammo = guiCreateButton(443, 177, 116, 40, "Sniper Rifle Ammo\n15$ / ammo", false, ammowin) minigunammo = guiCreateButton(443, 227, 116, 40, "Minigun Ammo\n3$ / ammo", false, ammowin) close = guiCreateButton(152, 426, 268, 34, "Close", false, ammowin) grenade = guiCreateButton(303, 326, 266, 40, "Grenade\n1,000$ / grenade", false, ammowin) teargas = guiCreateButton(303, 277, 266, 39, "Tear Gas\n1,100$ / tear gas", false, ammowin) satchel = guiCreateButton(303, 376, 266, 40, "Satchel\n1,000 $ / satchel", false, ammowin) guiSetVisible (ammowin, false) end ) local mar = nil function markerscreate () for index, value in ipairs ( markers ) do local mx,my,mz,mi = unpack( markers[index] ) mar = createMarker (mx, my, mz-1, "cylinder", 1.5, 255, 255, 255, 180) setElementInterior (mar, mi, mx, my, mz-1) addEventHandler( "onClientMarkerHit", mar, function ( p ) if ( p == localPlayer ) then guiSetVisible (ammowin, true) showCursor (true) end end ) end end addEventHandler( "onClientResourceStart", resourceRoot, markerscreate ) And make sure there is no errors in debug.
-
Não tenho o direito de banir, o que poderia fazer é deixar um aviso pro usuário, ou reportar para alguém superior, assim como qualquer usuário também pode. Mas muitos aqui, quando vêem coisas do tipo, responde ao tópico em vez de reportar e deixar a escolha com o admin. De qualquer forma, acho que o #RooTs já poderia ter tirado como lição já ter sido banido no passado.
-
Porque você tá definindo o texto apenas na row aleatória que é gerada.
-
Quando vai aprender respeitar os usuários, #RooTs? Você que se decide, se vai frequentar o fórum pra ajudar ou pra causar brigas. Isso só vai gerar problemas pra si próprio. On topic Acho que os exemplos já servem muito bem, já que ele mesmo disse que já fez um sistema de level e exp, então deve entender os exemplos com mais facilidade.
-
Client local markerlocation1, blipLS = nil local ped = createPed(0, 1616.44, -1506.98, 14.21,90) function onPedClick(button, state, absX, absY, wx, wy, wz, element) if (element and getElementType(element) == "ped" and state=="down") then local x, y, z = getElementPosition(localPlayer) if (element == ped) then if getDistanceBetweenPoints3D(x, y, z, wx, wy, wz)<=3 then guiSetVisible(Window, true) showCursor (true) end end end end addEventHandler("onClientClick", root, onPedClick) function Location1() triggerServerEvent("givePVehicle", localPlayer) markerlocation1 = createMarker (1602.38, -1448.85, 12.55, "cylinder", 2, 255, 0, 0, 255) blipLS = createBlipAttachedTo (markerlocation1, 51) addEventHandler( "onClientMarkerHit", markerlocation1, function ( hitPlayer, d ) if hitPlayer == localPlayer and d then destroyElement(markerlocation1) destroyElement(blipLS) triggerServerEvent("doPayClient", localPlayer) end end ) end -- function onButtonClick() if (source == reject) then setCameraTarget(localPlayer) guiSetVisible(Window, false) showCursor(false) elseif (source == accept) then if (guiRadioButtonGetSelected(location1)) then triggerServerEvent ("setLocation1",getLocalPlayer()) guiSetVisible (Window,false) showCursor (false) end end end addEventHandler("onClientGUIClick", guiRoot, onButtonClick) Server local vehicles = {} addEvent("doPayClient", true) addEventHandler( "doPayClient", root, function() givePlayerMoney(client, 2000) setPlayerWantedLevel(client, getPlayerWantedLevel(client)+1) destroyElement(vehicles[client]) end ) addEvent("givePVehicle", true) addEventHandler( "givePVehicle", root, function() vehicles[client] = createVehicle (482,1605.42, -1472.97, 13.58,0,0,0) warpPedIntoVehicle(client,vehicles[client]) end ) Try it.
-
Scripter "freelancer" a procura de trabalho!
DNL291 replied to ShawReaper's topic in Portuguese / Português
Acho que ainda faltam mais informações no Post. Poderia colocar linguagens na qual têm experiência, trabalhos feitos (imagens, por exemplo). Enfim, algo que possa te dar mais credibilidade.