Jump to content

مشكلة


Recommended Posts

Posted (edited)


أنا هذا الكود الي عندي
 

function initTraffic()
	last_yield = getTickCount()
	initTrafficMap()
	loadPaths()
	calculateNodeLaneCounts()
	loadZOffsets()
	initAI()
	initTrafficGenerator()
	traffic_initialized = true
end

function startTrafficInitialization()
	traffic_initialization = coroutine.create(initTraffic)
	keepLoadingTraffic()
end
addEventHandler("onResourceStart",resourceRoot,startTrafficInitialization)

function keepLoadingTraffic()
	if traffic_initialized then
		traffic_initialized = nil
		last_yield = nil
		return
	end
	coroutine.resume(traffic_initialization) -- الديبق بهذا السطر
    -- cannot resume dead coroutine [string "?"]
	setTimer(keepLoadingTraffic,50,1)
end

function checkThreadYieldTime()
	local this_time = getTickCount()
	if this_time-last_yield >= 4000 then
		coroutine.yield()
		last_yield = this_time
	end
end

في هذا السطر وانا حددته في الكود فوق ,
 

coroutine.resume(traffic_initialization)

بيجيني بلديبق هذا الخطأ :
cannot resume dead coroutine [string "?"]
ليش ؟؟ وإيش السبب ؟؟ وين المشكلة .. ومشكوور ..

Edited by abdalaziz
Posted

coroutines مالي خبرة في

بس جرب دا

function initTraffic()
	last_yield = getTickCount()
	initTrafficMap()
	loadPaths()
	calculateNodeLaneCounts()
	loadZOffsets()
	initAI()
	initTrafficGenerator()
	traffic_initialized = true
end

function startTrafficInitialization()
	traffic_initialization = coroutine.create(initTraffic)
	keepLoadingTraffic()
end
addEventHandler("onResourceStart",resourceRoot,startTrafficInitialization)

function keepLoadingTraffic()
	if traffic_initialized then
		traffic_initialized = nil
		last_yield = nil
		return
	end
	if( coroutine.status( traffic_initialization ) ~= "dead" ) then
		coroutine.resume(traffic_initialization) -- الديبق بهذا السطر
    	-- cannot resume dead coroutine [string "?"]
		setTimer(keepLoadingTraffic,50,1)
   end
end

function checkThreadYieldTime()
	local this_time = getTickCount()
	if this_time-last_yield >= 4000 then
		coroutine.yield()
		last_yield = this_time
	end
end

 

  • Like 1
  • Thanks 1

                                                         هل ساعدتك في شئ ؟؟؟؟

                                                Mmpe7Jm.gif

                                                   latest?cb=20170707023932                 

                                            KillerX#9078

Posted
On 16/03/2019 at 15:38, KillerX said:

coroutines مالي خبرة في

بس جرب دا


function initTraffic()
	last_yield = getTickCount()
	initTrafficMap()
	loadPaths()
	calculateNodeLaneCounts()
	loadZOffsets()
	initAI()
	initTrafficGenerator()
	traffic_initialized = true
end

function startTrafficInitialization()
	traffic_initialization = coroutine.create(initTraffic)
	keepLoadingTraffic()
end
addEventHandler("onResourceStart",resourceRoot,startTrafficInitialization)

function keepLoadingTraffic()
	if traffic_initialized then
		traffic_initialized = nil
		last_yield = nil
		return
	end
	if( coroutine.status( traffic_initialization ) ~= "dead" ) then
		coroutine.resume(traffic_initialization) -- الديبق بهذا السطر
    	-- cannot resume dead coroutine [string "?"]
		setTimer(keepLoadingTraffic,50,1)
   end
end

function checkThreadYieldTime()
	local this_time = getTickCount()
	if this_time-last_yield >= 4000 then
		coroutine.yield()
		last_yield = this_time
	end
end

 

شكراا
عندي مشكلة واحدة بهذا الكود :
 

