[FilterScript] Air Bomb
#1

Boas pessoal jб alguns dias fiz um filterscript, eu achei muito interessante pois usei um plugin MapAndreas o que ele faz й muito simples, ele pega a coordenada Z dinamicamente usando um mapa com nнveis de altura, vocк deverб fazer o download AQUI.

Cуdigo:

pawn Code:
/*
 _____   _   _____      _____   _____   ___   ___   _____
|  _  | | | |  _  |    |  _  | |  _  | |   | |   | |  _  |
| |_| | | | | |_| |    | |_| | | | | | |   |_|   | | |_| |
|  _  | | | |  _  \    |  _  \ | | | | |  _   _  | |  _  \
| | | | | | | | | |    | |_| | | |_| | | | | | | | | |_| |
|_| |_| |_| |_| |_|    |_____| |_____| |_| |_| |_| |_____|

..-=====-...-=====-...-=====-...-=====-...-=====-...-=====-..

Todos os creditos reservados, deixe os creditos nos devidos locais, nгo necessita de colocar em /creditos
Basta deixar no main() ou OnFilterScriptInit...

Aviso: Este filterscript usa o plugin MapAndreas, vocк necessita de fazer o download do mesmo.

Autor do projeto: BlueX , Agradecimento: Kalcor & Mauzen pelo MapAndreas

*/

#define FILTERSCRIPT

#define FS_V "v1"
#define FS_C "BlueX"
#define FS_D "18/4/2012"
#define FS_SOLTS (500) //Info: Edite os solts do seu servidor como logico.
#define FS_AMMO (25) //Info: Edite o mбximo de misseis para cada aviгo

#include <a_samp>
#include <mapandreas>
#include <zcmd>

#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

new bomb[FS_SOLTS];
new ammo[MAX_VEHICLES] = FS_AMMO;
public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    printf(" AIR BOMB %s",FS_V);
    printf(" CREDITOS: %s",FS_C);
    printf(" SOLTS: %d",FS_SOLTS);
    printf(" Lanзamento: %s",FS_D);
    print("--------------------------------------\n");
    MapAndreas_Init(MAP_ANDREAS_MODE_FULL);
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_FIRE)){
        cmd_fire(playerid);
    }
    return 1;
}
CMD:fire(playerid){
    if(IsPlayerInAnyVehicle(playerid)){
            new Float:X,Float:Y,Float:Z,Float:A, car = GetPlayerVehicleID(playerid),model = GetVehicleModel(car);
        if(ammo[car] == 0) return SendClientMessage(playerid,-1,"sem muniзгo, use /ammo");
        if(model != 553) return 1;
        GetPlayerPos(playerid,X,Y,Z);
        GetVehicleZAngle(GetPlayerVehicleID(playerid),A);
        bomb[playerid] = CreateObject(345,X,Y,Z,A,0,0,0.0);
       
        MapAndreas_FindZ_For2DCoord(X,Y,Z);
        MoveObject(bomb[playerid],X,Y,Z,100.0,A,0.0,0.0);
        CreateExplosion(X,Y,Z,10,20.0);
        ammo[car] --;
        DestroyObject(bomb[playerid]);
    }
    return 1;
}
//Info: Comando usado para largar bombas, vocк tanto pode usar a key FIRE(ALT) como pode usar o comando /fire

CMD:ammo(playerid){
    new car = GetPlayerVehicleID(playerid);
    //if(IsPlayerInRangeOfPoint(playerid,10.0,X,Y,Z)){ ammo[car] = FS_AMMO };
    ammo[car] = 25;
    return 1;
}

//Info: Vocк pode colocar o comando /ammo a funcionar em uma determinada area basta alterar o X, Y e o Z
    //Lembrando que se vocк quiser usar IsPlayerInRangeOfPoint terб que eleminar o ammo[car] que estб aqui em baixo.


/*CMD:nevada(playerid){
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    CreateVehicle(553,X,Y,Z+1,0,1,2,10000);
    return 1;
}*/


//Info: Este comando serve para criar um nevada que й o veiculo que lanзa as bombas...
Descriзгo: O que o filterscript faz й mandar bombas, ou seja, vocк pressiona a tecla ALT e ele vai largando bombas, quando vocк nгo tiver mais bombas vocк deverб carregar ele usando /ammo, digamos que o й um aviгo bombardeiro, este filterscript й muito util para servidores de guerra.

ChangeLog:
  • v1 - Versгo lanзada
