Jump to content

PORFAVOR AYUDA SCRIPT WATERFUNC_TSUNAMIS


Steven23

Recommended Posts

El problema es el siguiente, me descarge el script water func de la pagina de la comunidad , todo okay segui todos los pasos copiar cierto texto en el acl de admin y el de las funciones ....

y ayer entro un user que cuando entro al server le salio el panel de waterfunc

como ? como puede salir a los user normales el panel , yo segui los pasos para ponerlo a uso de los admins y sin embargo entra un user y puede utilizarlo , me malogra la hora de tsuamis , porfavor hay alguna solucion se los pido ayudenme

lo malogra reiniciando todo el tsunami , manipulan los botenes , la pregunta es porque los players que no son mods y admins pueden manejarlo ? :twisted:

Link to comment

Contenido 1 LUA CLIENT

--------------------------

-- waterFunc Client

-- Variables

root = getRootElement()

localPlayer = getLocalPlayer()

local zx,zy = guiGetScreenSize()

local zx2,zy2 = zx/2,zy/2

local leading = 25

local crow = 30

local currLevel = 0

local WguiVisible = false

--local buttonState = nil

--local checkBox = nil

local runFlag = false

local gFnt = "default-bold-small"

addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),function()

wdwWgui = guiCreateWindow(zx-410,zy-250,400,225,"waterFunc 1.0.1",false)

guiSetFont(wdwWgui,gFnt)

guiSetAlpha(wdwWgui,.8)

wgui_flood_label = guiCreateLabel(10,crow,100,15,"Flood Level",false,wdwWgui)

guiSetFont(wgui_flood_label,gFnt)

guiLabelSetColor(wgui_flood_label,128,128,0)

wgui_flood_edit = guiCreateEdit(95,crow-3,45,20,"10",false,wdwWgui)

guiSetFont(wgui_flood_edit,gFnt)

wgui_fld_set_btn = guiCreateButton(150,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_fld_set_btn,gFnt)

wgui_wvehgt_label = guiCreateLabel(210,crow,100,15,"Wave Height",false,wdwWgui)

guiSetFont(wgui_wvehgt_label,gFnt)

guiLabelSetColor(wgui_wvehgt_label,128,128,0)

wgui_wvehgt_edit = guiCreateEdit(300,crow-3,45,20,"2",false,wdwWgui)

guiSetFont(wgui_wvehgt_edit,gFnt)

wgui_wvehgt_set_btn = guiCreateButton(355,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_wvehgt_set_btn,gFnt)

crow = crow+leading

wgui_srge_label = guiCreateLabel(10,crow,100,15,"Surge Level",false,wdwWgui)

guiSetFont(wgui_srge_label,gFnt)

guiLabelSetColor(wgui_srge_label,128,128,0)

wgui_srge_edit = guiCreateEdit(95,crow-3,45,20,"25",false,wdwWgui)

guiSetFont(wgui_srge_edit,gFnt)

wgui_srge_set_btn = guiCreateButton(150,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_srge_set_btn,gFnt)

crow = crow+leading

wgui_ebb_label = guiCreateLabel(10,crow,100,15,"Ebb Level",false,wdwWgui)

guiSetFont(wgui_ebb_label,gFnt)

guiLabelSetColor(wgui_ebb_label,128,128,0)

wgui_ebb_edit = guiCreateEdit(95,crow-3,45,20,"25",false,wdwWgui)

guiSetFont(wgui_ebb_edit,gFnt)

wgui_ebb_set_btn = guiCreateButton(150,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_ebb_set_btn,gFnt)

crow = crow+leading

wgui_tide_label = guiCreateLabel(10,crow,100,15,"Tide Level",false,wdwWgui)

guiSetFont(wgui_tide_label,gFnt)

guiLabelSetColor(wgui_tide_label,128,128,0)

wgui_tide_edit = guiCreateEdit(95,crow-3,45,20,"25",false,wdwWgui)

