Jump to content

Recommended Posts

Bueno, hace unos dias empece el desarrolo de todo un sistema de servidor, o almenos, intento hacerlo de la manera mas eficiente que puedo. Bien explicare un poco lo que llevo hasta ahora;

El resource se llama vCore, como su titulo indica, y tiene como funcion principal ofrecer ventajas al servidor con resources que otros no hacen correctamente, explicare todo en la lista de mas abajo:

Soporte para los game monitor (Esto hace que los gameMonitor reconozcan el dinero como "score" o esa es la idea.)

Soporte de saveSystem (Aun ando integrando cosas, pero por el momento soporta: Skin, posicion, armas, dinero, vida, armadura, nivel de busqueda, dimension, interior y [spawn (resource settings)])

Soporte de configurables, es decir, lo puedes configurar desde Resource Settings en el admin panel por defecto de MTA

Archivos de lenguaje para los que no sean ni ingleses ni españoles.

/gadmin, un comando que permite borrar gangs, pero es necesario el script "gang_system" de "Castillo14", lo que hoy en dia, es "SolidSnake14" en el foro

http://community.mtasa.com/index.php?p= ... ls&id=1514 (gang_system)

http://community.mtasa.com/index.php?p= ... s&id=11073 (vCore)

Link to comment

Cuando uno crea un proyecto en el cuál tiene como fin de que sea usado debes tener en cuenta unas cositas...

  • Que sea útil y dinámico.
  • Que sea entendible para la mayoría de las personas que lo usarán.
  • Que sea confiable.

No quiero ser muy duro, pero realmente tu script no es muuuy útil que digamos xD, además de que está compilado, yo personalmente no usaría scripts compilados de gente que no son conocidas en la comunidad (quizás te conocen aquí en el foro, pero la mayor parte de los usuarios no serán hispanos, osea, no te conocerán), en una parte recomiendas darle permisos de administrador, ¿para qué? Ni el SQL o el XML necesitan permisos administrativos para cumplir sus funciones, entonces veo un poco 'sospechoso' que menciones eso, además de estar todo compilado, (incluidos los server-sides).

Otro 'problema' es que el idioma base de tu recurso es el español y como he mencionado la mayoría de los usuarios que lo usarán serán anglohablantes.

Además hay otro inconveniente que deberías remarcar en la descripción, tú seguramente usaste la data 'score' para mostrar el dinero de los jugadores en los game-monitors, pero imagina que alguien en su servidor utilice un script que use 'score' como data para funcionar, eso afectaría al funcionamiento, suerte y espero que emplees algunos de los consejos que te di abajo :P

Saludos.

Link to comment

El script ya esta descompilado en la community, free to edit, como decian en los juegos online;

De todas formas, era un miniproyecto para haber aprendido lua, obviamente, si hubiera sido un script que le tuviera interes (popular o economico) no estaría publicado en la community.

Tus consejos son utiles, sobretodo el de "Util y dinamico" Me surgio la idea de crear varias carpetas dentro de otras y usar menos cantidad de script, ya que supone una perdida de tiempo para el que lo descarga. Tener que andar buscando cada cosa es una tonteria, cuando pudo haber tres archivos y una carpeta

  • server.lua
    client.lua
    meta.xml
    player_data

EDIT: Era Free to play.

Aun así me considero unbuen scripter xD

RECOPILATORIA DE SCRIPTS RANDOM DE LA COMUNIDAD:

http://community.mtasa.com/index.php?p= ... s&id=11173

createBlip(1039.23950, -5334.36377, -0.55000, 60, 2, 255, 0, 0, 255, 0, 10000 ) 

http://community.mtasa.com/index.php?p= ... s&id=11161

local blip = createBlip  ( 4117.80615 -2822.10815 1.16875, 58 ) 

scripter de los dos anteriores: http://community.mtasa.com/index.php?p= ... &id=391155

Enfin, de los nuevos, es esto.

El tercero random que he descargado parece que ha valido la pena; parece algo mas largo y trabajado

addEvent("onGasRefill", true) 
addEvent("refill", true)
addEvent("paliwo_gui_open", true)
local x,y = guiGetScreenSize()
paliwo = { }
function centerWindow(center_window)
    local screenW,screenH=guiGetScreenSize()
    local windowW,windowH=guiGetSize(center_window,false)
    local x,y = (screenW-windowW)/2,(screenH-windowH)/2
    guiSetPosition(center_window,x,y,false)
end
GUIEditor_Window = {}
GUIEditor_TabPanel = {}
GUIEditor_Tab = {}
GUIEditor_Button = {}
GUIEditor_Label = {}
GUIEditor_Edit = {}
GUIEditor_Label = {}
GUIEditor_Progress = {}
 
