Jump to content

مساعده بكود جمع فلوس


Recommended Posts

السلام عليكم ورحمة الله وبركاته اخواني ابي اعرف وش الغلط بهذي الاكواد

انا جربته مره يزبط ومره لا 

بمزاج شي غريب


function sortCompareFunction ( s1, s2 )
	if type ( s1 ) == "table" and type ( s2 ) == "table" then
		s1, s2 = s1.name, s2.name;
	end
    s1, s2 = s1:lower ( ), s2:lower( );
    if s1 == s2 then
        return false
    end
    local byte1, byte2 = string.byte ( s1:sub ( 1, 1 ) ), string.byte ( s2:sub ( 1, 1 ) );
    if not byte1 then
        return true
    elseif not byte2 then
        return false
    elseif byte1 < byte2 then
        return true
    elseif byte1 == byte2 then
        return sortCompareFunction ( s1:sub ( 2 ), s2:sub ( 2 ) );
    else
        return false
    end
end

function getAliveGuys ( mode )
	if not mode then return end
	if mode == 1 then
		pAlive = { };
		for _, player in ipairs ( getElementsByType ( "player" ) ) do
			if ( getElementData ( player, "state" ) == "alive" ) then
				table.insert ( pAlive, player );
			end
		end
		return pAlive;
	elseif mode == 2 then
		return #pAlive;
	elseif mode == 3 then
		if pAlive then
			pAlive = nil;
		end
		return false
	end
end

function getDeadGuys ( )
	local pDead = 0
	for _, player in ipairs ( getElementsByType ( "player" ) ) do
		if getElementData ( player, "state" ) == "dead" then
			pDead = pDead + 1;
		end
	end
	return pDead;
end

function giveMoneyWinDie ( )
	local account = getPlayerAccount ( source );
	local playersAlive = getAliveGuys ( 2 );
	local playersDead = getDeadGuys ( );
	local pAll = playersAlive + playersDead;
	local checkYourPos = pAll - playersDead;
	local pos = nil;
	if tonumber ( checkYourPos ) == 1 then pos = 1 else pos = checkYourPos+1 ; end
	if tonumber ( checkYourPos ) == 2 then pos = 2; end
	if pos == 1 or pos == 21 or pos == 31 then
		posName = "st";
	elseif pos == 2 or pos == 22 or pos == 32 then
		posName = "nd";
	elseif pos == 3 or pos == 23 or pos == 33 then
		posName = "rd";
	else
		posName = "th";
	end
	if not getElementData ( source, "gotMoney" ) then
		local money = math.ceil ( getPlayerCount ( ) * 50 / pos );
		givePlayerMoney ( source, money );
		outputChatBox ( "* You were #abcdef[#ff0000" .. pos .. posName .. "#abcdef]#ffffff and #abcdefearned #ffffff" .. money .. "#00ff00$!", source, 255, 255, 255, true );
		setElementData ( source, "gotMoney", true );
		if account then
			setAccountData ( account, "money", tostring ( getPlayerMoney ( source ) ) );
		end
	end
end
addEventHandler ( "onPlayerWasted", root , giveMoneyWinDie )

واسف لاتعابكم

Edited by Master_MTA
Link to comment
1 hour ago, Master_MTA said:

السلام عليكم ورحمة الله وبركاته اخواني ابي اعرف وش الغلط بهذي الاكواد

انا جربته مره يزبط ومره لا 

بمزاج شي غريب


function sortCompareFunction ( s1, s2 )
	if type ( s1 ) == "table" and type ( s2 ) == "table" then
		s1, s2 = s1.name, s2.name;
	end
    s1, s2 = s1:lower ( ), s2:lower( );
    if s1 == s2 then
        return false
    end
    local byte1, byte2 = string.byte ( s1:sub ( 1, 1 ) ), string.byte ( s2:sub ( 1, 1 ) );
    if not byte1 then
        return true
    elseif not byte2 then
        return false
    elseif byte1 < byte2 then
        return true
    elseif byte1 == byte2 then
        return sortCompareFunction ( s1:sub ( 2 ), s2:sub ( 2 ) );
    else
        return false
    end
end

function getAliveGuys ( mode )
	if not mode then return end
	if mode == 1 then
		pAlive = { };
		for _, player in ipairs ( getElementsByType ( "player" ) ) do
			if ( getElementData ( player, "state" ) == "alive" ) then
				table.insert ( pAlive, player );
			end
		end
		return pAlive;
	elseif mode == 2 then
		return #pAlive;
	elseif mode == 3 then
		if pAlive then
			pAlive = nil;
		end
		return false
	end
end

function getDeadGuys ( )
	local pDead = 0
	for _, player in ipairs ( getElementsByType ( "player" ) ) do
		if getElementData ( player, "state" ) == "dead" then
			pDead = pDead + 1;
		end
	end
	return pDead;
end

function giveMoneyWinDie ( )
	local account = getPlayerAccount ( source );
	local playersAlive = getAliveGuys ( 2 );
	local playersDead = getDeadGuys ( );
	local pAll = playersAlive + playersDead;
	local checkYourPos = pAll - playersDead;
	local pos = nil;
	if tonumber ( checkYourPos ) == 1 then pos = 1 else pos = checkYourPos+1 ; end
	if tonumber ( checkYourPos ) == 2 then pos = 2; end
	if pos == 1 or pos == 21 or pos == 31 then
		posName = "st";
	elseif pos == 2 or pos == 22 or pos == 32 then
		posName = "nd";
	elseif pos == 3 or pos == 23 or pos == 33 then
		posName = "rd";
	else
		posName = "th";
	end
	if not getElementData ( source, "gotMoney" ) then
		local money = math.ceil ( getPlayerCount ( ) * 50 / pos );
		givePlayerMoney ( source, money );
		outputChatBox ( "* You were #abcdef[#ff0000" .. pos .. posName .. "#abcdef]#ffffff and #abcdefearned #ffffff" .. money .. "#00ff00$!", source, 255, 255, 255, true );
		setElementData ( source, "gotMoney", true );
		if account then
			setAccountData ( account, "money", tostring ( getPlayerMoney ( source ) ) );
		end
	end
end
addEventHandler ( "onPlayerWasted", root , giveMoneyWinDie )

واسف لاتعابكم

بانتظار الرد

للاسف مافي رد الى الآن شاركني برايك ولو معك احتماليه

Link to comment

صعب اننا نقعد ندور لك على غلط في 82 سطر برمجي

ف ادخل للعبه

واكتب اللمر التالي في اف 8

debugscript 3

بيطلع لك كلام بأسفل وسط الشاشه

صوره وارفع الصوره على موقع رفع

واطرح الصوره هنا وبنفيدك بإذن الله

  • Like 1
Link to comment

الغلط هنا واضح

function getAliveGuys ( mode )
    if not mode then return end
    if mode == 1 then -- يتم التحقق من ان المود 1
        pAlive = { }; -- يتم تعريف المتغير عالميا وليس محلي
        for _, player in ipairs ( getElementsByType ( "player" ) ) do
            if ( getElementData ( player, "state" ) == "alive" ) then
                table.insert ( pAlive, player );
            end
        end
        return pAlive;
    elseif mode == 2 then
        return #pAlive; -- اذ تنفذ الشرط الأول صحيح لكن اذ لم يتنفذ يعطيك غلط
    elseif mode == 3 then
        if pAlive then
            pAlive = nil;
        end
        return false
    end
end

 

Link to comment
On ٢٩‏/١٠‏/٢٠١٦ at 0:58 PM, said:

الغلط هنا واضح


function getAliveGuys ( mode )
    if not mode then return end
    if mode == 1 then -- يتم التحقق من ان المود 1
        pAlive = { }; -- يتم تعريف المتغير عالميا وليس محلي
        for _, player in ipairs ( getElementsByType ( "player" ) ) do
            if ( getElementData ( player, "state" ) == "alive" ) then
                table.insert ( pAlive, player );
            end
        end
        return pAlive;
    elseif mode == 2 then
        return #pAlive; -- اذ تنفذ الشرط الأول صحيح لكن اذ لم يتنفذ يعطيك غلط
    elseif mode == 3 then
        if pAlive then
            pAlive = nil;
        end
        return false
    end
end

 

 

On ٢٨‏/١٠‏/٢٠١٦ at 10:50 PM, Mr.CoR said:

صعب اننا نقعد ندور لك على غلط في 82 سطر برمجي

ف ادخل للعبه

واكتب اللمر التالي في اف 8

debugscript 3

بيطلع لك كلام بأسفل وسط الشاشه

صوره وارفع الصوره على موقع رفع

واطرح الصوره هنا وبنفيدك بإذن الله

يعطيكم الف عافيه اثنينكم وما يحرمنا منكم مشكورين زبط زي ما قال الاخ تنطيل 

#Edit:

معليش اخوي اسحب كلامي للاسف ما زبط نفس المشكله يعطيني الثاني وانا ميت الثالث