guiSetFont(wgui_tide_edit,gFnt)

wgui_tde_set_btn = guiCreateButton(150,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_tde_set_btn,gFnt)

crow = crow+leading+5

wgui_waterlevel_label = guiCreateLabel(10,crow,150,15,"Current Water Level",false,wdwWgui)

guiSetFont(wgui_waterlevel_label,gFnt)

guiLabelSetColor(wgui_waterlevel_label,128,128,0)

wgui_spd_label = guiCreateLabel(210,crow,100,15,"Speed",false,wdwWgui)

guiSetFont(wgui_spd_label,gFnt)

guiLabelSetColor(wgui_spd_label,128,128,0)

crow = crow+10

wgui_waterlevel_status = guiCreateLabel(15,crow,350,50,"0.00",false,wdwWgui)

guiSetFont(wgui_waterlevel_status,"sa-header")

guiLabelSetColor(wgui_waterlevel_status,0,255,0)

crow = crow+20

wgui_waterspeed_scrn_label1 = guiCreateLabel(215,crow,150,15,"1",false,wdwWgui)

guiSetFont(wgui_waterspeed_scrn_label1,gFnt)

guiLabelSetColor(wgui_waterspeed_scrn_label1,128,128,0)

wgui_waterspeed_rbtn1 = guiCreateRadioButton(225,crow,40,20,"",false,wdwWgui)

wgui_waterspeed_scrn_label2 = guiCreateLabel(250,crow,150,15,"2",false,wdwWgui)

guiSetFont(wgui_waterspeed_scrn_label2,gFnt)

guiLabelSetColor(wgui_waterspeed_scrn_label2,128,128,0)

wgui_waterspeed_rbtn2 = guiCreateRadioButton(260,crow,405,20,"",false,wdwWgui)

wgui_waterspeed_scrn_label3 = guiCreateLabel(285,crow,150,15,"3",false,wdwWgui)

guiSetFont(wgui_waterspeed_scrn_label3,gFnt)

guiLabelSetColor(wgui_waterspeed_scrn_label3,128,128,0)

wgui_waterspeed_rbtn3 = guiCreateRadioButton(295,crow,40,20,"",false,wdwWgui)

wgui_waterspeed_scrn_label4 = guiCreateLabel(320,crow,150,15,"4",false,wdwWgui)

guiSetFont(wgui_waterspeed_scrn_label4,gFnt)

guiLabelSetColor(wgui_waterspeed_scrn_label4,128,128,0)

wgui_waterspeed_rbtn4 = guiCreateRadioButton(330,crow,40,20,"",false,wdwWgui)

wgui_waterspeed_scrn_label5 = guiCreateLabel(355,crow,150,15,"5",false,wdwWgui)

guiSetFont(wgui_waterspeed_scrn_label5,gFnt)

guiLabelSetColor(wgui_waterspeed_scrn_label5,128,128,0)

wgui_waterspeed_rbtn5 = guiCreateRadioButton(365,crow,45,20,"",false,wdwWgui)

guiRadioButtonSetSelected(wgui_waterspeed_rbtn3,true)

crow = crow+leading+10

wgui_waterlevel_checkBox = guiCreateCheckBox(10,crow,15,15,"",false,false,wdwWgui)

wgui_waterlevel_scrn_label = guiCreateLabel(35,crow,150,15,"Echo On Screen",false,wdwWgui)

guiSetFont(wgui_waterlevel_scrn_label,gFnt)

guiLabelSetColor(wgui_waterlevel_scrn_label,128,128,0)

wgui_reset_wtr_label = guiCreateLabel(275,crow,100,15,"Reset Water",false,wdwWgui)

guiSetFont(wgui_reset_wtr_label,gFnt)

guiLabelSetColor(wgui_reset_wtr_label,128,128,0)

wgui_wtr_reset_btn = guiCreateButton(355,crow+1,35,15,"OK",false,wdwWgui)