GUIEditor_Progress[1] = guiCreateProgressBar(1095,878,344,21,false)
ilepaliwa = guiCreateLabel(7,3,56,18,"Paliwo:",false,GUIEditor_Progress[1])
guiLabelSetColor(ilepaliwa,0,0,0)
guiSetVisible(GUIEditor_Progress[1],false)
guiSetVisible(ilepaliwa,false)
 
 
 
GUIEditor_Window[1] = guiCreateWindow(471,312,503,256,"",false)
GUIEditor_TabPanel[1] = guiCreateTabPanel(9,22,485,225,false,GUIEditor_Window[1])
GUIEditor_Tab[1] = guiCreateTab("Stacja",GUIEditor_TabPanel[1])
GUIEditor_Button[1] = guiCreateButton(11,170,122,24,"Tankuj",false,GUIEditor_Tab[1])
GUIEditor_Button[2] = guiCreateButton(355,170,122,24,"Zamknij okno",false,GUIEditor_Tab[1])
GUIEditor_Label[1] = guiCreateLabel(139,175,227,23,"Obecnie za paliwo zapłacisz:",false,GUIEditor_Tab[1])
GUIEditor_Label[3] = guiCreateLabel(6,4,475,18,"Twój pojazd posiada: Litrów paliwa",false,GUIEditor_Tab[1])
GUIEditor_Label[2] = guiCreateLabel(6,23,475,18,"Kosz 1 litra paliwa:3$",false,GUIEditor_Tab[1])
GUIEditor_Edit[1] = guiCreateEdit(6,44,197,19,"",false,GUIEditor_Tab[1])
GUIEditor_Label[4] = guiCreateLabel(5,105,479,20,"Możesz dolać: Litrów paliwa",false,GUIEditor_Tab[1])
guiEditSetMaxLength ( GUIEditor_Edit[1], 3 )
guiSetVisible(GUIEditor_Window[1],false)
 
 
 
m100 = getElementByID("m100")
m101 = getElementByID("m101")
m102 = getElementByID("m102")
m103 = getElementByID("m103")
m104 = getElementByID("m104")
m105 = getElementByID("m105")
m106 = getElementByID("m106")
m107 = getElementByID("m107")
m108 = getElementByID("m108")
m109 = getElementByID("m109")
m110 = getElementByID("m110")
m111 = getElementByID("m111")
m112 = getElementByID("m112")
m113 = getElementByID("m113")
m114 = getElementByID("m114")
m115 = getElementByID("m115")
m116 = getElementByID("m116")
 
 
createBlipAttachedTo(m100,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m101,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m102,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m103,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m104,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m105,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m106,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m107,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m108,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m109,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m110,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m111,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m112,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m113,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m114,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m115,55, 2, 255, 0, 0,
255, 0, 200.0)
createBlipAttachedTo(m116,55, 2, 255, 0, 0,
255, 0, 200.0)
 
 
 
function setUp(startedResource)
    if(startedResource == getThisResource()) then
        oX,oY,oZ = getElementPosition(getLocalPlayer())
        setTimer(fuelDepleting, 500, 0)
        distance = 0
        distanceOld = 0
    end
end
addEventHandler("onClientResourceStart", getRootElement(), setUp)
 
function paliwo_gui_open(hitElement)
centerWindow(GUIEditor_Window[1])
    local entervehicle = getPedOccupiedVehicle ( hitElement )
    if entervehicle then
        local vehicle = getPedOccupiedVehicle( hitElement )
    if vehicle and getVehicleOccupant( vehicle ) == hitElement then
   
            if getLocalPlayer() == hitElement then
                if(source == m100 or source == m101 or source == m102 or source == m103 or source == m104 or source == m105 or source == m106 or source == m107 or source == m108 or source == m109 or source == m110 or source == m111 or source == m112 or source == m113 or source == m114 or source == m115 or source == m116 ) then
    setElementVelocity ( vehicle, 0, 0, 0 )
    local vehicle = getPedOccupiedVehicle(hitElement)
    if vehicle then
        guiSetText(GUIEditor_Label[3],"Twoj pojazd posiada: " .. math.floor(tonumber(getElementData(vehicle,"fuel"))) .. " Litrów paliwa")
        guiSetText(GUIEditor_Label[4],"Mozesz dolac : " .. tonumber(100) - math.floor(tonumber(getElementData(vehicle,"fuel"))) .. " Litrów paliwa")
        guiSetVisible(GUIEditor_Window[1], true)
        showCursor ( true )
    end
    end
    end
    end
    end
end
addEventHandler("paliwo_gui_open", getRootElement(), paliwo_gui_open)
 
function paliwo_gui_close()
    guiSetVisible(GUIEditor_Window[1], false)
    guiSetText(GUIEditor_Edit[1],"")
    showCursor (false)
end
addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], paliwo_gui_close, false )
 
 
function prawoWindow(center_window)
    local screenW,screenH=guiGetScreenSize()
    local windowW,windowH=guiGetSize(center_window,false)
    local x,y = (screenW-windowW)/3,(screenH-windowH)/1
    guiSetPosition(center_window,x,y,false)
