Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Rocketeer Script
- // Pretty simple script to allow admin to use a "rocket" function to fly
- //Author:Mansonh
- #include <a_samp>
- #include <core>
- #include <float>
- #include "../include/gl_common.inc"
- #if !defined INFINITY
- #define INFINITY (Float:0x7F800000)
- #endif
- new
- Float:gPlayerHealth[MAX_PLAYERS],
- godmode[MAX_PLAYERS],
- godCarId[MAX_PLAYERS],
- exptype[MAX_PLAYERS];
- public OnFilterScriptInit( ){
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- godmode[i] = 0;
- exptype[i]=12;
- }
- }
- public OnPlayerUpdate(playerid){
- if(!godmode[playerid]){return 1;}
- new Keys,ud,lr, Float:A;
- GetPlayerKeys(playerid,Keys,ud,lr);
- GetPlayerFacingAngle(playerid, A);
- new Float:N=0, Float:E=0;
- if(A<67.5|| A > 292.5)//North
- {
- N+=1.0;
- }
- if(A<157.5 && A>22.5)//East
- {
- E-=1.0;
- }
- if(A<247.5 && A>112.5)//South
- {
- N-=1.0;
- }
- if(A<337.5 && A>202.5)//West
- {
- E+=1.0;
- }
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z );
- if(ud < 0) {
- //SendClientMessage(playerid, 0xFFFFFFFF, "UP");
- CreateExplosion (X-E, Y-N, Z-1, exptype[playerid], 0.0);
- }
- else if(ud > 0) {
- //SendClientMessage(playerid, 0xFFFFFFFF, "DOWN");
- CreateExplosion (X+E, Y+N, Z-1, exptype[playerid], 0.0);
- }
- if(lr > 0) {
- //SendClientMessage(playerid, 0xFFFFFFFF, "RIGHT");
- CreateExplosion (X-N, Y+E, Z-1, exptype[playerid], 0.0);
- }
- else if(lr < 0) {
- //SendClientMessage(playerid, 0xFFFFFFFF, "LEFT");
- CreateExplosion (X+N, Y-E, Z-1, exptype[playerid], 0.0);
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid,newkeys,oldkeys){
- if(!godmode[playerid]){return 1;}
- if (newkeys & KEY_JUMP){
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z );
- CreateExplosion (X, Y, Z-1.5, exptype[playerid], 0.0);
- CreateExplosion (X+1, Y, Z-0.5, exptype[playerid], 0.0);
- CreateExplosion (X-1, Y, Z-0.5, exptype[playerid], 0.0);
- CreateExplosion (X, Y+1, Z-0.5, exptype[playerid], 0.0);
- CreateExplosion (X, Y-1, Z-0.5, exptype[playerid], 0.0);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[]){
- new cmd[256];
- new idx;
- cmd = strtok(cmdtext, idx);
- //if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
- if( strcmp(cmd, "/help", true) == 0 || strcmp(cmd, "/commands", true) == 0){
- new msg[256];
- format(msg,256,"/fly - turns on rocket mode\n/rocket [1-12] changes type of rocket");
- SendClientMessage(playerid,0xAAAAAAAA,msg);
- return 1;
- }
- if( strcmp(cmd, "/fly", true) == 0){
- new msg[256];
- if(!godmode[playerid])
- {
- godCarId[playerid] = GetPlayerVehicleID( playerid );
- if ( godCarId[playerid] )
- {
- SetVehicleHealth(godCarId[playerid], INFINITY);
- }
- GivePlayerWeapon(playerid,30, 999999);
- GetPlayerHealth(playerid, gPlayerHealth[playerid]);
- SetPlayerHealth(playerid, INFINITY);
- godmode[playerid] = 1;
- format(msg,256,"Godmode On\nControls: direction(wsad), stableizer(KEY_JUMP)\nEnjoy the flight!");
- }else{
- if ( godCarId[playerid] )
- {
- SetVehicleHealth(godCarId[playerid], 100.0);
- }
- godCarId[playerid] = 0;
- GivePlayerWeapon(playerid,30, 0);
- SetPlayerHealth(playerid, gPlayerHealth[playerid]);
- godmode[playerid] = 0;
- format(msg,256,"Godmode Off, see you again soon");
- }
- SendClientMessage(playerid,0xAAAAAAAA,msg);
- return 1;
- }
- if( strcmp(cmd, "/rocket", true) == 0){
- new tmp[256];
- tmp = strtok(cmdtext,idx);
- new type = strval(tmp);
- new msg[256];
- if(type<1 || type>12)
- {
- format(msg,256,"/rocket [1-12] default 12");
- SendClientMessage(playerid,0x990000AA,msg);
- return 1;
- }
- exptype[playerid] = type;
- switch (type)
- {
- case 12:
- {
- format(msg,256,"%d - Default, easy to control, slow",type);
- }
- case 2:
- {
- format(msg,256,"%d - hard to control, very fast, long slow turns",type);
- }
- case 3:
- {
- format(msg,256,"%d - medium control, fast, larger ball",type);
- }
- case 8:
- {
- format(msg,256,"%d - [invisible], relatively easy to control",type);
- }
- case 9:
- {
- format(msg,256,"%d - [invisible], easy to control, slow",type);
- }
- case 11:
- {
- format(msg,256,"%d - easy to control, slow, larger flames",type);
- }
- default:
- {
- format(msg,256,"%d - NOT RECOMMENDED",type);
- }
- }
- SendClientMessage(playerid,0x990000AA,msg);
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement