Jump to content

#Dv^

Members
  • Posts

    459
  • Joined

  • Last visited

Everything posted by #Dv^

  1. Tampoco es difícil, es como abrir un 'Servidor Local' desde tu propia PC, sólo tienes que descargarte el MTA e instalar pero sólo el servidor en el mismo VPS "Windows"
  2. ¿Quieres montar tu servidor en un VPS?, depende que sistema operativo uses o consigas, Windows o Linux Podrías leer la Wiki un poco, sobre los Element_Data Desbanear no es nada díficil, lo haces desde el panel de administración o del 'banlist.xml' o a menos que uses algún tipo de sistema de baneo Mucho no comprendí lo que pedías
  3. #Dv^

    Compañeros.

    ¿De qué inicio hablas? El ejemplo que te dí te sirve para hacer lo que pedías en el tema, creo, que te hagan el script, es otro tema addEventHandler("onPlayerLogin", root, --cuando el jugador se loguea function() -- se ejecuta la función local account = getAccountName(getPlayerAccount(source)) -- obtener el nombre de la cuenta if isObjectInACLGroup("user."..account, aclGetGroup("Group_1")) then --si el jugador está dentro del grupo ACL "Group_1" --se ejecuta el siguiente código end end )
  4. #Dv^

    Compañeros.

    Tiene que crear grupos ACL y usar condiciones que compruebe que esté dentro del grupo ACL, este ejemplo te servirá para armar tu script addEventHandler("onPlayerLogin", root, function() local account = getAccountName(getPlayerAccount(source)) if isObjectInACLGroup("user."..account, aclGetGroup("Group_1")) then print("") end end )
  5. executeSQLQuery setAccountData getAccountData
  6. ¿Cuál es el resource?, ¿Uno de la comunidad?
  7. gridlist = guiCreateGridList(500, 26, 420, 254, false) guiGridListAddColumn(gridlist, "Name", 0.5) showCursor(true) local table_category = { --[Categoría] = { { "Nombre", "ID" } }, { "Gorros", { {"Gorros", 1},{"Name_2", 2},{"Name_3", 3}}}, { "Gorras" , { {"Gorras", 1550},{"Name_4", 2},{"Name_5", 3}}}, { "Lentes" , { {"Lentes", 1},{"Name_4", 2},{"Name_5", 3}}}, { "Relojes" , { {"Relojes", 1},{"Name_4", 2},{"Name_5", 3}}}, { "Mochilas", { {"Mochilas", 1},{"Name_4", 2},{"Name_5", 3}}}, { "Mascaras", { {"Mascaras", 1},{"Name_4", 2},{"Name_5", 3}}}, { "Armas de mentira", { {"Armas de mentira", 1},{"Name_4", 2},{"Name_5", 3}}}, { "Otros", { { "Otros", 1},{"Name_4", 2},{"Name_5", 3}}} } for i, v in ipairs ( table_category ) do local r = guiGridListAddRow ( gridlist ) guiGridListSetItemText ( gridlist, r, 1, tostring ( v[1] ), false, false ) end addEventHandler("onClientGUIDoubleClick", guiRoot, function() if ( source == gridlist ) then local row, col = guiGridListGetSelectedItem ( source ) --outputChatBox(row) if ( row and col and row ~= -1 and col ~= -1 ) then guiGridListClear ( gridlist ) guiGridListAddColumn(gridlist, "ID", 0.5) for _, v in ipairs ( table_category[row+1][2]) do local row = guiGridListAddRow ( gridlist ) guiGridListSetItemText ( gridlist, row, 1, v[1], false, false ) guiGridListSetItemText ( gridlist, row, 2, v[2], false, false ) end end end end ) Espero te sirva como para guiarte, Saludos
  8. #Dv^

    AttachEfect

    function fire() local vehicle = getPedOccupiedVehicle(localPlayer) local x, y, z = getElementPosition(vehicle) local fx = createEffect("fire", x, y, z) attachEffect(fx, vehicle, Vector3(0, 0, 2)) end addCommandHandler("fire", fire) Podrían arreglar el ejemplo de la Wiki, para que nadie vuelva a tener el mismo problema
  9. #Dv^

    Info panel

    Espero te sirve, y agradezcas Client local screenW, screenH = guiGetScreenSize() local account_name = "N/A" local myNick = getPlayerName(localPlayer) local myPass = "N/A" local mySerial = "N/A" local myIP = "N/A" local data_login = "N/A" Ventana_de_info = guiCreateWindow((screenW - 422) / 2, (screenH - 325) / 2, 422, 325, "Mi información by Seyer", false) guiWindowSetMovable(Ventana_de_info, false) guiWindowSetSizable(Ventana_de_info, false) label_de_usuario = guiCreateLabel(12, 27, 119, 30, "Usuario:", false, Ventana_de_info) guiSetFont(label_de_usuario, "default-bold-small") guiLabelSetColor(label_de_usuario, 0, 254, 233) label_de_nombre_actual = guiCreateLabel(12, 67, 119, 30, "Nombre actual:", false, Ventana_de_info) guiSetFont(label_de_nombre_actual, "default-bold-small") guiLabelSetColor(label_de_nombre_actual, 0, 254, 233) label_de_contrasena = guiCreateLabel(12, 107, 119, 30, "Contraseña:", false, Ventana_de_info) guiSetFont(label_de_contrasena, "default-bold-small") guiLabelSetColor(label_de_contrasena, 0, 254, 233) label_de_serial = guiCreateLabel(12, 147, 119, 30, "Serial:", false, Ventana_de_info) guiSetFont(label_de_serial, "default-bold-small") guiLabelSetColor(label_de_serial, 0, 254, 233) label_de_ip = guiCreateLabel(12, 187, 119, 30, "IP:", false, Ventana_de_info) guiSetFont(label_de_ip, "default-bold-small") guiLabelSetColor(label_de_ip, 0, 254, 233) label_de_ultimo_inicio_de_sesion = guiCreateLabel(12, 227, 129, 30, "Ultimo inicio de sesión:", false, Ventana_de_info) guiSetFont(label_de_ultimo_inicio_de_sesion, "default-bold-small") guiLabelSetColor(label_de_ultimo_inicio_de_sesion, 0, 254, 233) edit_de_usuario = guiCreateEdit(177, 26, 235, 31, account_name, false, Ventana_de_info) guiEditSetReadOnly(edit_de_usuario, true) edit_de_nombre_actual = guiCreateEdit(177, 67, 235, 31, myNick, false, Ventana_de_info) guiEditSetReadOnly(edit_de_nombre_actual, true) edit_de_contrasena = guiCreateEdit(177, 106, 235, 31, myPass, false, Ventana_de_info) guiEditSetReadOnly(edit_de_contrasena, true) edit_de_serial = guiCreateEdit(177, 147, 235, 31, mySerial, false, Ventana_de_info) guiEditSetReadOnly(edit_de_serial, true) edit_de_ip = guiCreateEdit(177, 188, 235, 31, myIP, false, Ventana_de_info) guiEditSetReadOnly(edit_de_ip, true) edit_de_ultimo_inicio_de_sesion = guiCreateEdit(177, 226, 235, 31, data_login, false, Ventana_de_info) guiEditSetReadOnly(edit_de_ultimo_inicio_de_sesion, true) boton_de_cerrar = guiCreateButton(12, 270, 400, 45, "Cerrar", false, Ventana_de_info) guiSetFont(boton_de_cerrar, "default-bold-small") guiSetProperty(boton_de_cerrar, "NormalTextColour", "FF00FEE9") guiSetVisible(Ventana_de_info, false) addCommandHandler("info", function() if not guiGetVisible(Ventana_de_info) then showCursor(true) guiSetVisible(Ventana_de_info, true) else showCursor(false) guiSetVisible(Ventana_de_info, false) end end ) addEvent("get_Details", true) addEventHandler("get_Details", root, function(account, serial, ip, login_get) account_name = tostring(account) mySerial = tostring(serial) myIP = tostring(ip) data_login = tostring(login_get) guiSetText(edit_de_usuario, account_name) guiSetText(edit_de_serial, mySerial) guiSetText(edit_de_ip, myIP) guiSetText(edit_de_ultimo_inicio_de_sesion, data_login) end ) addEventHandler("onClientPlayerChangeNick", root, function() guiSetText(edit_de_nombre_actual, getPlayerName(localPlayer)) end ) addEventHandler("onClientGUIClick", boton_de_cerrar, function() if guiGetVisible(Ventana_de_info) then showCursor(false) guiSetVisible(Ventana_de_info, false) end end, false ) Server addEventHandler("onPlayerLogin", root, function(newpass) local playerAccount = getPlayerAccount(source) local account = getAccountName(playerAccount) local serial = getAccountSerial(getAccount(account)) local ip = getPlayerIP(source) local login_get = getAccountData(playerAccount, "última_conexión") or "N/A" setAccountData(playerAccount, "última_conexión", FormatDate("d/m/y h:i")) triggerClientEvent(source, "get_Details", source,account, serial, ip, login_get) end ) local gWeekDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" } function FormatDate(format, escaper, timestamp) Check("FormatDate", "string", format, "format", {"nil","string"}, escaper, "escaper", {"nil","string"}, timestamp, "timestamp") escaper = (escaper or "'"):sub(1, 1) local time = getRealTime(timestamp) local formattedDate = "" local escaped = false time.year = time.year + 1900 time.month = time.month + 1 local datetime = { d = ("%02d"):format(time.monthday), h = ("%02d"):format(time.hour), i = ("%02d"):format(time.minute), m = ("%02d"):format(time.month), s = ("%02d"):format(time.second), w = gWeekDays[time.weekday+1]:sub(1, 2), W = gWeekDays[time.weekday+1], y = tostring(time.year):sub(-2), Y = time.year } for char in format:gmatch(".") do if (char == escaper) then escaped = not escaped else formattedDate = formattedDate..(not escaped and datetime[char] or char) end end return formattedDate end function Check(funcname, ...) local arg = {...} if (type(funcname) ~= "string") then error("Argument type mismatch at 'Check' ('funcname'). Expected 'string', got '"..type(funcname).."'.", 2) end if (#arg % 3 > 0) then error("Argument number mismatch at 'Check'. Expected #arg % 3 to be 0, but it is "..(#arg % 3)..".", 2) end for i=1, #arg-2, 3 do if (type(arg[i]) ~= "string" and type(arg[i]) ~= "table") then error("Argument type mismatch at 'Check' (arg #"..i.."). Expected 'string' or 'table', got '"..type(arg[i]).."'.", 2) elseif (type(arg[i+2]) ~= "string") then error("Argument type mismatch at 'Check' (arg #"..(i+2).."). Expected 'string', got '"..type(arg[i+2]).."'.", 2) end if (type(arg[i]) == "table") then local aType = type(arg[i+1]) for _, pType in next, arg[i] do if (aType == pType) then aType = nil break end end if (aType) then error("Argument type mismatch at '"..funcname.."' ('"..arg[i+2].."'). Expected '"..table.concat(arg[i], "' or '").."', got '"..aType.."'.", 3) end elseif (type(arg[i+1]) ~= arg[i]) then error("Argument type mismatch at '"..funcname.."' ('"..arg[i+2].."'). Expected '"..arg[i].."', got '"..type(arg[i+1]).."'.", 3) end end end Con el tema de la contraseña, no sé si se pueda obtener ese dato, creo que no se puede
  10. #Dv^

    Info panel

    No, me refería a que getPlayerName es una función shared, la puedes usar tanto en cliente como en servidor Agregar en el panel de edición el nombre del jugador?, pues cómo habías hecho más arriba
  11. #Dv^

    Info panel

    Es que todas esa funciones, a excepción de getPlayerName (que es una función shared y va tanto en cliente como servidor) van del lado del servidor, usa el evento onPlayerLogin para obtener la cuenta del jugador addEventHandler("onPlayerLogin", root, function() local account = getPlayerAccount(source) triggerClientEvent(source, "get_Details", source, account) end ) account_player = "N/A" name_user = guiCreateEdit(x, y, x, y, account_player, false) addEventHandler("get_Details", true) addEventHandler("get_Details", root, function(account) account_player = tostring(account) guiSetText(name_user, account_player) end )
  12. #Dv^

    Info panel

    Nunca funcionaría ya que "ventana_de_info" no es una variable "global" Debería ser así local screenW, screenH = guiGetScreenSize() Ventana_de_info = guiCreateWindow((screenW - 422) / 2, (screenH - 325) / 2, 422, 325, "Mi información by Seyer", false) guiWindowSetMovable(Ventana_de_info, false) guiWindowSetSizable(Ventana_de_info, false) label_de_usuario = guiCreateLabel(12, 27, 119, 30, "Usuario:", false, Ventana_de_info) guiSetFont(label_de_usuario, "default-bold-small") guiLabelSetColor(label_de_usuario, 0, 254, 233) label_de_nombre_actual = guiCreateLabel(12, 67, 119, 30, "Nombre actual:", false, Ventana_de_info) guiSetFont(label_de_nombre_actual, "default-bold-small") guiLabelSetColor(label_de_nombre_actual, 0, 254, 233) label_de_contrasena = guiCreateLabel(12, 107, 119, 30, "Contraseña:", false, Ventana_de_info) guiSetFont(label_de_contrasena, "default-bold-small") guiLabelSetColor(label_de_contrasena, 0, 254, 233) label_de_serial = guiCreateLabel(12, 147, 119, 30, "Serial:", false, Ventana_de_info) guiSetFont(label_de_serial, "default-bold-small") guiLabelSetColor(label_de_serial, 0, 254, 233) label_de_ip = guiCreateLabel(12, 187, 119, 30, "IP:", false, Ventana_de_info) guiSetFont(label_de_ip, "default-bold-small") guiLabelSetColor(label_de_ip, 0, 254, 233) label_de_ultimo_inicio_de_sesion = guiCreateLabel(12, 227, 129, 30, "Ultimo inicio de sesión:", false, Ventana_de_info) guiSetFont(label_de_ultimo_inicio_de_sesion, "default-bold-small") guiLabelSetColor(label_de_ultimo_inicio_de_sesion, 0, 254, 233) edit_de_usuario = guiCreateEdit(177, 26, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_usuario, true) edit_de_nombre_actual = guiCreateEdit(177, 67, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_nombre_actual, true) edit_de_contrasena = guiCreateEdit(177, 106, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_contrasena, true) edit_de_serial = guiCreateEdit(177, 147, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_serial, true) edit_de_ip = guiCreateEdit(177, 188, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_ip, true) edit_de_ultimo_inicio_de_sesion = guiCreateEdit(177, 226, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_ultimo_inicio_de_sesion, true) boton_de_cerrar = guiCreateButton(12, 270, 400, 45, "Cerrar", false, Ventana_de_info) guiSetFont(boton_de_cerrar, "default-bold-small") guiSetProperty(boton_de_cerrar, "NormalTextColour", "FF00FEE9") addCommandHandler("info", function() if not guiGetVisible(Ventana_de_info) then showCursor(true) guiSetVisible(Ventana_de_info, true) else showCursor(false) guiSetVisible(Ventana_de_info, false) end end )
  13. #Dv^

    Info panel

    Usas triggerClientEvent del lado del servidor para mandar los datos del jugador al cliente Un ejemplo para obtener el nick del jugador: label_de_nombre_actual = guiCreateLabel(12, 67, 119, 30, "Nombre actual:"..getPlayerName(localPlayer), false, Ventana_de_info)
  14. #Dv^

    Info panel

    Para obtener el nombre la cuenta, usa getAccountName Para obtener el nick del player, usa getPlayerName Para el serial, usa getAccountSerial Para obtener la IP, usa getPlayerIP Y lo de último inicio de sesión debes guardar en la cuenta del jugador los datos "día, hora" en el momento que se logueó, puedes usar setAccountData para establecer y getAccountData para obtener los datos
  15. #Dv^

    Info panel

    local screenW, screenH = guiGetScreenSize() function verinfo () Ventana_de_info = guiCreateWindow((screenW - 422) / 2, (screenH - 325) / 2, 422, 325, "Mi información by Seyer", false) guiWindowSetMovable(Ventana_de_info, false) guiWindowSetSizable(Ventana_de_info, false) label_de_usuario = guiCreateLabel(12, 27, 119, 30, "Usuario:", false, Ventana_de_info) guiSetFont(label_de_usuario, "default-bold-small") guiLabelSetColor(label_de_usuario, 0, 254, 233) label_de_nombre_actual = guiCreateLabel(12, 67, 119, 30, "Nombre actual:", false, Ventana_de_info) guiSetFont(label_de_nombre_actual, "default-bold-small") guiLabelSetColor(label_de_nombre_actual, 0, 254, 233) label_de_contrasena = guiCreateLabel(12, 107, 119, 30, "Contraseña:", false, Ventana_de_info) guiSetFont(label_de_contrasena, "default-bold-small") guiLabelSetColor(label_de_contrasena, 0, 254, 233) label_de_serial = guiCreateLabel(12, 147, 119, 30, "Serial:", false, Ventana_de_info) guiSetFont(label_de_serial, "default-bold-small") guiLabelSetColor(label_de_serial, 0, 254, 233) label_de_ip = guiCreateLabel(12, 187, 119, 30, "IP:", false, Ventana_de_info) guiSetFont(label_de_ip, "default-bold-small") guiLabelSetColor(label_de_ip, 0, 254, 233) label_de_ultimo_inicio_de_sesion = guiCreateLabel(12, 227, 129, 30, "Ultimo inicio de sesión:", false, Ventana_de_info) guiSetFont(label_de_ultimo_inicio_de_sesion, "default-bold-small") guiLabelSetColor(label_de_ultimo_inicio_de_sesion, 0, 254, 233) edit_de_usuario = guiCreateEdit(177, 26, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_usuario, true) edit_de_nombre_actual = guiCreateEdit(177, 67, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_nombre_actual, true) edit_de_contrasena = guiCreateEdit(177, 106, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_contrasena, true) edit_de_serial = guiCreateEdit(177, 147, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_serial, true) edit_de_ip = guiCreateEdit(177, 188, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_ip, true) edit_de_ultimo_inicio_de_sesion = guiCreateEdit(177, 226, 235, 31, "", false, Ventana_de_info) guiEditSetReadOnly(edit_de_ultimo_inicio_de_sesion, true) boton_de_cerrar = guiCreateButton(12, 270, 400, 45, "Cerrar", false, Ventana_de_info) guiSetFont(boton_de_cerrar, "default-bold-small") guiSetProperty(boton_de_cerrar, "NormalTextColour", "FF00FEE9") end addCommandHandler("info", verinfo) Ya, problema resuelto :b Tú error estaba también en esta línea Ventana_de_infotana_de_info = guiCreateWindow((screenW - 422) / 2, (screenH - 325) / 2, 422, 325, "Mi información by Seyer", false)
  16. Entonces úsalo de esta manera gridlist = guiCreateGridList(9, 26, 420, 254, false) guiGridListAddColumn(gridlist, "Name", 0.5) local table_category = { --{ "Categoría, { { Nombre, ID } } }, { "Category_1", { {"Name_1", 1},{"Name_2", 2},{"Name_3", 3}}}, { "Category_2", { {"Name_3", 1},{"Name_4", 2},{"Name_5", 3}}} } for i, v in ipairs ( table_category ) do local r = guiGridListAddRow ( gridlist ) guiGridListSetItemText ( gridlist, r, 1, tostring ( v[1] ), false, false ) end
  17. Server addEventHandler("onPlayerLogin", root, function() triggerClientEvent(source, "showGUI", source) end ) Client addEvent("showGUI", true) addEventHandler("showGUI", root, function() --guiSetVisible(myGUI, bool) end ) Hecha un vistazo a la Wiki sobre la función y comprenderás mejor, triggerClientEvent onPlayerLogin
  18. #Dv^

    ¿DayZ Anime?

    Quizás sea por que tienes el gamemode "play" ejecutando, ya que ese gamemode usa el recurso "spawnmanager", sólo retén el recurso y prueba que no vuelve a pasar lo que te sucede EDIT: Intenta borrar tu cuenta y crearla de nuevo con ese GM
  19. #Dv^

    ¿DayZ Anime?

    Este es un GM de DayZ que es público aunque aún lo desarrollan
  20. Usa la función guiGetScreenSize para obtener la resolución del jugador local x, y = guiGetScreenSize()
  21. Para que aparezca la GUI al loguearte, usa el evento onPlayerLogin(server-side) para detectar que el jugador logueó, y triggerClientEvent para que abra la GUI desde el lado del servidor Para que aparezca, o desaparezca el puntero, usa showCursor Cuando el jugador presione el botón "Equipo_1" usa el evento onClientGUIClick(client-side) para detectar el click del jugador y setPlayerTeam(server-side) para poner a un jugador en un equipo Si quieres que una GUI se cierre o abra usa guiSetVisible(client-side) Usa outputChatBox para que salga en el chat el mensaje que deseas
  22. Quizás algo como esto te referís gridlist = guiCreateGridList(9, 26, 420, 254, false) guiGridListAddColumn(gridlist, "Name", 0.5) local table_category = { --[Categoría] = { { "Nombre", "ID" } }, [ "Category_1" ] = { {"Name_1", 1},{"Name_2", 2},{"Name_3", 3}}, [ "Category_2" ] = { {"Name_3", 1},{"Name_4", 2},{"Name_5", 3}} } for i, v in pairs ( table_category ) do local r = guiGridListAddRow ( gridlist ) guiGridListSetItemText ( gridlist, r, 1, tostring ( i ), false, false ) end addEventHandler("onClientGUIDoubleClick", guiRoot, function() if ( source == gridlist ) then local row, col = guiGridListGetSelectedItem ( source ) if ( row and col and row ~= -1 and col ~= -1 ) then local category = guiGridListGetItemText ( source, row, 1 ) guiGridListClear ( gridlist ) guiGridListAddColumn(gridlist, "ID", 0.5) if ( table_category [ category ] ) then for _, id in ipairs ( table_category [ category ] ) do local row = guiGridListAddRow ( gridlist ) guiGridListSetItemText ( gridlist, row, 1, tostring ( id[1] ), false, false ) guiGridListSetItemText ( gridlist, row, 2, tostring ( id[2] ), false, false ) end end end end end )
×
×
  • Create New...