#Edit:

اخواني مافي رد للان الكود لم يزبط

Link to comment

ليش شكيت انه ناقص ؟

لأن بالكود هذا

local playersAlive = getAliveGuys ( 2 );

--سطر 56

 

دايماً يروح للقيمة نفسها اللي هي 

elseif mode == 2 then

return #pAlive;

-- سطر 34

 

pAlive والتيبل ذا

يساوي 1 mode مايجيب العدد الا اذا كان ال

if mode == 1 then

     pAlive = { };

     for _, player in ipairs ( getElementsByType ( "player" ) ) do

    	 if ( getElementData ( player, "state" ) == "alive" ) then

        	 table.insert ( pAlive, player );

     	end

	end

	return pAlive;

--ب سطر 26

 

-- اتمنى وصلت الفكرة

Edited by 3NAD
Link to comment
2 minutes ago, 3NAD said:

ليش شكيت انه ناقص ؟

لأن بالكود هذا

[lua]local playersAlive = getAliveGuys ( 2 );[/lua]

سطر 56

 

دايماً يروح للقيمة نفسها اللي هي 

[lua]

elseif mode == 2 then

return #pAlive;

[/lua]

سطر 34

 

pAlive والتيبل ذا

mode == 1 مايجيب العدد الا اذا كان ال

ب سطر 26

 

-- اتمنى وصلت الفكرة

اخوي بالنسبه الاولى الصراحه ما فهمتها اما بالنسبه للثانيه فهمتها

Link to comment

جرب كذا

function getAliveGuys ( mode )
	if not mode then return end
	pAlive = { };
	for _, player in ipairs ( getElementsByType ( "player" ) ) do
		if ( getElementData ( player, "state" ) == "alive" ) then
			table.insert ( pAlive, player );
		end
	end	
	if mode == 1 then
		return pAlive;
	elseif mode == 2 then
		return #pAlive;
	elseif mode == 3 then
		if pAlive then
			pAlive = nil;
		end
		return false
	end
end

 

Link to comment
21 hours ago, 3NAD said:

جرب كذا


function getAliveGuys ( mode )
	if not mode then return end
	pAlive = { };
	for _, player in ipairs ( getElementsByType ( "player" ) ) do
		if ( getElementData ( player, "state" ) == "alive" ) then
			table.insert ( pAlive, player );
		end
	end	
	if mode == 1 then
		return pAlive;
	elseif mode == 2 then
		return #pAlive;
	elseif mode == 3 then
		if pAlive then
			pAlive = nil;
		end
		return false
	end
end

 

اخي الحين عرفت وش الخطا وهو الايفينت هذا الايفينت اذا اللاعب مات لكن اكذا ما يحسب الاول ويحسب الثاني الاول

فانا ابي اول ما اللاعب يموت وايضا اول ما السباق ينتهي او ماب الشوتر

Link to comment

مشكور اخوي زبط بس الان المشكله في هذا لازم اللاعب يموت وانا ما ابيه يموت بالعكس ابيه يحسبه

function giveMoneyWinDie ( )
	local account = getPlayerAccount ( source );
	local playersAlive = getAliveGuys ( 2 );
	local playersDead = getDeadGuys ( );
	local pAll = playersAlive + playersDead;
	local checkYourPos = pAll - playersDead;
	local pos = nil;
	if tonumber ( checkYourPos ) == 1 then pos = 1 else pos = checkYourPos+1 ; end
	if tonumber ( checkYourPos ) == 2 then pos = 2; end
	if pos == 1 or pos == 21 or pos == 31 then
		posName = "st";
	elseif pos == 2 or pos == 22 or pos == 32 then
		posName = "nd";
	elseif pos == 3 or pos == 23 or pos == 33 then
		posName = "rd";
	
	else
		posName = "th";
	end
	if not getElementData ( source, "gotMoney" ) then
		local money = math.ceil ( getPlayerCount ( ) * 50 / pos );
		givePlayerMoney ( source, money );
		outputChatBox ( "* You were #abcdef[#ff0000" .. pos .. posName .. "#abcdef]#ffffff and #abcdefearned #ffffff" .. money .. "#00ff00$!", source, 255, 255, 255, true );
		setElementData ( source, "gotMoney", true );
		if account then
			setAccountData ( account, "money", tostring ( getPlayerMoney ( source ) ) );
			
		end
	end
end
addEventHandler ( "onPlayerWasted", root , giveMoneyWinDie )

 

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