function loadPathMapFile(filename)
	local file = fileOpen(filename,true)
	if not file then
		outputDebugString("Failed to open path map file: "..filename,2)
		return
	end
	local header_bytes = fileRead(file,12)
	if #header_bytes ~= 12 then
		outputDebugString("Failed to read the header of path map file: "..filename,2)
		fileClose(file)
		return
	end

	local node_ids,conn_ids = {},{}
	local nodecount,conncount,forbcount = bytesToData("3i",header_bytes)

	for nodenum = 1,nodecount do
		local node_bytes = fileRead(file,16)
		if #node_bytes ~= 16 then
			outputDebugString("Failed to read all nodes from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local new_id = #node_z+1
		node_ids[nodenum] = new_id
		local x,y,z,rx,ry = bytesToData("3i2s",node_bytes)
		node_x[new_id],node_y[new_id],node_z[new_id] = x/1000,y/1000,z/1000
		node_rx[new_id],node_ry[new_id] = rx/1000,ry/1000
		node_conns[new_id] = {}

		checkThreadYieldTime()
	end

	for connnum = 1,conncount do
		local conn_bytes = fileRead(file,20)
		if #conn_bytes ~= 20 then
			outputDebugString("Failed to read all connections from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local new_id = #conn_type+1
		conn_ids[connnum] = new_id
		local n1,n2,nb,trtype,lit,speed,ll,rl,density = bytesToData("3i2ubus2ubus",conn_bytes)
		local lit1,lit2 = lit%4,math.floor(lit/4)
		n1,n2 = node_ids[n1],node_ids[n2]
		conn_n1[new_id],conn_n2[new_id] = n1,n2
		conn_nb[new_id] = nb ~= -1 and node_ids[nb] or nil
		conn_type[new_id] = trtype == 1 and "peds" or trtype == 2 and "cars" or trtype == 3 and "boats" or trtype == 4 and "planes"
		conn_light1[new_id] = lit1 == 1 and "NS" or lit1 == 2 and "WE" or lit1 == 3 and "ped" or nil
		conn_light2[new_id] = lit2 == 1 and "NS" or lit2 == 2 and "WE" or lit2 == 3 and "ped" or nil
		conn_maxspeed[new_id] = speed/10
		conn_lanes.left[new_id],conn_lanes.right[new_id] = ll,rl
		conn_density[new_id] = density/1000
		conn_forbidden[new_id] = {}
		if rl ~= 0 or ll == 0 then node_conns[n1][n2] = new_id end -- attempt to index field '?' (a nil value) [string "?"] -- هنا الديبق
		if ll ~= 0 or rl == 0 then node_conns[n2][n1] = new_id end

		addConnToTrafficMap(new_id)

		checkThreadYieldTime()
	end

	for forbnum = 1,forbcount do
		local forb_bytes = fileRead(file,8)
		if #forb_bytes ~= 8 then
			outputDebugString("Failed to read all forbidden connection sequences from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local c1,c2 = bytesToData("2i",forb_bytes)
		conn_forbidden[conn_ids[c1]][conn_ids[c2]] = true

		checkThreadYieldTime()
	end

	fileClose(file)
	return true
end

فـ وين المشكلة ؟؟
 

if rl ~= 0 or ll == 0 then node_conns[n1][n2] = new_id end -- attempt to index field '?' (a nil value) [string "?"]


 

Posted
1 hour ago, abdalaziz said:

@Master_MTA

بدل التحققين بكذا

		if (rl ~= 0 or ll == 0) and n1 and n2 then node_conns[n1][n2] = new_id end -- attempt to index field '?' (a nil value) [string "?"] -- هنا الديبق
		if (ll ~= 0 or rl == 0)and n1 and n2 then node_conns[n2][n1] = new_id end

بالتوفيق

  • Thanks 1

Skype 01100001 01101100 01101001 01011111 01101101 01110100 00110001 00111001 00111001 00111001

every thing is gonna be alright

every thing is gonna be okay

it's gonna be a good good life

that's what my therapist say

Posted
On 18/03/2019 at 13:05, Master_MTA said:

بدل التحققين بكذا


		if (rl ~= 0 or ll == 0) and n1 and n2 then node_conns[n1][n2] = new_id end -- attempt to index field '?' (a nil value) [string "?"] -- هنا الديبق
		if (ll ~= 0 or rl == 0)and n1 and n2 then node_conns[n2][n1] = new_id end

بالتوفيق

if (ll ~= 0 or rl == 0) and n1 and n2 then node_conns[n2][n1] = new_id end -- ')' expected near '

')' expected near '
وش الحل

وسويتها كذا,نفس الديبق
 

if ( ll ~= 0 or rl == 0 ) and n1 and n2 then -- ')' expected near '
		node_conns[n2][n1] = new_id 
		end

 

Posted
4 hours ago, abdalaziz said:

@Master_MTA

في خطا بالسينتكس حق الفنكشن

حاول تراجع الفنكشن من اوله لاخره وشيك على الساينتكس

 

  • Thanks 1

Skype 01100001 01101100 01101001 01011111 01101101 01110100 00110001 00111001 00111001 00111001

every thing is gonna be alright

every thing is gonna be okay

it's gonna be a good good life

that's what my therapist say

Posted
function loadPathMapFile(filename)
	local file = fileOpen(filename,true)
	if not file then
		outputDebugString("Failed to open path map file: "..filename,2)
		return
	end
	local header_bytes = fileRead(file,12)
	if #header_bytes ~= 12 then
		outputDebugString("Failed to read the header of path map file: "..filename,2)
		fileClose(file)
		return
	end

	local node_ids,conn_ids = {},{}
	local nodecount,conncount,forbcount = bytesToData("3i",header_bytes)

	for nodenum = 1,nodecount do
		local node_bytes = fileRead(file,16)
		if #node_bytes ~= 16 then
			outputDebugString("Failed to read all nodes from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local new_id = #node_z+1
		node_ids[nodenum] = new_id
		local x,y,z,rx,ry = bytesToData("3i2s",node_bytes)
		node_x[new_id],node_y[new_id],node_z[new_id] = x/1000,y/1000,z/1000
		node_rx[new_id],node_ry[new_id] = rx/1000,ry/1000
		node_conns[new_id] = {}

		checkThreadYieldTime()
	end

	for connnum = 1,conncount do
		local conn_bytes = fileRead(file,20)
		if #conn_bytes ~= 20 then
			outputDebugString("Failed to read all connections from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local new_id = #conn_type+1
		conn_ids[connnum] = new_id
		local n1,n2,nb,trtype,lit,speed,ll,rl,density = bytesToData("3i2ubus2ubus",conn_bytes)
		local lit1,lit2 = lit%4,math.floor(lit/4)
		n1,n2 = node_ids[n1],node_ids[n2]
		conn_n1[new_id],conn_n2[new_id] = n1,n2
		conn_nb[new_id] = nb ~= -1 and node_ids[nb] or nil
		conn_type[new_id] = trtype == 1 and "peds" or trtype == 2 and "cars" or trtype == 3 and "boats" or trtype == 4 and "planes"
		conn_light1[new_id] = lit1 == 1 and "NS" or lit1 == 2 and "WE" or lit1 == 3 and "ped" or nil
		conn_light2[new_id] = lit2 == 1 and "NS" or lit2 == 2 and "WE" or lit2 == 3 and "ped" or nil
		conn_maxspeed[new_id] = speed/10
		conn_lanes.left[new_id],conn_lanes.right[new_id] = ll,rl
		conn_density[new_id] = density/1000
		conn_forbidden[new_id] = {}
		if ( rl ~= 0 or ll == 0 ) and n1 and n2 then
		node_conns[n1][n2] = new_id
		end
		if ( ll ~= 0 or rl == 0 ) and n1 and n2 then 
		node_conns[n2][n1] = new_id
		end
		-- ')' expected near '

		addConnToTrafficMap(new_id)

		checkThreadYieldTime()
	end

	for forbnum = 1,forbcount do
		local forb_bytes = fileRead(file,8)
		if #forb_bytes ~= 8 then
			outputDebugString("Failed to read all forbidden connection sequences from path map file: "..filename,2)
			fileClose(file)
			return
		end
		local c1,c2 = bytesToData("2i",forb_bytes)
		conn_forbidden[conn_ids[c1]][conn_ids[c2]] = true

		checkThreadYieldTime()
	end

	fileClose(file)
	return true
end

 

خلاص لقيت المشكلة وحليتها كانت مشكلة سخيفة . شكراً

لكن المشكلة هنا هي  , انا عندي هذا الكود
 

local n1,n2,nb = conn_n1[connid],conn_n2[connid],conn_nb[connid]
	local x1,y1 = node_x[n1],node_y[n1]
	local x2,y2 = node_x[n2],node_y[n2]
	local density = conn_density[connid]
	do
		local lanes = conn_lanes.left[connid]+conn_lanes.right[connid]
		density = density*(lanes == 0 and 1 or lanes)
	end

	local SQUARE_SIZE = SQUARE_SIZE
	local getDistanceBetweenPoints2D = getDistanceBetweenPoints2D
	local addConnToSquare = addConnToSquare
	local math_min,math_max = math.min,math.max
	local math_floor,math_ceil = math.floor,math.ceil
	local math_abs,math_huge = math.abs,math.huge

	if nb then
		local bx,by = node_x[nb],node_y[nb]
		local mxx , mxy , myx , myy = x1 - bx , y1 - by , x2 - bx , y2 - by -- attempt to perform arithmetic on local 'x' (a nil value) [string "?"]

الخطأ هنا .. ماشوف انا انه في غلط .. ليش ؟؟ وايش الغلط ؟
 

local mxx , mxy , myx , myy = x1 - bx , y1 - by , x2 - bx , y2 - by -- attempt to perform arithmetic on local 'x' (a nil value) [string "?"]

attempt to perform arithmetic on local 'x' (a nil value) [string "?"]

Posted
55 minutes ago, abdalaziz said:

arithmetic

مافي متغير اسمه اكس اصلا

تحقق من رقم السطر

Skype 01100001 01101100 01101001 01011111 01101101 01110100 00110001 00111001 00111001 00111001

every thing is gonna be alright

every thing is gonna be okay

it's gonna be a good good life

that's what my therapist say

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...