Avisos:
  • Este Filterscript foi feito na versгo 0.3eRC6 do sa-mp, mas eu penso que funcione...
  • Nгo gravei video porque neste momento estive ocupado, mas tirei uma foto basta clicar AQUI
  • Mantenha os crйditos no conteudo do script nгo custa nada, nгo necessita de colocar em comandos basta ser no cуdigo.
  • Espero que tenha gostado.
Crйditos:
  • ~BlueX
    • Autor do Projeto
  • ~Kalcor
    • Criador do MapAndreas
  • ~Mauzen
    • Criador da v1.1 do MapAndreas
Reply
#2

Wow Very nicee
Reply
#3

тtima idйia, mais nгo deveria checar se estб em um veнculo antes de criar as variбveis ?

pawn Code:
CMD:fire(playerid){

    if(IsPlayerInAnyVehicle(playerid)){
       new Float:X,Float:Y,Float:Z,Float:A, car = GetPlayerVehicleID(playerid),model = GetVehicleModel(car);
        if(ammo[car] == 0) return SendClientMessage(playerid,-1,"sem muniзгo, use /ammo");
        if(model != 553) return 1;
        GetPlayerPos(playerid,X,Y,Z);
        GetVehicleZAngle(GetPlayerVehicleID(playerid),A);
        bomb[playerid] = CreateObject(345,X,Y,Z,A,0,0,0.0);
       
        MapAndreas_FindZ_For2DCoord(X,Y,Z);
        MoveObject(bomb[playerid],X,Y,Z,100.0,A,0.0,0.0);
        CreateExplosion(X,Y,Z,10,20.0);
        ammo[car] --;
        DestroyObject(bomb[playerid]);
    }
    return 1;
}
Reply
#4

Parece interessante, se for oq eu estou imaginando(http://www.youtube.com/watch?feature...&v=owNXLyZOWyc), й muito bom!!!
Reply
#5

Quote:
Originally Posted by [LF]PlaYer
View Post
Wow Very nicee
Thanks dude

Quote:
Originally Posted by [Full]Garfield[XDB]
View Post
тtima idйia, mais nгo deveria checar se estб em um veнculo antes de criar as variбveis ?

pawn Code:
CMD:fire(playerid){

    if(IsPlayerInAnyVehicle(playerid)){
       new Float:X,Float:Y,Float:Z,Float:A, car = GetPlayerVehicleID(playerid),model = GetVehicleModel(car);
        if(ammo[car] == 0) return SendClientMessage(playerid,-1,"sem muniзгo, use /ammo");
        if(model != 553) return 1;
        GetPlayerPos(playerid,X,Y,Z);
        GetVehicleZAngle(GetPlayerVehicleID(playerid),A);
        bomb[playerid] = CreateObject(345,X,Y,Z,A,0,0,0.0);
       
        MapAndreas_FindZ_For2DCoord(X,Y,Z);
        MoveObject(bomb[playerid],X,Y,Z,100.0,A,0.0,0.0);
        CreateExplosion(X,Y,Z,10,20.0);
        ammo[car] --;
        DestroyObject(bomb[playerid]);
    }
    return 1;
}
Eu acho que й indiferente, mas como vocк disse eu coloco assim, rs.

Quote:
Originally Posted by paulor
View Post
Parece interessante, se for oq eu estou imaginando(http://www.youtube.com/watch?feature...&v=owNXLyZOWyc), й muito bom!!!
Sim й parecido, eu estou trabalhando com o MapAndreas agora, estou pensando em fazer sistemas divertidos...
Reply
#6

Legal !
Reply
#7

Quote:
Originally Posted by BlueX
View Post
E checou, preste atenзгo gato

pawn Code:
if(IsPlayerInAnyVehicle(playerid))
Muito tempo sem programar nгo й? ahahaha
Minha correзгo estб vбlida, ou vocк nгo editou ainda...
sу porque eu estava banido, nгo quer dizer que nгo estava programando.
Reply
#8

Antes de usar, й bom ler mais sobre o MapAndreas, para nгo ter surpresas desagradбveis.

Bom trabalho
Reply
#9

Quote:
Originally Posted by Viniborn
View Post
Antes de usar, й bom ler mais sobre o MapAndreas, para nгo ter surpresas desagradбveis.

Bom trabalho
Sim eu estive lendo e ele requer algum RAM do servidor, por isso que quando inicio o servidor ele demora tempo a fazer o load... Obrigado pela dica (:
Reply
#10

Quote:
Originally Posted by paulor
View Post
Parece interessante, se for oq eu estou imaginando(http://www.youtube.com/watch?feature...&v=owNXLyZOWyc), й muito bom!!!
Esse sistema do 0.3e owna.

Sistema bem ъtil, parabйns.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)