guiSetFont(wgui_wtr_reset_btn,gFnt)

crow = crow+leading

wtrScrnStatus = guiCreateWindow(180,1000,75,30,"Water Level",false)

guiSetFont(wtrScrnStatus, gFnt)

guiSetAlpha(wtrScrnStatus,.8)

wgui_waterlevel_scrn_status = guiCreateLabel(.25,.5,.5,1,"",true,wtrScrnStatus)

guiSetFont(wgui_waterlevel_scrn_status,"sa-normal")

guiLabelSetColor(wgui_waterlevel_scrn_status,0,255,0)

guiWindowSetMovable(wdwWgui,true)

guiWindowSetSizable(wdwWgui,false)

guiSetVisible(wdwWgui,false)

guiWindowSetMovable(wtrScrnStatus,true)

guiWindowSetSizable(wtrScrnStatus,false)

guiSetVisible(wtrScrnStatus,false)

showCursor(false)

addEventHandler("onClientGUIClick",wgui_fld_set_btn,function(button,state)

if button == "left" and state == "up" then

local editVal = tonumber(guiGetText(wgui_flood_edit))

if editVal then

triggerServerEvent("onFloodMap",root,localPlayer,editVal)

end

end

end, false)

addEventHandler("onClientGUIClick",wgui_tde_set_btn,function(button,state)

if button == "left" and state == "up" then

local editVal = tonumber(guiGetText(wgui_tide_edit))

if (editVal > 0) then

runFlag = true

setWaterSpeedVal()

triggerServerEvent("onRunTides",root,localPlayer,runFlag,wSpeed,editVal)

elseif (editVal == 0) then

runFlag = false

triggerServerEvent("onRunTides",root,localPlayer,runFlag)

end

end

end, false)

addEventHandler("onClientGUIClick",wgui_srge_set_btn,function(button,state)

if button == "left" and state == "up" then

local editVal = tonumber(guiGetText(wgui_srge_edit))

if editVal then

setWaterSpeedVal()

triggerServerEvent("onWaterSurge",root,localPlayer,wSpeed,editVal)

end

end

end, false)

addEventHandler("onClientGUIClick",wgui_ebb_set_btn,function(button,state)

if button == "left" and state == "up" then

local editVal = tonumber(guiGetText(wgui_ebb_edit))

if editVal then

setWaterSpeedVal()

triggerServerEvent("onWaterEbb",root,localPlayer,wSpeed,editVal)

end

end

end, false)

addEventHandler("onClientGUIClick",wgui_wvehgt_set_btn,function(button,state)

if button == "left" and state == "up" then

local editVal = tonumber(guiGetText(wgui_wvehgt_edit))

if editVal then

triggerServerEvent("onSetWveHeight",root,localPlayer,editVal)

end

end

end, false)

addEventHandler("onClientGUIClick",wgui_wtr_reset_btn,function(button,state)

if button == "left" and state == "up" then

guiSetText(wgui_flood_edit,"10")

guiSetText(wgui_srge_edit,"25")

guiSetText(wgui_ebb_edit,"25")

guiSetText(wgui_tide_edit,"25")

guiSetText(wgui_wvehgt_edit,"2")

guiRadioButtonSetSelected(wgui_waterspeed_rbtn3,true)

guiCheckBoxSetSelected(wgui_waterlevel_checkBox,false)

triggerServerEvent("onWtrFuncReset",root,localPlayer)

end

end, false)

bindKey("F6","down",callWgui)

end)

function callWgui()

triggerServerEvent("onTriggerWgui",root,localPlayer)

end

function displayWgui(thePlayer)

--,key,keyState)

if WguiVisible == false then

guiSetVisible(wdwWgui,true)

showCursor(true)

WguiVisible = true

else

guiSetVisible(wdwWgui,false)

showCursor(false)

WguiVisible = false

