Modren Posted September 7, 2016 Share Posted September 7, 2016 عندي مشكلة ب (math.random+onGamemodeMapStart) في ذا الكود Server Side: debugEnabled = true --Game mode variables gameInterior = 0 gameRespawnTime = 3000 gameTeams = {} gameVehicles = {} gameMaxKills = 40 gameFF = "off" gameTimeHour = 0 gameTimeMin = 0 gameTimeLocked = false versionDisplay = nil xDebug = false xDebug2 = false textBoost = 0 xonPlayerWasted_Enabled = true mapResource = nil local tdma = nil function onMapLoad ( name ) --outputChatBox ( "LOADING NEW MAP... PLEASE WAIT" ) mapResource = getResourceRootElement(name) if xDebug then outputDebugString ( "Starting TDMA Main Control Suite" ) end if xDebug then outputDebugString ( "STARTED... Proceeding to load gamemode... WAIT!" ) end ----outputDebugString ( "Setting up Bases" ) setupBases(name) setGameType ("Team Death Match Arena") tdma = createElement("tdmagame") versionDisplay = textCreateDisplay () local versionText = textCreateTextItem ( "Team Death Match Arena v0.9", 0.975, 0.02, "medium", 255, 255, 255, 255, 1, "right" ) textDisplayAddText ( versionDisplay, versionText ) if ( tonumber(gameMaxKills) > 0 ) then local teamText = textCreateTextItem ( "Scores", 0.01, 0.24 + textBoost, "medium", 255,255,255, 255, 1 ) textDisplayAddText ( versionDisplay, teamText ) textBoost = textBoost + 0.020 for k,v in ipairs(gameTeams) do if xDebug2 then outputDebugString ( "**MAKING TEAM KILL TEXTS***" ) end if xDebug2 then outputDebugString ( "**GOT: " .. v.name .. " R:" .. v.red .. " G:" .. v.green .. " B:" .. v.blue ) end local teamName = v.name local teamKills = v.kills teamText = textCreateTextItem ( teamName .. ": " .. teamKills .. "/" .. gameMaxKills .. " kills", 0.01, 0.24 + textBoost, "medium", tonumber(v.red), tonumber(v.green), tonumber(v.blue), 255, 1 ) --setElementParent ( teamText, tdma ) v.teamText = teamText textDisplayAddText ( versionDisplay, teamText ) textBoost = textBoost + 0.015 end end for k,v in ipairs(gameTeams) do if ( gameFF == "on" ) then setTeamFriendlyFire ( v.team, true ) setTeamFriendlyFire ( v.team, true ) else setTeamFriendlyFire ( v.team, false ) setTeamFriendlyFire ( v.team, false ) end end --Start the pickup system from Included\pickup_system.lua initPickupSystem() --Start the vehicle system from Included\vehicle_system.lua initVehicleSystem() ----outputDebugString ( "Starting The Game" ) if xDebug then outputDebugString ( "[[[[[/*****STARTING GAME*****\]]]]]" ) end startGame() end addEventHandler( "onGamemodeMapStart", root, onMapLoad) function onMapUnload ( name ) --outputChatBox ( "UNLOADING LEVEL... PLEASE WAIT" ) for k = 1,#gameTeams do destroyElement ( gameTeams[k].team ) end textDestroyDisplay ( versionDisplay ) --Game mode variables gameInterior = 0 gameRespawnTime = 3000 gameTeams = {} gameVehicles = {} gameMaxKills = 40 gameFF = "off" gameTimeHour = 0 gameTimeMin = 0 gameTimeLocked = false versionDisplay = nil textBoost = 0 xonPlayerWasted_Enabled = true mapResource = nil destroyElement ( tdma ) for k,v in ipairs(getElementsByType("player")) do setPlayerTeam ( v, nil ) setElementData ( v, "tdma.teamid", false ) setElementData ( v, "tdma.playerHasSpawned", false ) end end addEventHandler( "onGamemodeMapStop", root, onMapUnload) function shuffleTable(inputData) local newTable = {} local i_RndTblPos = 0 while #inputData > 0 do i_RndTblPos = math.random(1,#inputData) table.insert ( newTable, inputData[i_RndTblPos] ) table.remove ( inputData, i_RndTblPos ) end return newTable end function onPlayerJoin () --fadeCamera ( source, false, 1.0, 0, 0, 0 ) --setTimer ( fadeCamera, 1000, 1, source, true, 1 ) setTimer ( firstSpawn, 1000, 1, source ) --showTextForPlayer2 ( source, 12000, 0, 0, 180, 1.5, "Welcome To Team Death Match Arena [By AlienX]" ) setPedStat ( source, 69, 1000 ) setPedStat ( source, 70, 1000 ) setPedStat ( source, 71, 1000 ) setPedStat ( source, 72, 1000 ) setPedStat ( source, 73, 1000 ) setPedStat ( source, 74, 1000 ) setPedStat ( source, 75, 1000 ) setPedStat ( source, 76, 1000 ) setPedStat ( source, 77, 1000 ) setPedStat ( source, 78, 1000 ) setPedStat ( source, 79, 1000 ) setElementData ( source, "tdma.sp", "n" ) statusTextDisplay = textCreateDisplay () local statusTextItem = textCreateTextItem ( "", 0.5, 0.95, "high", 255, 255, 255, 255, 1.5 ) textDisplayAddText ( statusTextDisplay, statusTextItem ) textDisplayAddObserver ( statusTextDisplay, source ) textDisplayAddObserver ( versionDisplay, source ) setElementData ( source, "tdma.status", statusTextItem ) setElementData( source, "tdma.teamMarker", nil ) if ( debugEnabled ) then outputDebugString ( getPlayerName(source) .. "> No marker for this player, Make one and attach it." ) end end addEvent("spawnWar", true) addEventHandler("spawnWar", root, onPlayerJoin) function firstSpawn ( source ) local thePlayer = source if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " for the very first time" ) end updatePlayerInfoBar ( thePlayer, 5200, "Please wait... Spawning" ) local randTeam = math.random(1,#gameTeams) local foundTeam = nil local foundTeamID = nil local allDone = false local scanPlayerCount = 128 local teamPlayerCount = 0 --outputDebugString ( "scanning teams now for auto assignment" ) for k,v in ipairs(gameTeams) do teamPlayerCount = countPlayersInTeam( v.team ) if ( teamPlayerCount < scanPlayerCount ) then scanPlayerCount = countPlayersInTeam ( v.team ) foundTeam = v foundTeamID = k allDone = true end end if ( allDone ) then if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " (ALLDONE) Team: " .. foundTeam.name ) end spawnThePlayer ( thePlayer, foundTeam ) setElementData ( thePlayer, "tdma.teamid", foundTeamID ) showTextForPlayer ( thePlayer, 5000, tonumber(foundTeam.red), tonumber(foundTeam.green), tonumber(foundTeam.blue), 1.5, "You have been automatically assigned to team " .. foundTeam.name ) --setMarkerColor ( theMarker, tonumber(gameTeams[foundTeamID].red), tonumber(gameTeams[foundTeamID].green), tonumber(gameTeams[foundTeamID].blue), 255 ) setPlayerNametagColor ( thePlayer, gameTeams[foundTeamID].red, gameTeams[foundTeamID].green, gameTeams[foundTeamID].blue ) else --Just select a random team if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " (NO FOUND) Team: " .. gameTeams[randTeam].name ) end spawnThePlayer ( thePlayer, gameTeams[1] ) setElementData ( thePlayer, "tdma.teamid", 1 ) --setMarkerColor ( theMarker, tonumber(gameTeams[1].red), tonumber(gameTeams[1].green), tonumber(gameTeams[1].blue), 255 ) setPlayerNametagColor ( thePlayer, gameTeams[1].red, gameTeams[1].green, gameTeams[1].blue ) end end function startGame() if xDebug then outputDebugString ( "... DONE" ) end local playerElementTree = getElementsByType ( "player" ) playerElementTree = shuffleTable(playerElementTree) for k,v in ipairs(playerElementTree) do setElementData ( v, "tdma.sp", "n" ) setElementData ( source, "tdma.playerHasSpawned", false ) --setElementInterior ( v, 10 ) --setTimer ( fadeCamera, 1000, 1, v, true, 1 ) setPedStat ( v, 69, 1000 ) setPedStat ( v, 70, 1000 ) setPedStat ( v, 71, 1000 ) setPedStat ( v, 72, 1000 ) setPedStat ( v, 73, 1000 ) setPedStat ( v, 74, 1000 ) setPedStat ( v, 75, 1000 ) setPedStat ( v, 76, 1000 ) setPedStat ( v, 77, 1000 ) setPedStat ( v, 78, 1000 ) setPedStat ( v, 79, 1000 ) showPlayerHudComponent ( v, "ammo", true ) showPlayerHudComponent ( v, "area_name", true ) showPlayerHudComponent ( v, "armour", true ) showPlayerHudComponent ( v, "breath", true ) showPlayerHudComponent ( v, "health", true ) showPlayerHudComponent ( v, "money", true ) showPlayerHudComponent ( v, "radar", true ) showPlayerHudComponent ( v, "vehicle_name", true ) showPlayerHudComponent ( v, "weapon", true ) --Setup the status bar for the player! statusTextDisplay = textCreateDisplay () local statusTextItem = textCreateTextItem ( "", 0.5, 0.95, "high", 255, 255, 255, 255, 1.5 ) textDisplayAddText ( statusTextDisplay, statusTextItem ) textDisplayAddObserver ( statusTextDisplay, v ) textDisplayAddObserver ( versionDisplay, v ) setElementData ( v, "tdma.status", statusTextItem ) firstSpawn ( v ) end end function restartGame() for k,v in ipairs(getElementsByType ( "player" )) do setElementData ( v, "tdma.sp", "n" ) fadeCamera ( v, false, 1.0, 0, 0, 0 ) --setElementInterior ( v, 10 ) --setTimer ( fadeCamera, 1000, 1, v, true, 1 ) setPedStat ( v, 69, 1000 ) setPedStat ( v, 70, 1000 ) setPedStat ( v, 71, 1000 ) setPedStat ( v, 72, 1000 ) setPedStat ( v, 73, 1000 ) setPedStat ( v, 74, 1000 ) setPedStat ( v, 75, 1000 ) setPedStat ( v, 76, 1000 ) setPedStat ( v, 77, 1000 ) setPedStat ( v, 78, 1000 ) setPedStat ( v, 79, 1000 ) showPlayerHudComponent ( v, "ammo", true ) showPlayerHudComponent ( v, "area_name", true ) showPlayerHudComponent ( v, "armour", true ) showPlayerHudComponent ( v, "breath", true ) showPlayerHudComponent ( v, "health", true ) showPlayerHudComponent ( v, "money", true ) showPlayerHudComponent ( v, "radar", true ) showPlayerHudComponent ( v, "vehicle_name", true ) showPlayerHudComponent ( v, "weapon", true ) local theTeamID = getElementData( v, "tdma.teamid" ) local theTeam = gameTeams[theTeamID] if ( theTeam ) then respawnThePlayer ( v, theTeam ) else firstSpawn ( v ) end end end function onMapFinish ( name ) if getThisResource() ~= name then return end for k,v in ipairs(getElementsByType("player")) do setElementInterior ( v, 0 ) setCameraInterior( v, 0 ) setElementData ( v, "tdma.teamMarker", nil ) setPlayerNametagColor ( v, 255, 255, 255 ) end end addEventHandler( "onResourceStop", root, onMapFinish) function spawnThePlayer ( source, team ) local randSpawn = math.random(1,#team.spawns) local randSkinPicker = math.random(1,#team.skins) local randSkin = tonumber(team.skins[randSkinPicker].id) local x = tonumber(team.spawns[randSpawn].x) + math.random(0,tonumber(team.spawns[randSpawn].rx)) local y = tonumber(team.spawns[randSpawn].y) + math.random(0,tonumber(team.spawns[randSpawn].ry)) local z = tonumber(team.spawns[randSpawn].z) + math.random(0,tonumber(team.spawns[randSpawn].rz)) local rot = tonumber(team.spawns[randSpawn].rot) local rx = tonumber(team.spawns[randSpawn].rx) local ry = tonumber(team.spawns[randSpawn].ry) local rz = tonumber(team.spawns[randSpawn].rz) if xDebug then outputDebugString ( "Spawn Data: spawns size: " .. #team.spawns .. " skin: " .. randSkin .. " x:" .. x .. " y:" .. y .. " z:" .. z .. " rot:" .. rot .. " rx:" .. rx .. " ry:" .. ry .. " zr:" .. rz ) end local playerHasSpawned = getElementData(source, "tdma.playerHasSpawned") if ( playerHasSpawned == false ) then --setCameraMode ( source, "fixed" ) --setTimer ( setCameraPosition, 1000, 1, source, x, y, z + 60 ) --setTimer ( setCameraLookAt, 1000, 1, source, x, y, z ) --setTimer ( setCameraRotation, 1000, source, rot, 0, 0 ) setCameraMatrix( source, x, y, z + 60, x, y, z ) setElementData ( source, "tdma.playerHasSpawned", true ) setTimer ( spawnPlayer, 3000, 1, source, x, y, z, tonumber(rot), tonumber(randSkin), tonumber(gameInterior) ) --spawnPlayer ( source, x,y,z, tonumber(rot), tonumber(randSkin), tonumber(gameInterior) ) else spawnPlayer ( source, x,y,z, tonumber(rot), tonumber(randSkin), tonumber(gameInterior) ) end setCameraInterior ( source, tonumber(gameInterior) ) --setCameraMode ( source, "player" ) setPlayerTeam ( source, team.team ) createBlipAttachedTo ( source, 0, 2, team.red, team.green, team.blue ) --playerSpawned ( source, team ) end function respawnThePlayer ( source, team ) local randSpawn = math.random(1,#team.spawns) local randSkinPicker = math.random(1,#team.skins) local randSkin = tonumber(team.skins[randSkinPicker].id) local x = tonumber(team.spawns[randSpawn].x) + math.random(0,tonumber(team.spawns[randSpawn].rx)) local y = tonumber(team.spawns[randSpawn].y) + math.random(0,tonumber(team.spawns[randSpawn].ry)) local z = tonumber(team.spawns[randSpawn].z) + math.random(0,tonumber(team.spawns[randSpawn].rz)) local rot = tonumber(team.spawns[randSpawn].rot) local rx = tonumber(team.spawns[randSpawn].rx) local ry = tonumber(team.spawns[randSpawn].ry) local rz = tonumber(team.spawns[randSpawn].rz) --outputDebugString ( "Respawning Player " .. getClientName(source) .. " to team " .. team.name ) local spawnComplete = spawnPlayer ( source, x, y, z, tonumber(rot), tonumber(randSkin), tonumber(gameInterior) ) setCameraInterior ( source, tonumber(gameInterior) ) if not ( spawnComplete ) then --Spawn failed, try spawning as CJ? --outputDebugString ( "Respawning Player FAILED - attempting to spawn player " .. getClientName(source) .. " as model CJ[0]") spawnComplete = spawnPlayer ( source, x, y, z, tonumber(rot), 0, tonumber(gameInterior) ) end for k,v in ipairs(team.weapons) do giveWeapon ( source, v.id, v.ammo ) end --playerSpawned ( source, team ) end function destroyBlipsAttachedTo(player) local attached = getAttachedElements ( player ) if ( attached ) then for k,element in ipairs(attached) do if getElementType ( element ) == "blip" then destroyElement ( element ) end end end end function Event_clientScriptLoaded ( player ) if ( player ) then local p_Team = getPlayerTeam(player) if ( p_Team ) then p_TeamName = getTeamName ( p_Team ) p_TeamColorR, p_TeamColorG, p_TeamColorB = getTeamColor ( p_Team ) else --outputChatBox ( "PTeam is bad" ) end --outputChatBox ( "OMG = " .. p_TeamName .. " r=" .. p_TeamColorR .. " g=" .. p_TeamColorG .. " b=" .. p_TeamColorB ) triggerClientEvent ( "Event_showPlayerTheirTeam", player, player, p_TeamName, p_TeamColorR, p_TeamColorG, p_TeamColorB ) end end addEvent ( "Event_clientScriptLoaded", true ) addEventHandler ( "Event_clientScriptLoaded", root, Event_clientScriptLoaded ) function playerSpawned ( ) local player = source -- outputChatBox ( getClientName( player ) .. " SPAWNED" ) --Useful for a later update fadeCamera ( player, true, 1.0, 0, 0, 0 ) spawnProtectionStart ( player ) --setCameraMode ( player, "player" ) setCameraTarget( player, player ) local theTeamID = getElementData( player, "tdma.teamid" ) local theTeam = gameTeams[theTeamID] for k,v in ipairs(theTeam.weapons) do --outputDebugString ( "Attempting to give weapon " .. tostring(v.id) .. " with ammo " .. tostring(v.id) .. " to player " .. getClientName(source) ) giveWeapon ( source, v.id, v.ammo ) end end addEventHandler ( "onPlayerSpawn", root, playerSpawned ) function lockTime () if xDebug2 then outputDebugString ( "Setting game time to " .. gameTimeHour .. ":" .. gameTimeMin ) end setTime ( gameTimeHour, gameTimeMin ) end function getChildren ( root, type ) local elements = getElementsByType ( type ) local result = {} for elementKey,elementValue in ipairs(elements) do if ( getElementParent( elementValue ) == root ) then result[ table.getn( result ) + 1 ] = elementValue end end return result end function setupBases( startedMap ) local gSettings = getElementsByType ( "gamesettings" ) gameInterior = getElementData ( gSettings[1], "interior" ) gameRespawnTime = getElementData ( gSettings[1], "respawntime" ) gameMaxKills = getElementData ( gSettings[1], "maxkills" ) gameFF = getElementData( gSettings[1], "ff" ) local tSettings = getElementsByType ( "gametime" ) --outputDebugString ( "tSettings is " .. tostring(tSettings) ) if tSettings and #tSettings > 0 then local tHour = getElementData ( tSettings[1], "h" ) if ( tHour ) then gameTimeHour = tHour end local tMin = getElementData ( tSettings[1], "m" ) if ( tMin ) then gameTimeMin = tMin end local tLocked = getElementData ( tSettings[1], "locked" ) if ( tLocked ) then gameTimeLocked = tLocked setTimer ( lockTime, 1000, 0 ) if xDebug2 then outputDebugString ( "Timer is Locked" ) end end end if xDebug2 then outputDebugString ( "Timer is " .. tHour .. " " .. tMin .. " locked:" .. tostring(tLocked) ) end if xDebug then outputDebugString ( "Searching base for data" ) end for k,v in ipairs(getElementsByType ( "base" )) do gameTeams[k] = {} gameTeams[k].name = getElementData ( v, "team" ) if xDebug then outputDebugString ( "Creating team " .. gameTeams[k].name ) end gameTeams[k].red = getElementData ( v, "red" ) gameTeams[k].green = getElementData ( v, "green" ) gameTeams[k].blue = getElementData ( v, "blue" ) gameTeams[k].kills = 0 --Weapon Data gameTeams[k].weapons = {} for i,j in ipairs(getChildren ( v, "weapon" )) do gameTeams[k].weapons[i] = {} gameTeams[k].weapons[i].id = getElementData( j, "model" ) gameTeams[k].weapons[i].ammo = getElementData( j, "ammo" ) end --Skins gameTeams[k].skins = {} for i,j in ipairs(getChildren ( v, "skin" )) do gameTeams[k].skins[i] = {} gameTeams[k].skins[i].id = getElementData( j, "model" ) end --Spawns gameTeams[k].spawns = {} for i,j in ipairs(getChildren ( v, "spawn" )) do gameTeams[k].spawns[i] = {} gameTeams[k].spawns[i].x = getElementData ( j, "posX" ) gameTeams[k].spawns[i].y = getElementData ( j, "posY" ) gameTeams[k].spawns[i].z = getElementData ( j, "posZ" ) gameTeams[k].spawns[i].rot = getElementData ( j, "rot" ) gameTeams[k].spawns[i].rx = getElementData ( j, "randx" ) gameTeams[k].spawns[i].ry = getElementData ( j, "randy" ) gameTeams[k].spawns[i].rz = getElementData ( j, "randz" ) end gameTeams[k].team = createTeam( gameTeams[k].name, gameTeams[k].red, gameTeams[k].green, gameTeams[k].blue ) if xDebug then outputDebugString ( "Team created [" .. gameTeams[k].name .. "]" ) end end --Spawn vehicles --<gamevehicle id="NRG500" model="522" posX="-2173.5368652344" posY="681.57989501953" posZ="54.47985458374" rotX="351.66986083984" rotY="69.25244140625" rotZ="168.93634033203" colors="39,106,0,0"/> if xDebug then outputDebugString ( "Searching base for data...DONE" ) end end function updatePlayerInfoBar ( playerID, time, text ) textItemSetText ( getElementData ( playerID, "tdma.status" ), text ) setTimer ( textItemSetText, time, 1, getElementData ( playerID, "tdma.status" ), "" ) end function requestedKillPlayer ( player ) killPed ( player ) end addCommandHandler ( "kill", requestedKillPlayer ) function hasTeamWon( idTeam ) ----outputDebugString ( "Current Kills: " .. gameTeams[idTeam].kills .. " aginst " .. gameMaxKills ) if ( tonumber(gameTeams[idTeam].kills) == tonumber(gameMaxKills) ) then --Yep, won it showTextForAll ( 5000, 0, 0, 255, 1.5, gameTeams[idTeam].name .. " team has won the match!" ) rndTimer = createMissionTimer ( player, 10, "<", 5, 0.45, 0.25, 255, 0, 0, true ) addEventHandler ( "missionTimerActivated", root, tmrRestartRound ) startTimer ( rndTimer ) xonPlayerWasted_Enabled = false --outputChatBox ( "Just about to go into the loop" ) for k,v in ipairs(getElementsByType("player")) do --outputChatBox ( "Im inside the loop, scanning player " .. getClientName(v) ) local pTeam = getPlayerTeam(v) --outputChatBox ( "He is on team " .. tostring(pTeam) .. " - does it match " .. tostring(gameTeams[idTeam].team) .. "?" ) if pTeam ~= gameTeams[idTeam].team then local px, py, pz = getElementPosition(v) --outputChatBox ( "Got player " .. getClientName(v) .. " coords " .. px .. " " .. py .. " " .. pz .. " - boom?" ) createExplosion ( px, py, pz, 0, nil, true, 0, false ) killPed (v) end end --outputChatBox ( "out of the loop now! (did it even get into it?" ) end end function showTextForPlayer ( player, time, red, green, blue, scale, text ) local textDisplay = textCreateDisplay () local textItem = textCreateTextItem ( text, 0.5, 0.5, 2, red, green, blue, 255, scale, "center", "center" ) textDisplayAddText ( textDisplay, textItem ) textDisplayAddObserver ( textDisplay, player ) setTimer(textDestroyTextItem, time, 1, textItem) setTimer(textDestroyDisplay, time, 1, textDisplay) end function showTextForPlayer2 ( player, time, red, green, blue, scale, text ) local textDisplay = textCreateDisplay () local textItem = textCreateTextItem ( text, 0.5, 0.45, 2, red, green, blue, 255, scale, "center", "center" ) textDisplayAddText ( textDisplay, textItem ) textDisplayAddObserver ( textDisplay, player ) setTimer(textDestroyTextItem, time, 1, textItem) setTimer(textDestroyDisplay, time, 1, textDisplay) end function showTextForAll ( time, red, green, blue, scale, text ) local textDisplay = textCreateDisplay () local textItem = textCreateTextItem ( text, 0.5, 0.1, 2, red, green, blue, 255, scale ) textDisplayAddText ( textDisplay, textItem ) local players = getElementsByType( "player" ) for k,v in ipairs(players) do textDisplayAddObserver ( textDisplay, v ) end setTimer(textDestroyTextItem, time, 1, textItem) setTimer(textDestroyDisplay, time, 1, textDisplay) end function onPlayerQuit ( ) destroyBlipsAttachedTo ( source ) setPlayerTeam ( source, nil ) local marker = getElementData( source, "tdma.teamMarker" ) if ( isElement(marker) ) then destroyElement ( marker ) end setElementData ( source, "tdma.teamMarker", nil ) end addEventHandler( "onPlayerQuit", root, onPlayerQuit ) function xonPlayerWasted ( ammo, attacker, weapon, bodypart ) if ( xonPlayerWasted_Enabled ) then local vTeamID = getElementData ( source, "tdma.teamid" ) local vTeam = gameTeams[vTeamID] if not ( vTeam ) then setTimer ( firstSpawn, 3000, 1, source, vTeam ) else local a = setTimer ( respawnThePlayer, 3000, 1, source, vTeam ) if not ( a ) then respawnThePlayer ( source, vTeam ) end end if ( attacker ) then local pTeamID = getElementData ( attacker, "tdma.teamid" ) local pTeam = gameTeams[pTeamID] --Was it a self kill? if ( source ~= attacker and vTeamID ~= pTeamID ) then if ( pTeam ) then updateKills ( attacker, pTeam ) end end end end end addEventHandler ( "onPlayerWasted", root, xonPlayerWasted ) function onChat ( message, theType ) if theType == 0 then cancelEvent() message = string.gsub(message, "#%x%x%x%x%x%x", "") local team = getPlayerTeam ( source ) local bastidName = getPlayerName ( source ) if ( team ) then local r, g, b = getTeamColor ( team ) outputChatBox ( bastidName..":#FFFFFF "..message, getRootElement(), r, g, b, true ) else outputChatBox ( bastidName..": "..message ) end outputServerLog( "CHAT: " .. bastidName .. ": " .. message ) end end addEventHandler ( "onPlayerChat", root, onChat ) function updateKills( idPlayer, idTeam ) if ( tonumber(gameMaxKills) > 0 ) then if xDebug then outputDebugString ( "Kills for team before are: " .. idTeam.kills ) end local teamID = getElementData( idPlayer, "tdma.teamid" ) gameTeams[teamID].kills = gameTeams[teamID].kills + 1 if xDebug then outputDebugString ( "Kills for team " .. idTeam.name .. " updated to " .. gameTeams[teamID].kills ) end textItemSetText ( idTeam.teamText, idTeam.name .. ": " .. gameTeams[teamID].kills .. "/" .. gameMaxKills .. " kills" ) hasTeamWon ( teamID ) end end function tmrRestartRound ( timerID, player ) ----outputDebugString ( "Mission timer has been triggerd, their " .. timerID .. " and " .. rndTimer .. " [timerid/rndtimer]" ) if ( tostring(timerID) == tostring(rndTimer) ) then destroyMissionTimer ( timerID ) --[[for k,v in ipairs(getElementsByType("player")) do end]]-- xonPlayerWasted_Enabled = true for k,v in ipairs(getElementsByType("player")) do setPlayerTeam ( v, nil ) end startGame() if ( tonumber(gameMaxKills) > 0 ) then for k,v in ipairs(gameTeams) do v.kills = 0 textItemSetText ( v.teamText, v.name .. ": 0/" .. gameMaxKills .. " kills" ) textItemSetText ( v.teamText, v.name .. ": 0/" .. gameMaxKills .. " kills" ) end end end end Client Side: addEventHandler ( "onClientGUIClick", War, function () guiSetVisible ( War, false ) showCursor ( false ) triggerServerEvent("spawnWar", localPlayer) end ) عدلت فنكشن onMapLoad إلى function onMapLoad (res) outputChatBox ( "LOADING NEW MAP... PLEASE WAIT" ) mapResource = getResourceRootElement(res) if xDebug then outputDebugString ( "Starting TDMA Main Control Suite" ) end if xDebug then outputDebugString ( "STARTED... Proceeding to load gamemode... WAIT!" ) end ----outputDebugString ( "Setting up Bases" ) setupBases(res) setGameType ("Team Death Match Arena") tdma = createElement("tdmagame") versionDisplay = textCreateDisplay () local versionText = textCreateTextItem ( "Team Death Match Arena v0.9", 0.975, 0.02, "medium", 255, 255, 255, 255, 1, "right" ) textDisplayAddText ( versionDisplay, versionText ) if ( tonumber(gameMaxKills) > 0 ) then local teamText = textCreateTextItem ( "Scores", 0.01, 0.24 + textBoost, "medium", 255,255,255, 255, 1 ) textDisplayAddText ( versionDisplay, teamText ) textBoost = textBoost + 0.020 for k,v in ipairs(gameTeams) do if xDebug2 then outputDebugString ( "**MAKING TEAM KILL TEXTS***" ) end if xDebug2 then outputDebugString ( "**GOT: " .. v.name .. " R:" .. v.red .. " G:" .. v.green .. " B:" .. v.blue ) end local teamName = v.name local teamKills = v.kills teamText = textCreateTextItem ( teamName .. ": " .. teamKills .. "/" .. gameMaxKills .. " kills", 0.01, 0.24 + textBoost, "medium", tonumber(v.red), tonumber(v.green), tonumber(v.blue), 255, 1 ) --setElementParent ( teamText, tdma ) v.teamText = teamText textDisplayAddText ( versionDisplay, teamText ) textBoost = textBoost + 0.015 end end for k,v in ipairs(gameTeams) do if ( gameFF == "on" ) then setTeamFriendlyFire ( v.team, true ) setTeamFriendlyFire ( v.team, true ) else setTeamFriendlyFire ( v.team, false ) setTeamFriendlyFire ( v.team, false ) end end --Start the pickup system from Included\pickup_system.lua initPickupSystem() --Start the vehicle system from Included\vehicle_system.lua initVehicleSystem() ----outputDebugString ( "Starting The Game" ) if xDebug then outputDebugString ( "[[[[[/*****STARTING GAME*****\]]]]]" ) end startGame() end addEventHandler ( "onResourceStart", getRootElement(), onMapLoad) و باقيه نفس المشكله والديبوق يقول ERROR: War\server\War.lua:171: bad argument #2 to 'random' (interval is empty) function firstSpawn ( source ) local thePlayer = source if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " for the very first time" ) end updatePlayerInfoBar ( thePlayer, 5200, "Please wait... Spawning" ) local randTeam = math.random(1,#gameTeams) -- ^^ ذا السطر 171 local foundTeam = nil local foundTeamID = nil local allDone = false local scanPlayerCount = 128 local teamPlayerCount = 0 --outputDebugString ( "scanning teams now for auto assignment" ) for k,v in ipairs(gameTeams) do teamPlayerCount = countPlayersInTeam( v.team ) if ( teamPlayerCount < scanPlayerCount ) then scanPlayerCount = countPlayersInTeam ( v.team ) foundTeam = v foundTeamID = k allDone = true end end if ( allDone ) then if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " (ALLDONE) Team: " .. foundTeam.name ) end spawnThePlayer ( thePlayer, foundTeam ) setElementData ( thePlayer, "tdma.teamid", foundTeamID ) showTextForPlayer ( thePlayer, 5000, tonumber(foundTeam.red), tonumber(foundTeam.green), tonumber(foundTeam.blue), 1.5, "You have been automatically assigned to team " .. foundTeam.name ) --setMarkerColor ( theMarker, tonumber(gameTeams[foundTeamID].red), tonumber(gameTeams[foundTeamID].green), tonumber(gameTeams[foundTeamID].blue), 255 ) setPlayerNametagColor ( thePlayer, gameTeams[foundTeamID].red, gameTeams[foundTeamID].green, gameTeams[foundTeamID].blue ) else --Just select a random team if xDebug then outputDebugString ( "Spawning player " .. getPlayerName(thePlayer) .. " (NO FOUND) Team: " .. gameTeams[randTeam].name ) end spawnThePlayer ( thePlayer, gameTeams[1] ) setElementData ( thePlayer, "tdma.teamid", 1 ) --setMarkerColor ( theMarker, tonumber(gameTeams[1].red), tonumber(gameTeams[1].green), tonumber(gameTeams[1].blue), 255 ) setPlayerNametagColor ( thePlayer, gameTeams[1].red, gameTeams[1].green, gameTeams[1].blue ) end end !!!وش المشكله Link to comment
</Mr.Tn6eL> Posted September 8, 2016 Share Posted September 8, 2016 الماب فيه مشكلة او الماب مانجر Link to comment
Modren Posted September 9, 2016 Author Share Posted September 9, 2016 (edited) انحلت المشكلة باقي شيء بسيط اللي هو يوم يتغير الماب او يشتغل onGamemodeMapStart تتغير شخصية اللاعبين الخارج الديث ماتش!!!! لان اول م يتغير الماب الشخصية تتحول ع شخصية سي جي اضن ذا تدخل من مود اخر Edited September 9, 2016 by Modren Link to comment
kokoseda Posted September 10, 2016 Share Posted September 10, 2016 On 9/8/2016 at 1:54 AM, Modren said: On 9/8/2016 at 1:54 AM, Modren said: 14 hours ago, Modren said: انحلت المشكلة باقي شيء بسيط اللي هو يوم يتغير الماب او يشتغل onGamemodeMapStart تتغير شخصية اللاعبين الخارج الديث ماتش!!!! لان اول م يتغير الماب الشخصية تتحول ع شخصية سي جي اضن ذا تدخل من مود اخر طفي كل المودات + المابات وتأكد ،، إذا جتك شاشة سوداء ( شغل مود اسمه بلاي ) فقط Link to comment
Modren Posted September 10, 2016 Author Share Posted September 10, 2016 6 hours ago, kokoseda said: طفي كل المودات + المابات وتأكد ،، إذا جتك شاشة سوداء ( شغل مود اسمه بلاي ) فقط حطيت المود لحالة بسيرفر جديد وطفيت كل المودات و م نفع اضن الشيء ذا من اللعبه نفسها بس سويت حل مؤقت حطيت شخصية اللاعب بداتا قبل م يتغير الماب Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now