end
 
 
function paliwo_gui_tankuj()
    local vehicle = getPedOccupiedVehicle(getLocalPlayer())
    if tonumber(guiGetText(GUIEditor_Edit[1])) then
        if  (tonumber(guiGetText(GUIEditor_Edit[1]))) < 0 then
        outputChatBox("Wartosc nie moze byc ujemna",255, 0, 0) 
        else
            if tonumber(guiGetText(GUIEditor_Edit[1])) + math.floor(tonumber(getElementData(vehicle,"fuel"))) <= tonumber(100) then
                if getPlayerMoney(getLocalPlayer()) >= tonumber(guiGetText(GUIEditor_Edit[1])) * tonumber(3) then
                        if setElementData(vehicle, "fuel",tonumber(guiGetText(GUIEditor_Edit[1])) + math.floor(tonumber(getElementData(vehicle,"fuel")))) then
                            takePlayerMoney(tonumber(guiGetText(GUIEditor_Edit[1])) * tonumber(3))
                            guiSetVisible(GUIEditor_Window[1], false)
                            guiSetVisible(GUIEditor_Window[2], false)
                            showCursor(false)
                            outputChatBox("Auto Pomyślnie zatankowane, Zapłacono " .. tonumber(guiGetText(GUIEditor_Edit[1])) * tonumber(3) .. "$.",0, 255, 0)
                            guiSetText(GUIEditor_Edit[1],"")
                            paliwo["id"] = nil
                        else
                            outputChatBox("Błąd! Nie można zatankować pojazdu.",255, 0, 0)
                        end
                else
                    outputChatBox("Nie masz tyle Kasy. Aby zapłacić potrzebujesz ".. tonumber(guiGetText(GUIEditor_Edit[1])) * tonumber(3) .."",255, 0, 0)
                end
            else
                outputChatBox("Twoje auto Może mieć tylko 100 Litrów Paliwa, przeczytaj ile możesz dolać i popraw.",255, 0, 0)
            end
       
        end
    else
        outputChatBox("Musisz podać liczby bez liter",255, 0, 0)
    end
end
addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], paliwo_gui_tankuj, false )
 
 
 
 
function skanujkoszt()
if isPedInVehicle(getLocalPlayer()) then
    guiSetVisible(GUIEditor_Progress[1],false)
    guiSetVisible(ilepaliwa,false)
guiProgressBarSetProgress(GUIEditor_Progress[1], tonumber(getElementData(getPedOccupiedVehicle(getLocalPlayer()),"fuel")))
prawoWindow(GUIEditor_Progress[1])
guiSetText(ilepaliwa,"Paliwo:"..tonumber(getElementData(getPedOccupiedVehicle(getLocalPlayer()),"fuel")))
    if tonumber(guiGetText(GUIEditor_Edit[1])) then
        guiSetText(GUIEditor_Label[1],"Koszt: ".. tonumber(guiGetText(GUIEditor_Edit[1])) * tonumber(3) .."$ ")
    else
        guiSetText(GUIEditor_Label[1],"Koszt:0$")
    end
    else
    guiSetVisible(GUIEditor_Progress[1],false)
end
end
addEventHandler("onClientRender",getRootElement(), skanujkoszt)
 
function monitoring()
    if(isPedInVehicle(getLocalPlayer())) then
        x,y,z = getElementPosition(getLocalPlayer())
        distance = distance + getDistanceBetweenPoints3D(x,y,z,oX,oY,oZ)
        oX = x
        oY = y
        oZ = z
    end
end
addEventHandler("onClientRender",getRootElement(), monitoring)
 
function fuelDepleting()
    if(isPedInVehicle(getLocalPlayer())) then
        vehicle = getPedOccupiedVehicle(getLocalPlayer())
        if(getElementData(vehicle,"fuel") == false) then
            fuel = math.random(85,100)
            setElementData(vehicle,"fuel",tonumber(fuel))
        end
        currentFuel = tonumber(getElementData(vehicle,"fuel"))
        if(currentFuel > 0) then
            setElementData(vehicle,"fuel",tostring(currentFuel - math.floor(distance - distanceOld)/350))
            currentFuel = tonumber(getElementData(vehicle,"fuel"))
            distanceOld = distance
        else
            toggleControl("accelerate",false)
            toggleControl("brake_reverse",false)   
        end
    end
end
 
function vehicleEnter(player, seat, jacked)
    local vehicle = getPedOccupiedVehicle(getLocalPlayer())
    if seat == 0 then
        if vehicle then
            if getVehicleController(vehicle) == getLocalPlayer() then
                local data = getElementData(vehicle, "fuel")
                if not data then
                    setElementData(vehicle, "fuel", tonumber(100))
                else
                    setElementData(vehicle, "fuel", tonumber(data))
                end
            end
        end
    end
end
Link to comment
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...