end

end

addEvent("ondisplayWgui",true)

addEventHandler("ondisplayWgui",root,displayWgui)

function setWaterSpeedVal()

if guiRadioButtonGetSelected(wgui_waterspeed_rbtn1) == true then

wSpeed = 1

elseif guiRadioButtonGetSelected(wgui_waterspeed_rbtn2) == true then

wSpeed = 2

elseif guiRadioButtonGetSelected(wgui_waterspeed_rbtn3) == true then

wSpeed = 3

elseif guiRadioButtonGetSelected(wgui_waterspeed_rbtn4) == true then

wSpeed = 4

elseif guiRadioButtonGetSelected(wgui_waterspeed_rbtn5) == true then

wSpeed = 5

end

end

function waterStatus(waterlevel)

waterlevel = tostring(waterlevel)

waterlevel = string.format("%.2f",waterlevel)

guiSetText(wgui_waterlevel_status,waterlevel)

guiSetText(wgui_waterlevel_scrn_status,waterlevel)

if guiCheckBoxGetSelected(wgui_waterlevel_checkBox) == true then

guiSetVisible(wtrScrnStatus,true)

else

guiSetVisible(wtrScrnStatus,false)

end

end

addEvent("onWaterStatus",true)

addEventHandler("onWaterStatus",root,waterStatus)

function upDateCurrentWaterLevel(levelChange)

currLevel = levelChange

thePlayer = localPlayer

triggerEvent("onWaterStatus",root,currLevel)

--triggerServerEvent("onCurrentWaterLevel",root,thePlayer,currLevel)

end

addEvent("onupDateCurrentWaterLevel",true)

addEventHandler("onupDateCurrentWaterLevel",root,upDateCurrentWaterLevel)

Contenido 2 LUA SERVER

-------------------------------------------

-- waterFunc Server

--[[

floodMap set map water level

waterSurge gradual water level increase

waterEbb gradual water level decrease

waterLevel set river/lake water level

runTides set water level increase/decrease cycle

]]

local root = getRootElement()

local origLevel = 0

local startLevel = 0

local wtrLevel = 0

local currLevel = 0

local setLevel = 0

local waterSpeed = 2

local wtrTimerInt = 0

local wtrTimerCnt = 0

local wtrChgRate = 0.02

local wtrSizeVal = 2998

local wtr_x = 0

local wtr_y = 0

local wtr_z = 0

local tidesRun = false

local waterRun = false

local isWater = false

local wtrTimer = nil

local cycleTimer = nil

local wChkTimer = nil

--[[

function dbugmsg(flabel)

if isElement(water) then

isWater = true

end

outputDebugString("---------- "..flabel)

outputDebugString("VARS: orig="..tostring(startLevel)

..", wlvl="..tostring(wtrLevel)

.." set: "..tostring(setLevel)

.." curr: "..tostring(currLevel)

.." wtrspd: "..tostring(waterSpeed)

.." wtrTimerInt: "..tostring(wtrTimerInt)

.." wtrTimerCnt: "..tostring(wtrTimerCnt))

--" targ: "..tostring(targetLevel)..

outputDebugString("water: "..tostring(isWater)

.." trun: "..tostring(tidesRun)

.." wrun: "..tostring(waterRun)

.." wtmr: "..tostring(wtrTimer)

.." cyctmr: "..tostring(cycleTimer)

.." chktmr: "..tostring(wChkTimer))

if wtrCo ~= nil then

outputDebugString(tostring(wtrCo)..": "..coroutine.status(wtrCo))

end

end

]]

function triggerWgui(thePlayer)

if hasObjectPermissionTo(thePlayer,"function.displayWgui",false) then

triggerClientEvent(thePlayer,"ondisplayWgui",getResourceRootElement())

end

end

addEvent("onTriggerWgui",true)

addEventHandler("onTriggerWgui",root,triggerWgui)

--------------------------------------------

