Jump to content

water level problem ! help pls !!


viktorX

Recommended Posts

Hello, after i added water level mod i joined to test it but it's not works i did /water i have seen a panel but not works

p_441mvw981.jpg

Codes: water_level

level = 0
highlevel = 0
floodWater1 = 0
floodWater2 = 0
floodWater3 = 0
floodWater4 = 0

function setAllWatersLevel(level)
	setWaterLevel(level)
	if isElement(floodWater1) then
		if (getElementType(floodWater1) == "water") then
			setWaterLevel(floodWater1, level)
		end
	end
	if isElement(floodWater2) then
		if (getElementType(floodWater2) == "water") then
			setWaterLevel(floodWater2, level)
		end
	end
	if isElement(floodWater3) then
		if (getElementType(floodWater3) == "water") then
			setWaterLevel(floodWater3, level)
		end
	end
	if isElement(floodWater4) then
		if (getElementType(floodWater4) == "water") then
			setWaterLevel(floodWater4, level)
		end
	end
end

function deleteWaters()
	if isElement(floodWater1) then
		if (getElementType(floodWater1) == "water") then
			destroyElement ( floodWater1 )
		end
	end
	if isElement(floodWater2) then
		if (getElementType(floodWater2) == "water") then
			destroyElement ( floodWater2 )
		end
	end
	if isElement(floodWater3) then
		if (getElementType(floodWater3) == "water") then
			destroyElement ( floodWater3 )
		end
	end
	if isElement(floodWater4) then
		if (getElementType(floodWater4) == "water") then
			destroyElement ( floodWater4 )
		end
	end
end

function checkLevel(glevel)
	local allow_negative = get("allow_negative")
	if ((allow_negative == "false") and (tonumber(glevel) < 0)) then
		return false
	end
	return true
end

function setFloodWeather()
	local flood_weather = get("flood_weather")
	if (flood_weather ~= "") then
		setWeather(tonumber(flood_weather))
	end
end

function setFloodEndWeather()
	local flood_end_weather = get("flood_end_weather")
	if (flood_end_weather ~= "") then
		setWeather(tonumber(flood_end_weather))
	end
end

function waterLevel ( source,  glevel )
	outputDebugString ( "TEST3", 3 )
	if (get("restrict_to") ~= "") then
		if ( isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source )), aclGetGroup ( get("restrict_to") ) ) ) then
			if ( checkLevel(glevel) == true ) then
				highlevel = tonumber ( glevel )
				if (highlevel == nil) then
					highlevel = 0
				end
				if (highlevel ~= level) then
					if ( isTimer(waterTimer)) then
						killTimer(waterTimer)
					end
					--water is going up
					if (highlevel > level) then
						setFloodWeather()
						waterTimer = setTimer ( addSomeWater, 100, 0, highlevel )
						if (get("show_messages") == "true") then
							if (highlevel > 0) then
								outputChatBox ( "ALERT: A FLOOD IS EMERGING! WE ESTIMATE A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 255, 0, 0 )
							else
								outputChatBox ( "INFO: A DROUGHT IS LEAVING! WE RETURN TO A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 0, 255, 0 )
							end
						end
					else --water is going down
						setFloodEndWeather()
						waterTimer = setTimer ( removeSomeWater, 100, 0, highlevel )
						if (get("show_messages") == "true") then
							if (highlevel > 0) then
								outputChatBox ( "INFO: A FLOOD IS LEAVING! WE RETURN TO A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 0, 255, 0 )
							else
								outputChatBox ( "ALERT: A DROUGHT IS COMING! WE ESTIMATE A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 255, 0, 0 )
							end
						end
					end
					outputDebugString ( "Water changed by " .. getPlayerName ( source ) .. " to a level " .. highlevel .. ".", 3 )
				end
			end
		end
	else
		if ( checkLevel(glevel) == true ) then
			highlevel = tonumber ( glevel )
			if (highlevel == nil) then
				highlevel = 0
			end
			if (highlevel == level) then
			
			else
				if ( isTimer(waterTimer)) then
					killTimer(waterTimer)
				end
				--water is going up
				if (highlevel > level) then
					setFloodWeather()
					waterTimer = setTimer ( addSomeWater, 100, 0, highlevel )
					if (get("show_messages") == "true") then
						if (highlevel > 0) then
							outputChatBox ( "ALERT: A FLOOD IS EMERGING! WE ESTIMATE A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 255, 0, 0 )
						else
							outputChatBox ( "INFO: A DROUGHT IS LEAVING! WE RETURN TO A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 0, 255, 0 )
						end
					end
				else --water is going down
					setFloodEndWeather()
					waterTimer = setTimer ( removeSomeWater, 100, 0, highlevel )
					if (get("show_messages") == "true") then
						if (highlevel > 0) then
							outputChatBox ( "INFO: A FLOOD IS LEAVING! WE RETURN TO A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 0, 255, 0 )
						else
							outputChatBox ( "ALERT: A DROUGHT IS COMING! WE ESTIMATE A WATER LEVEL OF "..tostring(highlevel).." meters", getRootElement(), 255, 0, 0 )
						end
					end
				end
				outputDebugString ( "Water changed by " .. getPlayerName ( source ) .. " to a level " .. highlevel .. ".", 3 )
			end
		end
	end
end
addEvent( "onWaterLevel", true )
addEventHandler( "onWaterLevel", getRootElement(), waterLevel )

function showClientGui(source, command)
	local neg = get("allow_negative")
	triggerClientEvent( source, "onShowWindow", getRootElement(), level, neg)
end
addCommandHandler("water", showClientGui)

function addSomeWater ( highlevel )
	local thelevel = level
	local speed = tonumber(get("speed"))
	level = thelevel + tonumber(speed)

	if (level > 0) then
		floodWater1 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater1, -1500.0, -1500.0, level)
		floodWater2 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater2, 1500.0, -1500.0, level)
		floodWater3 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater3, -1500.0, 1500.0, level)
		floodWater4 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater4, 1500.0, 1500.0, level)
	else
		deleteWaters()
	end
	
	setAllWatersLevel(level)
	
	if (level >= highlevel) then
		if ( isTimer(waterTimer)) then
			killTimer(waterTimer)
		end
		setFloodEndWeather()
	end
end

function removeSomeWater ( highlevel )
	local thelevel = level
	local speed = tonumber(get("speed"))
	level = thelevel - speed

	if (level > 0) then
		floodWater1 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater1, -1500.0, -1500.0, level)
		floodWater2 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater2, 1500.0, -1500.0, level)
		floodWater3 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater3, -1500.0, 1500.0, level)
		floodWater4 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater4, 1500.0, 1500.0, level)
	else
		deleteWaters()
	end
	
    setAllWatersLevel(level)
	
	if (level <= highlevel) then
		if ( isTimer(waterTimer)) then
			killTimer(waterTimer)
		end
	end
