-
Posts
296 -
Joined
-
Last visited
-
Days Won
3
Everything posted by #DaNiLiN
-
local idname = get ( "idDataCaption" ) or "ID" g_Players = {} function table.find(t, ...) if type(t) ~= 'table' then return false end local args = { ... } if #args == 0 then for k,v in pairs(t) do if v then return k, v end end return false end local value = table.remove(args) if value == '[nil]' then value = nil end for k,v in pairs(t) do for i,index in ipairs(args) do if type(index) == 'function' then v = index(v) else if index == '[last]' then index = #v end v = v[index] end end if v == value then return k, t[k] end end return false end function addElem(list, elem) local id local globList local newtable = { elem = elem } if not id then id = 1 while list[id] do id = id + 1 end end list[id] = newtable setElemID(elem, id) return id, newtable end function removeElem(list, elem) local id = table.find(list, 'elem', elem) if id then list[id] = nil setElemID(elem, nil) return id end end function getPlayerFromID(id) return g_Players[id] and isElement(g_Players[id].elem) and g_Players[id].elem end function getPlayerID(player) return getElemID(player) end function getElemID(elem) return elem and isElement(elem) and getElementData(elem, idname) end function setElemID(elem, id) if elem and isElement(elem) then setElementData(elem, idname, id) end end function onResourceStart () --call ( getResourceFromName ( "scoreboard" ), "addScoreboardColumn", idname, root,1,0.04 ) for k, v in ipairs(getElementsByType("player")) do addElem(g_Players, v) end end addEventHandler ( "onResourceStart", resourceRoot, onResourceStart ) function onPlayerJoin() addElem(g_Players, source) setElementData (source, "pmb", false) setElementData (source, "pmm", false) end addEventHandler ( "onPlayerJoin", root, onPlayerJoin ) function onPlayerQuit (reason) local playerID = getElemID(source) g_Players[playerID] = nil end addEventHandler('onPlayerQuit', root, onPlayerQuit) Codigo pronto que costumo usar!
-
procuro solução para uso de memoria em programação OOP.
#DaNiLiN replied to Gw8's topic in Programação em Lua
Bom, não posso ajudar pois não tenho esse conhecimento todo. Mas ta bem bacana. -
iria criar o veiculo com +2 de distancia longe do jogador, isso serve para evitar bug quando o veiculo for criado. Me corrigem caso eu estiver errado!
-
Bruno acho ignorância de sua parte pensar dessa maneira, Lord não deu o Código pronto, ele apenas deu exemplos de diferentes maneiras de ser utilizado. Qualquer um pode chegar aqui e dizer oque precisa para montar um loop de for perfeito. Porém a explicação da própria wiki nem sempre satisfaz o carinha que quer montar o loop. No caso o meu. Eu Não tinha noção nenhum sobre for, agora já tenho uma noção de como funciona porque o lord deu uma explicação muito boa e entrando em detalhes.
-
no caso ali chamei apenas um vez e achei que colocando 2, 3 iria funcionar nas 2 coluna. mais uma vez obrigado.
-
desse modo eu também consigo, poblema e que como e um painel de animação vai ficar muitas variavel. com a gridlist e mais facil.
-
sim já testei, e não há erros no debugscript, porém na linha 32 ali era pra setar o grupo e a animação mais não está indo e nem ta dando erro.
-
-- XML <root> <anim AnimName="Dança 1" Anim1="DANCING" Anim2="bd_clap"/> </root> -- Client Side local screenW,screenH = guiGetScreenSize() local resW, resH = 1366, 768 local x, y = (screenW/resW), (screenH/resH) addEventHandler("onClientResourceStart", resourceRoot, function() gridAnim = dxGridW:Create(x*429, y*320, x*262, y*167,false) column1 = gridAnim:AddColumn("NOMES",260) column2 = gridAnim:AddColumn("ID",150) column3 = gridAnim:AddColumn("ID2",150) xmlAnim = xmlLoadFile("xml/Anim.xml") for _, anm in ipairs (xmlNodeGetChildren(xmlAnim)) do nomer = xmlNodeGetAttribute(anm, "AnimName") id1 = xmlNodeGetAttribute(anm, "Anim1") id2 = xmlNodeGetAttribute(anm, "Anim2") gridAnim:AddItem(1,nomer) gridAnim:AddItem(2,id1) gridAnim:AddItem(3,id2) end end ) addEventHandler("onClientDoubleClick", root, function() if gridAnim:IsVisible() then if gridAnim:GetSelectedItem() then triggerServerEvent("startAnim", localPlayer, gridAnim:GetItemDetails(2, 3, gridAnim:GetSelectedItem())) end end end) -- Server side function startAnim ( id1, id2) setPedAnimation(source, id1, id2 ,-1, true, false, false, true) end addEvent( "startAnim", true ) addEventHandler ("startAnim", root, startAnim) O Código a cima ta funfando tudo exceto na hr de setar animação (Help-ME)
-
obrigado crdn funcionou certinho, agora entendi o porque não estava funcionando. e umas das minhas primeira vez a fzr isso então vou ter diversas dificuldades. Obrigado!
-
Nesse código eu passei um gridlist pra dx, e nesta gridlist minha ideia seria pegar skin, porém skins que está no ID "idskins" porém a gridlist está verificando skins de 1 em diante não os ids que eu adicionei HELP-ME (Não entendo nem um pouco de Grilist) skins={ "Skin J", "Skin JJ", "Skin JJJ" } idskins = {"30", "31", "32"} local screen_size = { guiGetScreenSize( ) } local gridlist = dxGrid:Create ( 434, 304, 280, 370) coluna = gridlist:AddColumn ( "Skin", 100 ) ids = gridlist:AddColumn ( " ID", 160 ) for i=1, #idskins do end for i=1, #skins do TextSkin = gridlist:AddItem ( 1, ""..skins[i].."" ) TextId = gridlist:AddItem ( 2, " "..idskins[i].."" ) end function SelecionarSkinF1 (button, press) if press and button == "mouse1" then Selected = gridlist:GetSelectedItem (TextId) if Selected ~=-1 then local Selections = gridlist:GetSelectedItem (idskins) triggerServerEvent ("Skinf1", getLocalPlayer(), Selections) end end end addEventHandler ( "onClientKey", root, SelecionarSkinF1)
-
Os triggerServerEvent estão idênticos e assim faz os 2 darem conflito um com outro.
-
obrigado lord.
-
não tem erro no código, o botão só não habilita/desabilita, Lord arrumei os erros também não foi, tentei também. -- Server Side function aclPanel(thePlayer) local accName = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accName, aclGetGroup("Console") or aclGetGroup("SCMD-PMERJ")) then triggerClientEvent(thePlayer, "teste", root, false) -- botao ativado else triggerClientEvent(thePlayer, "teste", root, true) -- botao desativado end end end -- Client Side button = guiCreateButton(136, 192, 20, 39, "", false) guiSetVisible(button, false) function open () if (guiGetVisible(button) == false) then guiSetVisible(button, true) else guiSetVisible(button, false) end end addCommandHandler("a", open) function Gerenciamento (on_off) if (guiGetEnabled (button) == false) then guiSetEnabled(button, true) else guiSetEnabled(button, false) end end addEvent("teste", true) addEventHandler("teste", root, Gerenciamento) que também não funfo
-
do modo que o MainSCR Montou não deu certo. acabei só copiando e colando, mais o código que ele monto parecia está funcional :\
-
isso msm. Obrigado
-
Olá neste código tentei privar um botão apenas para uma acl só que não deu certo, o botão não desabilita. -- Server-Side function Aclpainel(thePlayer) accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("Consolee") or aclGetGroup("SCMD-PMERJ")) then --> Gruop que vai poder abrir o painel ! triggerClientEvent(thePlayer,"teste",thePlayer) end end -- Client-Side function Gerenciamento (on_off) guiSetEnabled (button, on_off) end addEvent("teste", true) addEventHandler("teste", root, Gerenciamento) button = guiCreateButton(136, 192, 20, 39, "", false) Help
-
eu respondi '-', " eu estava colocando "elementdata" para obter todos player online, porém pegando as posição dos rivais ao redor.... acho que estava fazendo certo.
-
eu estava seguindo seus passos... montando o distance3d e etc ai tava no elementdata mais antes disso já dava esses 3 erros.. e não entendi o porque :\ vou tentar usando loop de FOR
-
tentei assim porém deu erro nas seguintes linhas. function AntiComando (source) local players = getElementsByType("player") local playerrivalx, playerrivaly, playerrivalz = getElementPosition ( players ) -- Encontrar posição do rival local player1x, player1y, player1z = getElementPosition ( source ) -- Encontrar posição do elemento a executar a funçãp local dist = getDistanceBetweenPoints3D ( playerrivalx, playerrivaly, playerrivalz, player1x, player1y, player1z ) -- Calcular a distancia entre os dois elementos if ( dist < 5 ) then -- se a distancia for 5 executara o Chat Box outputChatBox("#FFFFFFComando Não poder ser utilizado perto de um rival!", source, 255, 255, 255, true) -- Chat Box elseif ( dist > 100 )then -- Caso ao contrario a distancia for 100 executara a função a seguir outputChatBox("#FFFFFFcomando utilizado com sucesso.!", source, 255, 255, 255, true) -- Chat Box end end addCommandHandler("a",AntiComando) erro linha: 3, 5 , 6 Img> https://imgur.com/n9E4D69
-
eu acho que a gui é ajustada da mesma forma da dx... eu costumo usar x*, y*, x*, y*
-
https://imgur.com/a/gmqAuDE
-
Bug Painel Admin qlqr player consegue abrir
#DaNiLiN replied to Alexandre206's topic in Programação em Lua
verifique se o grupo "Everyone" tem acl "admin" caso tiver acl admin remova. se caso apenas os jogadores deslogados conseguir abrir o painel verifique se tem user.guest em algum dos grupos que tem permissão para gerencia o painel adm -
eu fiz certo, eu quero ativar a bind key dentro de uma função, não executa ela fora entende?