-- Water Functions

--------------------------------------------

function makeWater(thePlayer)

if not isWater then

local sW_X = -wtrSizeVal

local sW_Y = -wtrSizeVal

local sE_X = wtrSizeVal

local sE_Y = -wtrSizeVal

local nW_X = -wtrSizeVal

local nW_Y = wtrSizeVal

local nE_X = wtrSizeVal

local nE_Y = wtrSizeVal

theWater = createWater(sW_X,sW_Y,wtrLevel,sE_X,sE_Y,wtrLevel,nW_X,nW_Y,wtrLevel,nE_X,nE_Y,wtrLevel)

isWater = isElement(theWater)

end

end

addEvent("onMakeWater",true)

addEventHandler("onMakeWater",root,makeWater)

function destroyWater()

if isWater then

destroyElement(theWater)

isWater = false

end

end

function wtrFuncReset(thePlayer)

wtrCo = nil

if isTimer(wtrTimer) then killTimer(wtrTimer) end

if isTimer(cycleTimer) then killTimer(cycleTimer) end

if isTimer(wChkTimer) then killTimer(wChkTimer) end

if isWater then

destroyWater()

end

origLevel = 0

startLevel = 0

wtrLevel = 0

currLevel = 0

setLevel = 0

waterSpeed = 3

wtrTimerInt = 0

wtrTimerCnt = 0

wtrChgRate = 0.02

wtrSizeVal = 2998

tidesRun = false

waterRun = false

setWaveHeight(0)

setWaterLevel(0)

triggerClientEvent("onupDateCurrentWaterLevel",root,wtrLevel)

end

addEvent("onWtrFuncReset",true)

addEventHandler("onWtrFuncReset",root,wtrFuncReset)

function waterTimerChk()

if not isTimer(wtrTimer) then

waterRun = false

killTimer(wtrTimerChk)

end

end

function setWaterSpeed()

if waterSpeed == 1 then

wtrChgRate = 0.01

wtrTimerCnt = setLevel * 100

wtrTimerInt = 100

elseif waterSpeed == 2 then

wtrChgRate = 0.02

wtrTimerCnt = setLevel * 50

wtrTimerInt = 100

elseif waterSpeed == 3 then

wtrChgRate = 0.02

wtrTimerCnt = setLevel * 50

wtrTimerInt = 50

elseif waterSpeed == 4 then

wtrTimerInt = 50

wtrChgRate = 0.04

wtrTimerCnt = setLevel * 25

elseif waterSpeed == 5 then

wtrTimerInt = 50

wtrChgRate = 0.1

wtrTimerCnt = setLevel * 10

end

end

function setWveHeight(thePlayer,waveHeight)

if waveHeight then

local waveHeight = waveHeight

setWaveHeight(waveHeight)

end

end

addEvent("onSetWveHeight",true)

addEventHandler("onSetWveHeight",root,setWveHeight)

function currentWaterLevel(thePlayer,levelChange)

currLevel = levelChange

end

addEvent("onCurrentWaterLevel",true)

addEventHandler("onCurrentWaterLevel",root,currentWaterLevel)

-- Set map water level

function floodMap(thePlayer,newLevel)

--if hasObjectPermissionTo(thePlayer,"function.floodMap",false) then

if waterRun then

outputDebugString("A Water Function Is Already Running",0,255,0,0)

else

if newLevel > 0 then

makeWater(thePlayer)

end

setLevel = newLevel

if isWater then

setWaterLevel(theWater,setLevel)

else

setWaterLevel(setLevel)

end

triggerClientEvent("onupDateCurrentWaterLevel",root,setLevel)

end

--end

end

addEvent("onFloodMap",true)

addEventHandler("onFloodMap",root,floodMap)

-- Raise water level

function waterSurge(thePlayer,wSpeed,newLevel)

--if hasObjectPermissionTo(thePlayer,"function.waterSurge",false) then

