| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- CMD:createfire( playerid, params[] ) {
- if( PlayerInfo[playerid][pAdmin] >= 3 ) {
- new
- Float:amo, type, Float:x, Float:y, Float:z;
-
- if( sscanf( params, "df", type, amo ) ) {
- return SendClientMessage( playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /createfire [type (1 = small, 2 = medium, 3 = large)] [up/down amount]" );
- }
- if( !IsValidFireType(type) ) {
- return SendClientMessage(playerid, COLOR_GREY, "Uhoh! This isn't a valid fire type. Valid types include 1: small, 2: medium, 3: large." );
- }
- GetPlayerPos( playerid, x, y, z );
- new vw = GetPlayerVirtualWorld(playerid);
- new int = GetPlayerInterior(playerid);
- new slot = CreateFire(type, x, y, z, amo, vw, int);
-
- new string[144];
- format( string, 144, "You have successfully created fire, with fire ID: %d.", slot );
- SendClientMessage( playerid, COLOR_YELLOW, string );
- return 1;
- }
- return 1;
- }
- /*
- CMD:createfirecircle(playerid, params[]) {
- if(PlayerInfo[playerid][pAdmin] >= 3) {
- new Float:radius;
- if(sscanf(params, "f", radius)) {
- return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /createfirecircle [radius]");
- }
- if(radius > 10.0) {
- return SendClientMessage(playerid, COLOR_GREY, "The radius cannot be bigger than 10.0 units.");
- }
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x, y, z);
- x -= radius;
- y -= radius;
- new Float:angle = acos(
- (2*floatpower(radius,2) - (floatpower(2.4, 2)))/(2*(2*radius))
- );
- for(new i; i < 360; i += angle) {
- x += (radius * -floatsin((i), degrees));
- y += (radius * -floatcos((i), degrees));
- CreateFire(FIRE_LARGE, x, y, z, -2.5);
- }
- SendClientMessage(playerid, COLOR_GREY, "You light a circle of fire, if some aren't appearing, the fire limit may have been reached.");
- }
- return 1;
- }*/
- CMD:createfireline(playerid, params[]) {
- if(PlayerInfo[playerid][pAdmin] >= 3) {
- new Float:length;
- if(sscanf(params, "f", length)) {
- return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /createfireline [length]");
- }
- if( length > 10 ) {
- return SendClientMessage(playerid, COLOR_GREY, "The length cannot be greater than 10.0 units.");
- }
- new Float:angle;
- GetPlayerFacingAngle(playerid, angle);
- new Float:dir_x = (2.4 * -floatsin((angle), degrees));
- new Float:dir_y = (2.4 * -floatcos((angle), degrees));
- new Float:x, Float:y, Float:z;
- new vw = GetPlayerVirtualWorld(playerid);
- new int = GetPlayerInterior(playerid);
- GetPlayerPos(playerid, x, y, z);
- for(new i; i < length; i++) {
- x += dir_x;
- y += dir_y;
- CreateFire(FIRE_LARGE, x, y, z, -2.5, vw, int );
- }
- SendClientMessage(playerid, COLOR_GREY, "You light a line of fire. If some aren't appearing the fire limit may have been reached.");
- }
- return 1;
- }
- CMD:lightfire(playerid, params[]) //only source for players to place fires
- {
- if(IsAtEvent[playerid])
- return SendClientMessage(playerid, COLOR_GREY, "You cannot do this right now.");
- if(PlayerInfo[playerid][pJailed])
- return SendClientMessage(playerid, COLOR_GREY, "You cannot do this right now.");
- if(pInHospital[playerid])
- return SendClientMessage(playerid, COLOR_GREY, "You cannot do this right now.");
- if(pDeathState[playerid] == PLAYER_STATE_REVIVE)
- return SendClientMessage(playerid, COLOR_GREY, "You cannot do this right now.");
- if(IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You cannot light fires in vehicles.");
- if(!(PlayerCuffed[playerid] == 0 || PlayerInfo[playerid][pJailed] > 0 || inPaintball[playerid] != 0))
- return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You cannot light a fire right now.");
- if(GetPlayerInterior(playerid) != 0)
- return SendClientMessage(playerid, COLOR_GREY, "You cannot place camp fires inside interiors.");
- if(GetPlayerVirtualWorld(playerid) != 0) {
- return SendClientMessage(playerid, COLOR_GREY, "You cannot place camp fires inside other virtual worlds.");
- }
- new firetype[10], string[128];
- if (sscanf(params, "s[10]", firetype)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /lightfire [camp]");
- new
- Float:player_x, Float:player_y, Float:player_z, Float:player_facing;
- GetPlayerPos(playerid, player_x, player_y, player_z);
- if(strmatch("camp", firetype))
- {
- if(PlayerInfo[playerid][pMatches] > 0)
- {
- new Float:fpos[3];
- for(new i = 0; i < MAX_FIRES; i++)
- {
- GetFirePos(i, fpos[0], fpos[1], fpos[2]);
- if(GetFireOwner(i) == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You can only place one fire.");
- if(IsPlayerInRangeOfPoint(playerid, 50.0, fpos[0], fpos[1], fpos[2]))
- return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} There is a fire already within 50 metres.");
- //otherwise create a new fire.
- if(!IsValidFire(i)) {
- SetPlayerSpecialAction(playerid, 0);
- ApplyAnimationEx(playerid, "CARRY", "putdwn", 3.0, 0, 0, 0, 0, 0, 0);
- GetPlayerFacingAngle(playerid, player_facing);
- player_x += (2.0 * -floatsin((-player_facing -180), degrees));
- player_y += (2.0 * -floatcos((-player_facing - 180), degrees));
- CreateFire(FIRE_CAMP, player_x, player_y, player_z, -2.5, 0, 0);
- SetFireOwner(i, playerid);
- PlayerInfo[playerid][pMatches]--;
- format(string, sizeof(string), "* %s kneels down and lights a fire.", PlayerICName(playerid));
- ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
- SetTimerEx("OnPlayerPlaceFire", 3000, 0, "i", playerid);
- return 1;
- }
- }
- return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} max fires reached.");
- } else return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You don't have any matches.");
- }
- /*else if(strmatch("big", firetype))
- {
- //restrictions
- if(PlayerInfo[playerid][pLevel] < 5)
- return SendClientMessage(playerid, COLOR_GREY, "You must be at least level 5 to light out of control fires.");
- if(PlayerInfo[playerid][pJerrycan] < 10 || PlayerInfo[playerid][pMatches] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "You must have a Jerry Can with at least 10 litres of diesel, and matches.");
- //user stuff - animations ect
- new fire_count = 2;
- for(new i = 0; i < MAX_FIRES; i++)
- {
- if(!IsValidFire(i))
- {
- GetPlayerFacingAngle(playerid, player_facing);
- player_x += (2.9 + random(2) * -floatsin((-(player_facing - 180)), degrees));
- player_y += (2.9 + random(2) * -floatcos((-(player_facing - 180)), degrees));
- CreateFire(FIRE_LARGE, player_x, player_y, player_z, -2.3);
- SetFireVirtualWorld(i, GetPlayerVirtualWorld(playerid));
- fire_count--;
- PlayerInfo[playerid][pMatches]--;
- if(fire_count == 0)
- {
- format(str, sizeof(str), "* %s spreads diesel gas around using their Jerry Can and lights it.", PlayerICName(playerid));
- ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
- SetPlayerSpecialAction(playerid, 0);
- ApplyAnimationEx(playerid, "CARRY", "putdwn", 3.0, 0, 0, 0, 0, 0, 0);
- //placing fire, setting variables
- PlayerInfo[playerid][pJerrycan] = PlayerInfo[playerid][pJerrycan] - 10;
- return 1;
- }
- }
- }
- SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Max fires has been reached !");
- }*/
- else
- SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /lightfire [camp]");
- return 1;
- }
|