#include #define PRICE_BANDIT 500 //price of RcBandit |change to the value the vehicle should cost #define PRICE_TIGER 1500 //price of RcTiger |change to the value the vehicle should cost #define TIGER_RADIUS 8 //the spread of the tiger #define TIGER_RANGE 60 //the distance the tiger can shot; new Float:x2[MAX_PLAYERS]; new Float:y2[MAX_PLAYERS]; new Float:z2[MAX_PLAYERS]; new Float:a2[MAX_PLAYERS]; new VSpCo[MAX_VEHICLES]; new IsPlayerInMission[MAX_PLAYERS]; new Menu:RcMenu; new Text:ExplainBandit; new Text:ExplainTiger; public OnFilterScriptInit() { print(" _______________________"); print("| |"); print("| _ _ _ _ _ _ _ _ |"); print("| | | |"); print("| |RcAmok by Jack | |"); print("| |_ _ _ _ _ _ _ _| |"); print("| |"); print("|_______________________|"); //Menu RcMenu=CreateMenu("Chose your vehicle",2,5.0,250.0,120.0,150.0); if(IsValidMenu(RcMenu)) { SetMenuColumnHeader(RcMenu,0,"Vehicle"); SetMenuColumnHeader(RcMenu,1,"Price"); //bandit AddMenuItem(RcMenu,0,"RcBandit"); new bandit[255]; format(bandit,255,"%d",PRICE_BANDIT); AddMenuItem(RcMenu,1,bandit); //tiger AddMenuItem(RcMenu,0,"RcTiger"); new tiger[255]; format(tiger,255,"%d",PRICE_TIGER); AddMenuItem(RcMenu,1,tiger); //bla //textdraws //bandit ExplainBandit=TextDrawCreate(465.0,100.0,"[Strg/Ctrl]- Selfdestruction"); TextDrawTextSize(ExplainBandit, 655, 3); TextDrawSetShadow(ExplainBandit, 0); TextDrawFont(ExplainBandit, 1); TextDrawSetOutline(ExplainBandit,1); TextDrawColor(ExplainBandit, 0xe42f42ff); TextDrawLetterSize(ExplainBandit, 0.35, 1); TextDrawSetProportional(ExplainBandit, 1); TextDrawHideForAll(ExplainBandit); //tiger ExplainTiger=TextDrawCreate(465.0,100.0,"[Strg/Ctrl]- Selfdestruction [H] - Use Cannon"); TextDrawSetShadow(ExplainTiger, 0); TextDrawFont(ExplainTiger, 1); TextDrawSetOutline(ExplainTiger,1); TextDrawColor(ExplainTiger, 0xe42f42ff); TextDrawLetterSize(ExplainTiger, 0.35, 1); TextDrawSetProportional(ExplainTiger, 1); TextDrawTextSize(ExplainTiger, 655, 3); TextDrawHideForAll(ExplainTiger); for (new i = 0; i < MAX_PLAYERS; i++) { HideMenuForPlayer(RcMenu,i); } } return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { //rc Kamikaze if(newkeys==1) { if(GetVehicleModel(GetPlayerVehicleID(playerid))==441||GetVehicleModel(GetPlayerVehicleID(playerid))==564) { IsPlayerInMission[playerid]=0; new Float:x,Float:y,Float:z; new vehicleid = GetPlayerVehicleID(playerid); GetVehiclePos(vehicleid,x,y,z); new timer; RemovePlayerFromVehicle(playerid); TextDrawHideForPlayer(playerid, ExplainBandit); TextDrawHideForPlayer(playerid, ExplainTiger); SetPlayerCameraPos(playerid,x+14,y+20,z+10); SetPlayerCameraLookAt(playerid,x,y,z); while(timer<4) { if(timer==0) { SetPlayerPos(playerid,x2[playerid],y2[playerid],z2[playerid]); SetPlayerFacingAngle(playerid,a2[playerid]); CreateExplosion(x,y,z,2,1.5); } if(timer==2) { VSpCo[vehicleid]=1; SetVehicleToRespawn(vehicleid); } if(timer==3) { SetCameraBehindPlayer(playerid); } timer++; Wait(1000); } } } //rc tigerKanone if(newkeys==2) { if(GetVehicleModel(GetPlayerVehicleID(playerid))==564) { new Float:x,Float:y,Float:z,Float:vx,Float:vy,Float:a; new vehicleid = GetPlayerVehicleID(playerid); GetVehiclePos(vehicleid,x,y,z); GetVehicleZAngle(vehicleid,a); for (new r = 10; r < TIGER_RANGE; r++) { vx = x + (r * floatsin(-a, degrees)); vy = y + (r * floatcos(-a, degrees)); if(GetPlayersOnline()==1) { vx = x + (40 * floatsin(-a, degrees)); vy = y + (40 * floatcos(-a, degrees)); CreateExplosion(vx,vy,z+0.5,2,1.0); } for (new i = 0; i < MAX_PLAYERS; i++) { if((i!=playerid)&&(IsPlayerConnected(i)==1)) { //target(s) in range if(IsPlayerInSphere(i,vx,vy,z,TIGER_RADIUS)==1) { new Float:dis,Float:dis2,player; new pteam[MAX_PLAYERS]; player = -1; dis = 99999.99; dis2 = GetDistanceBetweenPlayers(i,playerid); if (dis2 < dis && dis2 != -1.00 && pteam[i] == pteam[playerid]) { dis = dis2; player = i; new Float:px,Float:py,Float:pz; GetPlayerPos(player,px,py,pz); CreateExplosion(px,py,pz+0.5,2,1.0); } } //noone hitable else if(IsPlayerInSphere(i,vx,vy,z,TIGER_RADIUS)==0) { vx = x + (40 * floatsin(-a, degrees)); vy = y + (40 * floatcos(-a, degrees)); CreateExplosion(vx,vy,z+0.5,2,1.0); } } } } } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerInMission[playerid]==1) { TextDrawHideForPlayer(playerid,ExplainBandit); TextDrawHideForPlayer(playerid,ExplainTiger); } return 1; } public OnVehicleSpawn(vehicleid) { if(GetVehicleModel(vehicleid)==441||GetVehicleModel(vehicleid)==564) { if(VSpCo[vehicleid]>0) { SetVehiclePos(vehicleid,10000.0,10000.0,0.0); DestroyVehicle(vehicleid); VSpCo[vehicleid]=0; } } return 1; } public OnVehicleDeath(vehicleid, killerid) { if(GetVehicleModel(vehicleid)==441||GetVehicleModel(vehicleid)==564) { VSpCo[vehicleid]++; } return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate==PLAYER_STATE_PASSENGER) { new vehicle =GetPlayerVehicleID(playerid); if(GetVehicleModel(vehicle)==459) { RemovePlayerFromVehicle(playerid); new Float:x,Float:y,Float:z,Float:vx,Float:vy,Float:a; GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z); GetVehicleZAngle(GetPlayerVehicleID(playerid),a); vx = x + (4.5 * floatsin(-a-180, degrees)); vy = y + (4.5 * floatcos(-a-180, degrees)); x2[playerid]=vx; y2[playerid]=vy; z2[playerid]=z; a2[playerid]=a-180; new timer; while (timer < 2) { if(timer==1) { ShowMenuForPlayer(RcMenu,playerid); TogglePlayerControllable(playerid, 0); } timer++; Wait(1000); } } } return 1; } stock OnRcMissionStartBandit(playerid,Float:x,Float:y,Float:z,Float:a) { IsPlayerInMission[playerid]=1; SetPlayerPos(playerid,0.0,0.0,500.0); CreateVehicle(441,x,y,z,a,-1,-1,0); for (new c = 0; c < MAX_VEHICLES; c++) { if(GetVehicleModel(c)==441) { if(!(c==INVALID_VEHICLE_ID)) { if(VSpCo[c]==0) { PutPlayerInVehicle(playerid,c,0); VSpCo[c]=1; new timer; while (timer<4) { if (timer==0) { GameTextForPlayer(playerid,"~r~~h~~h~~h~3",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==1) { GameTextForPlayer(playerid,"~r~~h~2",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==2) { GameTextForPlayer(playerid,"~r~1",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==3) { GameTextForPlayer(playerid,"~l~Amok",990,3); TogglePlayerControllable(playerid,1); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); TextDrawShowForPlayer(playerid,ExplainBandit); } timer++; Wait(1000); } } } } } } stock OnRcMissionStartTiger(playerid,Float:x,Float:y,Float:z,Float:a) { IsPlayerInMission[playerid]=1; SetPlayerPos(playerid,0.0,0.0,500.0); CreateVehicle(564,x,y,z,a,-1,-1,0); for (new c = 0; c < MAX_VEHICLES; c++) { if(GetVehicleModel(c)==564) { if(!(c==INVALID_VEHICLE_ID)) { if(VSpCo[c]==0) { PutPlayerInVehicle(playerid,c,0); VSpCo[c]=1; new timer; while (timer<4) { if (timer==0) { GameTextForPlayer(playerid,"~r~~h~~h~3",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==1) { GameTextForPlayer(playerid,"~r~~h~2",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==2) { GameTextForPlayer(playerid,"~r~1",990,3); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); } if (timer==3) { GameTextForPlayer(playerid,"~l~Amok",990,3); TogglePlayerControllable(playerid,1); TextDrawShowForPlayer(playerid,ExplainTiger); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); } timer++; Wait(1000); } } } } } } public OnPlayerSelectedMenuRow(playerid, row) { if(GetPlayerMenu(playerid)==RcMenu) { switch (row) { //bandit case 0: { new timer; while(timer<3) { TogglePlayerControllable(playerid,0); if(timer==2) { if(GetPlayerMoney(playerid)>PRICE_BANDIT-1) { OnRcMissionStartBandit(playerid,x2[playerid],y2[playerid],z2[playerid],a2[playerid]); GivePlayerMoney(playerid,-PRICE_BANDIT); } else{ PlayerPlaySound(playerid,1053,0.0,0.0,0.0); TogglePlayerControllable(playerid,1); } } Wait(1000); timer++; } } //tiger case 1: { new timer; while(timer<3) { TogglePlayerControllable(playerid,0); if(timer==2) { if(GetPlayerMoney(playerid)>PRICE_TIGER-1) { OnRcMissionStartTiger(playerid,x2[playerid],y2[playerid],z2[playerid],a2[playerid]); GivePlayerMoney(playerid,-PRICE_TIGER); } else{ PlayerPlaySound(playerid,1053,0.0,0.0,0.0); TogglePlayerControllable(playerid,1); } } Wait(1000); timer++; } } } } return 1; } public OnPlayerExitedMenu(playerid) { TogglePlayerControllable(playerid,1); return 1; } stock Wait(time){ //By [sry,i forgot the name :S] new stamp = tickcount(); while (tickcount() - stamp < time){} return 1; } stock GetDistanceBetweenPlayers(playerid, playerid2) //By Slick { new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3; new Float:dis; GetPlayerPos(playerid,x1,y1,z1); GetPlayerPos(playerid2,x3,y3,z3); dis = floatsqroot((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1)+(z3-z1)*(z3-z1)); return floatround(dis); } stock IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius) //By Sacky { if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius) { return 1; } return 0; } stock GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z) //By Sacky { new Float:x1,Float:y1,Float:z1; new Float:dis; GetPlayerPos(playerid,x1,y1,z1); dis = floatsqroot((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1)); return floatround(dis); } stock GetPlayersOnline() // By Luby { new Ile; new g; while(g