end

function initialize()
	setWaterLevel(0)
end
addEventHandler ( "onResourceStart", getRootElement(), initialize)

function destroy()
	if ( isTimer(waterTimer)) then
		killTimer(waterTimer)
	end
	deleteWaters()
	setWaterLevel(0)
	setFloodEndWeather()
end
addEventHandler ( "onResourceStop", getRootElement(), destroy)

function onPlayerJoin()
	deleteWaters()
	if (level > 0) then
		floodWater1 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater1, -1500.0, -1500.0, level)
		floodWater2 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater2, 1500.0, -1500.0, level)
		floodWater3 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater3, -1500.0, 1500.0, level)
		floodWater4 = createWater ( -2998, -2998, level, 2998, -2998, level, -2998, 2998, level, 2998, 2998, level)
		setElementPosition(floodWater4, 1500.0, 1500.0, level)
	end
	setAllWatersLevel(level)
end
addEventHandler( "onPlayerJoin", getRootElement(), onPlayerJoin )

Code2: water_gui

localPlayer = getLocalPlayer()
allow_negative = "false"
x,y = guiGetScreenSize()
WaterWin = {}

function isNumeric(a)
    return type(tonumber(a)) == "number"
end

WaterWin = guiCreateWindow(x/2 - 127,y/2 - 70,254,140,"Water Level - by Dr4x",false)
EditCurrLevel = guiCreateEdit(105,35,136,23,"",false,WaterWin)
guiEditSetReadOnly(EditCurrLevel,true)
EditObjLevel = guiCreateEdit(105,67,135,22,"",false,WaterWin)
LblCurrentLevel = guiCreateLabel(10,38,87,22,"Current level",false,WaterWin)
LblObjectiveLevel = guiCreateLabel(10,72,85,14,"Objective level",false,WaterWin)
guiLabelSetColor(LblObjectiveLevel,255,0,0)
BtnCancel = guiCreateButton(171,111,69,20,"Cancel",false,WaterWin)
BtnOk = guiCreateButton(95,111,69,20,"Set",false,WaterWin)

guiSetVisible ( WaterWin, false )

function showWindow(level, neg)
	guiSetText(EditCurrLevel, level)
	allow_negative = neg
	showCursor(true)
	guiSetVisible(WaterWin, true)
end
addEvent("onShowWindow", true)
addEventHandler("onShowWindow", getRootElement(), showWindow)

function onClickBtn ( button, state )
	if (button == "left" and state == "up") then
		if (source == BtnCancel) then --if he clicked Cancel
			showCursor(false)
			guiSetVisible ( WaterWin, false )
		elseif (source == BtnOk) then --if he clicked Ok
			changeWaterLevel()
		end
	end
end
addEventHandler("onClientGUIClick", BtnOk, onClickBtn, false)
addEventHandler("onClientGUIClick", BtnCancel, onClickBtn, false)

function changeWaterLevel()
	if ( guiGetVisible ( WaterWin ) == true ) then
		if isNumeric(guiGetText(EditObjLevel)) then
			if ((allow_negative) == "false" and (tonumber(guiGetText(EditObjLevel)) < 0)) then
				guiEditSetCaretIndex ( EditObjLevel, 0 )
			else
				triggerServerEvent( "onWaterLevel", localPlayer, localPlayer, guiGetText(EditObjLevel) )
				showCursor(false)
				guiSetVisible ( WaterWin, false )
			end
		else
			guiEditSetCaretIndex ( EditObjLevel, 0 )
		end
	end
	return true
end
bindKey("enter", "down", changeWaterLevel)

 

Edited by viktorX
Link to comment
  • 2 weeks later...
On 18.03.2017 at 02:32, TheMOG said:

"AR -RP Scripter Team"  another leaked OWL Gaming server. Learn how to make script then ask for help

 

 

btw you can make it easy with  


 setWaterLevel

It's resource from community. I don't really think this script is too hard for scripters and they didn't put much effort creating it. So don't be too right and try to help him or just don't answer.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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