if waterRun then

outputDebugString("A Water Function Is Already Running",0,255,0,0)

else

waterRun = true

wtrLevel = currLevel

setLevel = newLevel

waterSpeed = wSpeed

setWaterSpeed()

local flabel = " Surge:"

wtrTimer = setTimer(waterRise,wtrTimerInt,wtrTimerCnt,wtrLevel)

wtrTimerChk = setTimer(waterTimerChk,500,0)

--dbugmsg(flabel)

end

--end

end

addEvent("onWaterSurge",true)

addEventHandler("onWaterSurge",root,waterSurge)

function waterRise(setLevel)

if currLevel == 0 and wtrTimerCnt > 0 then

makeWater(thePlayer)

end

wtrLevel = (wtrLevel + wtrChgRate)

if isWater then

setWaterLevel(theWater,wtrLevel)

else

setWaterLevel(wtrLevel)

end

triggerClientEvent("onupDateCurrentWaterLevel",root,wtrLevel)

end

-- Lower water level

function waterEbb(thePlayer,wSpeed,newLevel)

--if hasObjectPermissionTo(thePlayer,"function.waterEbb",false) then

if waterRun then

outputDebugString("A Water Function Is Already Running",0,255,0,0)

else

waterRun = true

wtrLevel = currLevel

setLevel = newLevel

waterSpeed = wSpeed

setWaterSpeed()

local flabel = " Ebb:"

wtrTimer = setTimer(waterFall,wtrTimerInt,wtrTimerCnt,wtrLevel)

wtrTimerChk = setTimer(waterTimerChk,1000,0)

--dbugmsg(flabel)

end

--end

end

addEvent("onWaterEbb",true)

addEventHandler("onWaterEbb",root,waterEbb)

function waterFall(setLevel)

if currLevel == 0 and wtrTimerCnt > 0 then

destroyWater(thePlayer)

end

wtrLevel = (wtrLevel - wtrChgRate)

if isWater then

setWaterLevel(theWater,wtrLevel)

else

setWaterLevel(wtrLevel)

end

triggerClientEvent("onupDateCurrentWaterLevel",root,wtrLevel)

end

-- Run Tide Cycle

function runTides(thePlayer,runFlag,wSpeed,newLevel)

--if hasObjectPermissionTo(thePlayer,"function.runTides",false) then

tidesRun = runFlag

if tidesRun then

if waterRun then

outputDebugString("A Water Function Is Already Running",0,255,0,0)

else

if newLevel > 0 then

waterSpeed = wSpeed

waterRun = true

--makeWater(thePlayer)

setLevel = newLevel

wtrCo = coroutine.create(wtrCorout)

coroutine.resume(wtrCo)

cycleTimer = setTimer(tidesTimerRun,500,0,setLevel)

end

end

else

waterRun = false

end

--end

end

addEvent("onRunTides",true)

addEventHandler("onRunTides",root,runTides)

function wtrCorout()

local flabel = " Tides:"

setWaterSpeed()

wtrLevel = currLevel

wtrTimer = setTimer(waterRise,wtrTimerInt,wtrTimerCnt,wtrLevel)

coroutine.yield()

wtrLevel = currLevel

wtrTimer = setTimer(waterFall,wtrTimerInt,wtrTimerCnt,wtrLevel)

--dbugmsg(flabel)

end

function tidesTimerRun()

local timerChk = isTimer(wtrTimer)

if timerChk == false then

if wtrCo ~= nil then

if coroutine.status(wtrCo) == "dead" then

if not tidesRun then

killTimer(cycleTimer)

wtrTimerChk = setTimer(waterTimerChk,wtrTimerInt,0)

return

else

wtrCo = coroutine.create(wtrCorout)

end

elseif coroutine.status(wtrCo) == "suspended" then

coroutine.resume(wtrCo)

end

end

end

end

:| porfavor ayudame castillo.. :!:

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...