diff --git a/gamemodes/barron.pwn b/gamemodes/barron.pwn deleted file mode 100644 index ad19f5a..0000000 --- a/gamemodes/barron.pwn +++ /dev/null @@ -1,264 +0,0 @@ -// -// RC BARNSTORM - A demonstration vehicle vs vehicle script for SA-MP 0.2 -// -- by kyeman (SA-MP team) 2007 -// -// This script demonstrates the following :- -// - An automatic vehicle observer mode switchable via a key press. -// - Text drawing and the use of GTA ~k~ key constants. -// - Use of RC vehicles -// - Dynamic creation and destruction of vehicles -// - The OnPlayerKeyStateChange event/callback and determining -// if a key has just been pressed. -// - Bypassing SA-MP's class selection with SetSpawnInfo - -#include -#include -#include - -new gPlayerVehicles[MAX_PLAYERS]; // the vehicleid for the active playerid -new gPlayerObserving[MAX_PLAYERS]; // player observing which active player -new Text:txtObsHelper; - -new Float:gSpawnPositions[26][4] = { // positions where players in vehicles spawn -{-205.7703,-119.6655,2.4094,342.0546}, -{-202.1386,-54.1213,2.4111,95.6799}, -{-197.2334,7.5293,2.4034,16.0852}, -{-135.7348,61.7265,2.4112,354.3534}, -{-73.7883,73.4238,2.4082,260.5399}, -{-6.9850,27.9988,2.4112,201.7691}, -{0.6782,-16.0898,2.4076,161.7720}, -{-46.3365,-88.3937,2.4092,180.7382}, -{-72.4389,-127.2939,2.4107,113.5616}, -{-128.1940,-144.1725,2.4094,78.9676}, -{-266.0189,-50.6718,2.4125,223.8079}, -{-244.2617,-1.0468,2.1038,257.3333}, -{-93.3146,-32.4889,2.4085,186.0631}, -{-130.7054,-93.4983,2.4124,73.8375}, -{-117.4049,4.2989,2.4112,337.1284}, -{-26.1622,135.8739,2.4094,248.1580}, -{45.5705,86.7586,2.0753,147.3342}, -{54.9881,2.2997,1.1132,95.7173}, -{-248.9905,-119.3982,2.4083,303.7859}, -{-60.1321,55.5239,2.4038,325.2209}, -{-60.9184,47.9302,5.7706,342.8299}, -{-70.0303,-22.0071,2.4113,165.2789}, -{-138.3093,-83.2640,2.4152,4.0455}, -{-25.5989,94.6100,2.4041,150.8322}, -{-161.0327,-70.5945,2.4042,142.9221}, -{-54.8308,-139.6148,2.4119,258.7639} -}; - -//------------------------------------------------------------------------------------------------------ - -main() -{ - print("Running: RC BARNSTORM by kyeman 2007"); -} - -//------------------------------------------------ -// ObserverSwitchToNextVehicle -// Will increment the current observed player -// until it finds a new player with an active vehicle. - -ObserverSwitchToNextVehicle(playerid) -{ - new x=0; - while(x!=MAX_PLAYERS) { // MAX_PLAYERS iterations - gPlayerObserving[playerid]++; - if(gPlayerObserving[playerid] == MAX_PLAYERS) { - // we need to cycle back to the start - gPlayerObserving[playerid] = 0; - } - // see if the target player has a vehicle, - // if so assign this player to observe it - if(gPlayerVehicles[gPlayerObserving[playerid]] != 0) { - PlayerSpectateVehicle(playerid,gPlayerVehicles[gPlayerObserving[playerid]]); - return; - } - x++; - } - // didn't find any vehicles to observe. we'll have to default to last - PlayerSpectateVehicle(playerid,gPlayerVehicles[gPlayerObserving[playerid]]); -} - -//------------------------------------------------ -// IsKeyJustDown. Returns 1 if the key -// has just been pressed, 0 otherwise. - -IsKeyJustDown(key, newkeys, oldkeys) -{ - if((newkeys & key) && !(oldkeys & key)) return 1; - return 0; -} - -//------------------------------------------------ - -public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) -{ - if(gPlayerObserving[playerid] >= 0 && IsKeyJustDown(KEY_SPRINT,newkeys,oldkeys)) { - // They're requesting to spawn, so take them out of observer mode - // this will cause them to spawn automatically, using the SpawnInfo - // we previously forced upon them during OnPlayerRequestClass - TogglePlayerSpectating(playerid,0); - gPlayerObserving[playerid] = (-1); - SendClientMessage(playerid,0xFFFFFFFF,"Leaving spectate"); - return; - } - - if(gPlayerObserving[playerid] >= 0 && IsKeyJustDown(KEY_FIRE,newkeys,oldkeys)) { - // They're requesting to change observer to another vehicle. - ObserverSwitchToNextVehicle(playerid); - } -} - -//------------------------------------------------ - -public OnPlayerConnect(playerid) -{ - GameTextForPlayer(playerid,"~w~SA-MP: ~r~RC Barnstorm",5000,5); - - return 1; -} - -//------------------------------------------------ - -public OnPlayerDisconnect(playerid) -{ - if(gPlayerVehicles[playerid]) { - // Make sure their vehicle is destroyed when they leave. - DestroyVehicle(gPlayerVehicles[playerid]); - gPlayerVehicles[playerid] = 0; - } - return 0; -} - -//------------------------------------------------ -//rcbarron = 464 - -public OnPlayerSpawn(playerid) -{ - // Create their own vehicle and put them in - gPlayerVehicles[playerid] = CreateVehicle(464, - gSpawnPositions[playerid][0], - gSpawnPositions[playerid][1], - gSpawnPositions[playerid][2], - gSpawnPositions[playerid][3], - -1,-1,10); - - PutPlayerInVehicle(playerid,gPlayerVehicles[playerid],0); - //ForceClassSelection(playerid); // for next time they respawn - TextDrawHideForPlayer(playerid, txtObsHelper); - SetPlayerWorldBounds(playerid,200.0,-300.0,200.0,-200.0); - return 1; -} - -//------------------------------------------------ - -public OnPlayerDeath(playerid, killerid, reason) -{ - // We need to cleanup their vehicle - RemovePlayerFromVehicle(gPlayerVehicles[playerid]); - DestroyVehicle(gPlayerVehicles[playerid]); - gPlayerVehicles[playerid] = 0; - - // Send the death information to all clients - SendDeathMessage(killerid,playerid,reason); - - // If anyone was observing them, they'll have to switch to the next - new x=0; - while(x!=MAX_PLAYERS) { - if(x != playerid && gPlayerObserving[x] == playerid) { - ObserverSwitchToNextVehicle(x); - } - x++; - } - - return 1; -} - -//------------------------------------------------ - -public OnPlayerRequestClass(playerid, classid) -{ - // put them straight into observer mode, effectively - // bypassing class selection. - TogglePlayerSpectating(playerid,1); - ObserverSwitchToNextVehicle(playerid); - TextDrawShowForPlayer(playerid, txtObsHelper); - - // also force this dud spawn info upon them so that they - // have spawn information set. - SetSpawnInfo(playerid,0,0, - gSpawnPositions[playerid][0], - gSpawnPositions[playerid][1], - gSpawnPositions[playerid][2], - gSpawnPositions[playerid][3], - -1,-1,-1,-1,-1,-1); - - return 0; -} - -//------------------------------------------------ - -public OnGameModeInit() -{ - SetGameModeText("RC Barnstorm"); - - // General settings for the gamemode - ShowPlayerMarkers(0); - ShowNameTags(1); - SetWorldTime(7); - SetWeather(5); - - // Add a dud player class - AddPlayerClass(0,0.0,0.0,4.0,0.0,-1,-1,-1,-1,-1,-1); - - // Init our globals - new x=0; - while(x!=MAX_PLAYERS) { - gPlayerVehicles[x] = 0; - gPlayerObserving[x] = (-1); - x++; - } - - // Init our observer helper text display - txtObsHelper = TextDrawCreate(20.0, 400.0, - "Press ~b~~k~~PED_SPRINT~ ~w~to spawn~n~Press ~b~~k~~PED_FIREWEAPON~ ~w~to switch players"); - TextDrawUseBox(txtObsHelper, 0); - TextDrawFont(txtObsHelper, 2); - TextDrawSetShadow(txtObsHelper,0); - TextDrawSetOutline(txtObsHelper,1); - TextDrawBackgroundColor(txtObsHelper,0x000000FF); - TextDrawColor(txtObsHelper,0xFFFFFFFF); - - return 1; -} - -//------------------------------------------------ - -public OnPlayerUpdate(playerid) -{ - /* - new Keys,ud,lr; - - if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) { - GetPlayerKeys(playerid,Keys,ud,lr); - if(ud > 0) { - SendClientMessage(playerid, 0xFFFFFFFF, "DOWN"); - } - else if(ud < 0) { - SendClientMessage(playerid, 0xFFFFFFFF, "UP"); - } - - if(lr > 0) { - SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT"); - } - else if(lr < 0) { - SendClientMessage(playerid, 0xFFFFFFFF, "LEFT"); - } - }*/ - - return 1; -} - -//------------------------------------------------