diff -r 562070d3f978 -r 09beef0752ab share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua Tue Jun 21 22:43:55 2011 +0400 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua Tue Jun 21 20:49:47 2011 +0200 @@ -1,7 +1,7 @@ --------------------------------- --- CAPTURE_THE_FLAG_CUSTOM 0.3 +--------------------------------------- +-- CAPTURE_THE_FLAG GAMEPLAY MODE 0.4 -- by mikade --------------------------------- +--------------------------------------- -- Version History --------- @@ -50,6 +50,17 @@ -- added a check to make sure the player doesn't kamikaze straight down and make the flag's starting point underwater -- added a check to make sure the player drops the flag if he has it and he uses kamikaze +-------- +-- 0.4 +-------- + +-- remove user-branding and version numbers +-- removed some stuff that wasn't needed +-- fix piano strike exploit +-- changed delay to allow for better portals +-- changed starting feedback a little +-- increased the radius around the circle indicating the flag thief so that it doesn't obscure his health + ----------------- --SCRIPT BEGINS ----------------- @@ -188,10 +199,6 @@ end AddCaption(loc("Flag captured!")) - --below line doesnt usually get called - --else - -- now gets called if you go over your own flag, presumably - --AddCaption("Hmm... that wasn't supposed to happen...") end end @@ -227,7 +234,7 @@ fGear[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true) fGearX[i] = fSpawnX[i] fGearY[i] = fSpawnY[i] - --fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip) + fNeedsRespawn[i] = false fIsMissing[i] = false -- new, this should solve problems of a respawned flag being "returned" when a player tries to score AddCaption(loc("Flag respawned!")) @@ -255,12 +262,10 @@ fIsMissing[wtf] = true fNeedsRespawn[wtf] = true HandleRespawns() - --AddCaption("hah??") else --normally fGearX[wtf] = fThiefX[wtf] fGearY[wtf] = fThiefY[wtf] fGear[wtf] = AddVisualGear(fGearX[wtf],fGearY[wtf],vgtCircle,0,true) - --fGear[wtf] = AddVisualGear(fThiefX[wtf],fThiefY[wtf],vgtCircle,0,true) end AddVisualGear(fThiefX[wtf], fThiefY[wtf], vgtBigExplosion, 0, false) @@ -290,8 +295,8 @@ SetVisualGearValues(fGear[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, fGearRad, 2, fCol[i]) end elseif (fIsMissing[i] == true) and (fNeedsRespawn[i] == false) then - if fThief[i] ~= nil then -- draw circle round flag carrier - SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 33, 3, fCol[i]) + if fThief[i] ~= nil then -- draw circle round flag carrier -- 33 + SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 50, 3, fCol[i]) --AddCaption("circle marking carrier") elseif fThief[i] == nil then -- draw cirle round dropped flag --g1X,g1Y,g4,g5,g6,g7,g8,g9,g10,g11 = GetVisualGearValues(fGear[i]) @@ -419,8 +424,6 @@ --SetVisualGearValues(zxc, 1000,1000, 20, 100, 0, 10, 1, 100, 5, GetClanColor(0)) SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 20, 100, 0, 10, 0, 75, 5, fCol[i]) - --SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 20, 0, 10, 0, 33, 3, fCol[i]) - end @@ -432,12 +435,9 @@ function onGameInit() - -- Things we don't modify here will use their default values. - GameFlags = band(bor(GameFlags, gfDivideTeams), bnot(gfKing + gfForts)) - SuddenDeathTurns = 99 -- suddendeath is off, effectively - --TurnTime = 30000 -- (was 30) The time the player has to move each round (in ms) - --Delay = 10 -- The delay between each round + SuddenDeathTurns = 999 -- suddendeath is off, effectively + Delay = 10 end @@ -445,7 +445,7 @@ function onGameStart() --ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0) - ShowMission(loc("CAPTURE THE FLAG"), loc("by mikade"), loc("CUSTOM BUILD 0.2"), 0, 0) + ShowMission(loc("CAPTURE THE FLAG"), loc("Flags, and their home base will be placed where each team ends their first turn."), "", 0, 0) RebuildTeamInfo() @@ -484,7 +484,7 @@ HandleRespawns() --new method of placing starting flags elseif gameTurns == 1 then - ShowMission(loc("CAPTURE THE FLAG"), loc("Flags will be placed where each team ends their turn."), "", 0, 0) + ShowMission(loc("CAPTURE THE FLAG"), loc("Flags, and their home base will be placed where each team ends their first turn."), "", 0, 0) elseif gameTurns == 2 then fPlaced[0] = true ShowMission(loc("CAPTURE THE FLAG"), loc("RULES OF THE GAME [Press ESC to view]"), loc(" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"), 0, 0) @@ -562,16 +562,21 @@ end -function onGearDamage(gear, damage) --- -end - function onGearAdd(gear) if GetGearType(gear) == gtHedgehog then hhs[numhhs] = gear numhhs = numhhs + 1 SetEffect(gear, heResurrectable, true) + + elseif GetGearType(gear) == gtPiano then + + for i = 0, 1 do + if CurrentHedgehog == fThief[i] then + FlagThiefDead(gear) + end + end + end end @@ -579,7 +584,6 @@ function onGearDelete(gear) if GetGearType(gear) == gtHedgehog then - --AddCaption("gear deleted!") for i = 0, (numhhs-1) do if gear == hhs[i] then @@ -588,8 +592,7 @@ FlagThiefDead(gear) end end - hhs[i] = nil - --AddCaption("for real") + hhs[i] = nil end end end