KiLlerBy

Sistema de Aeroporto V.3

Nov 4th, 2017
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 18.44 KB | None | 0 0
  1. #define FILTERSCRIPT//no modo filter script
  2.  
  3. #include <a_samp>
  4. #tryinclude <izcmd>
  5. #if !defined _I_ZCMD_INCLUDED
  6.     #error IZCMD ("https://github.com/YashasSamaga/I-ZCMD")
  7. #endif
  8.  
  9. #include <sscanf>
  10.  
  11. /*
  12. * Nome do arquivo: aerosysl.pwn
  13. * Autor: ByKiller
  14. * Data de desenvolvimento:
  15. * 1 - 30/10/2017 até 04/11/2017 (3.0)
  16. * 2 - 10/11/2017 [ 6:10-6:40 e 11:00-13:30 ] (3.1)
  17.  
  18. Callback usadas:
  19.  
  20. - OnGameModeInit
  21. - OnGameModeExit
  22.  
  23. - OnFilterScriptInit
  24. - OnFilterScriptExit
  25.  
  26. - OnDialogResponse
  27. - OnPlayerDeath
  28. - OnPlayerDisconnect
  29. - OnPlayerKeyStateChange
  30.  
  31. Forward modulo
  32.  
  33. sysAero::OnPlayerChangePrecoAviao(playerid)
  34. sysAero::OnPlayerEnterOnAviao(playerid)
  35. sysAero::OnPlayerLeaveFromAviao(playerid)
  36.  
  37. */
  38.  
  39. //system
  40. #define VERSION_SYSAERO "3.0"
  41. #define SYSAERO_HABILITADO true
  42. //#define SYSAERO_CALLBACKS /*Habilita o retorno de callbacks do sistema(Uso recomendado em modulos)*/
  43.  
  44. //Dialog
  45. #define DIALOD_ADM_CPRECO   50
  46. #define DIALOG_AERO_PRECO   51
  47. #define DIALOG_BILHETERIA   52
  48.  
  49. //Tempo da viagem em minutos
  50. #define     tempo_do_aviao  4
  51.  
  52.  
  53. //  preço da passagem
  54. #define     PRECOLS     547
  55. #define     PRECOSF     541
  56. #define     PRECOLV     508
  57.  
  58. //Nome ds cidades
  59. #define sysAero_NAME_CITY_LS    "Los Santos"
  60. #define sysAero_NAME_CITY_LV    "Las Venturas"
  61. #define sysAero_NAME_CITY_SF    "San Fiero"
  62. //--------------
  63. //posição do pickup
  64.  
  65. #define posLsAeroPickup_        "1685.8989 -2237.5452 13.5469"
  66. #define posLvAeroPickup_        "1673.6342 1446.7489 10.7849"
  67. #define posSfAeroPickup_        "-1421.7242 -287.2150 14.1484"
  68. #define posLeaveAeroPickup_     "2304.6885 -16.2755 26.7422"
  69. #define posBilhereriaPickup_    "2316.6152 -12.8264 26.7422"
  70.  
  71. //spawn do aeroporto
  72. #define posLsEndVoo_        "1893.4604 -2326.9524 13.5469"
  73. #define posLvEndVoo_        "1306.7755 1611.0084 10.8203"
  74. #define posSfEndVoo_        "-1260.8641 61.4666 14.1484"
  75. //inteiror do aviao
  76. #define posAvionInterior_   "1.808619 32.384357 1199.593750"
  77.  
  78. //interior da bilheteria
  79. #define interiorBilheteria 0
  80.  
  81. //Virtual worlds
  82. #define VM_LS 3
  83. #define VM_LV 7
  84. #define VM_SF 11
  85.  
  86. #define VM_BILHETERIA_LS VM_LS
  87. #define VM_BILHETERIA_LV VM_LS
  88. #define VM_BILHETERIA_SF VM_SF
  89.  
  90. //*---*
  91. // Especificação do dialogo da Bilheteria
  92. #define SPEC_BILHETERIA     "Cidade ou Estado\tValor do pagamento\n"\
  93.                             "{FFFFFF}Viajar para %s\t{32CD32}R$ %d\n"\
  94.                             "{FFFFFF}Viajar para %s\t{32CD32}R$ %d"
  95.                            
  96. #if !defined BYKILLER_FUNCTION
  97.  
  98. #define union:%0(%1) forward %0(%1);\
  99.                      public %0(%1)
  100. #define struct:%0(%1) stock %0(%1)
  101.  
  102. // Habilitar um modulo
  103. CMD:habilitar(playerid, params[])
  104. {//ByKiller
  105.     new test[10];
  106.     if (!IsPlayerAdmin(playerid))return 0;
  107.     sscanf(params,"s", test);
  108.     if (!strlen(test))return SendClientMessage(playerid, 0x696969FF, "/habilitar <modulo_name>");
  109.     new callback[20];
  110.     format(callback, sizeof(callback), "habilitar_%s", test);
  111.     if (funcidx (callback) > 0)
  112.     {
  113.         SetTimer(callback, 1000, 0);
  114.         return 1;
  115.     }
  116.     return SendClientMessage(playerid, 0xFF0000FF, "Este Modulo não foi encontrado");
  117. }
  118. #define BYKILLER_FUNCTION
  119. #endif
  120.                    
  121. enum cities{
  122.     ls,
  123.     lv,
  124.     sf,
  125. };
  126.  
  127. enum systemAero
  128. {
  129.     bool:habilitado = true,
  130.     pickup_aerol,
  131.     pickup_bilheteria,
  132.     pickup_aero[cities],
  133.     aeroPreco[cities],
  134.     Text3D:textAero[3],
  135.     Text3D:textBilhe[3],
  136. };
  137.  
  138. enum systemVarPlayer
  139. {
  140.     bool:InVoo,
  141.     bool:WaitingVoo,
  142.     cities:aeroFrom,
  143.     cities:aeroGoing,
  144. };
  145.  
  146. static  dataSysAero[systemAero],
  147.         dataPlayerSysAero[MAX_PLAYERS][systemVarPlayer],
  148.         loop_systemAeroColocar,
  149.         loop_systemAeroRetirar;
  150.        
  151. //-----------------------------
  152. //Carregar o sistema de aeroporto
  153. union:sysAero()
  154. {
  155.     new space, minutos, segundos, tempo;
  156.     gettime(space, minutos, segundos);
  157.     tempo = ( ( (tempo_do_aviao-(minutos%tempo_do_aviao))-1) *60000)+( ( 60-segundos)*1000);
  158.     SetTimer("LoopAjustar", tempo, 0);
  159.     print ( "- Sistema de Aeroporto By KiLler -");
  160.     space = minutos;
  161.     minutos =  (tempo_do_aviao-1)-(space%tempo_do_aviao);
  162.     space = segundos;
  163.     segundos = ( 60-space);
  164.     if (segundos == 60)minutos += 1, segundos = 0;
  165.     printf (" - sistema será ajustado em - %dm%ds", minutos, segundos);
  166.     return 1;
  167. }
  168.  
  169. union:loadSystemAero()
  170. {
  171.     new Float:x, Float:y, Float:z;
  172.     sscanf(posLsAeroPickup_, "fff", x, y, z);
  173.     dataSysAero[pickup_aero][ls] = CreatePickup(1310, 1, x, y, z, -1); //ls
  174.     sscanf (posLvAeroPickup_, "fff", x, y, z);
  175.     dataSysAero[pickup_aero][lv] = CreatePickup(1310, 1, x, y, z, -1); //lv
  176.     sscanf (posSfAeroPickup_, "fff", x, y, z);
  177.     dataSysAero[pickup_aero][sf] = CreatePickup(1310, 1, x, y, z, -1); //sf
  178.     sscanf (posLeaveAeroPickup_, "fff", x, y, z);
  179.     dataSysAero[pickup_aerol] = CreatePickup(1318, 1, x, y, z , -1); //sair
  180.     sscanf (posLeaveAeroPickup_, "fff", x, y, z);
  181.     dataSysAero[pickup_bilheteria] = CreatePickup(1239, 1, 2316.6152, -12.8264, 26.7422 , -1); //sair
  182.        
  183.     dataSysAero[aeroPreco][ls]=PRECOLS;
  184.     dataSysAero[aeroPreco][lv]=PRECOLV;
  185.     dataSysAero[aeroPreco][sf]=PRECOSF ;
  186.  
  187.     //label
  188.     sscanf (posLsAeroPickup_, "fff", x, y, z);
  189.     dataSysAero[textAero][0] =  Create3DTextLabel("Aeroporto Internacional de los santos",0xF3F715FF, x, y, z,40, 0, 0);
  190.     sscanf (posLvAeroPickup_, "fff", x, y, z);
  191.     dataSysAero[textAero][1] =  Create3DTextLabel("Aeroporto Internacional de las venturas",0xF3F715FF, x, y, z,40.0,0,0);
  192.     sscanf (posSfAeroPickup_, "fff", x, y, z);
  193.     dataSysAero[textAero][2] =  Create3DTextLabel("Aeroporto Internacional de San fiero", 0xF3F715FF, x, y, z,40, 0, 0);
  194.        
  195.     sscanf (posBilhereriaPickup_, "fff", x, y, z);
  196.     dataSysAero[textBilhe][0] = Create3DTextLabel("Bilheteria", 0xF3F715FF,  x, y, z, 20.0, VM_BILHETERIA_LS, 0);
  197.     dataSysAero[textBilhe][1] = Create3DTextLabel("Bilheteria", 0xF3F715FF,  x, y, z, 20.0, VM_BILHETERIA_LV, 0);
  198.     dataSysAero[textBilhe][2] = Create3DTextLabel("Bilheteria", 0xF3F715FF,  x, y, z, 20.0, VM_BILHETERIA_SF, 0);
  199.     //end
  200.     return printf ("------------\n:: Sistema de aeroporto v.%s: HABILITADO\n:- feito por ByKiLler\n------------", VERSION_SYSAERO);
  201. }
  202.  
  203. //-------------------------
  204. // Desabilitar sistema de aeroporto
  205.  
  206. union:unloadSystemAero()
  207. {
  208.     KillTimer(loop_systemAeroColocar);
  209.     KillTimer(loop_systemAeroRetirar);
  210.     //pickup
  211.     DestroyPickup(dataSysAero[pickup_aero][ls]);
  212.     DestroyPickup(dataSysAero[pickup_aero][lv]);
  213.     DestroyPickup(dataSysAero[pickup_aero][sf]);
  214.     DestroyPickup(dataSysAero[pickup_aerol]);
  215.     DestroyPickup(dataSysAero[pickup_bilheteria]);
  216.     //Label
  217.     Delete3DTextLabel(dataSysAero[textAero][0]);
  218.     Delete3DTextLabel(dataSysAero[textAero][1]);
  219.     Delete3DTextLabel(dataSysAero[textAero][2]);
  220.     Delete3DTextLabel(dataSysAero[textBilhe][0]);
  221.     Delete3DTextLabel(dataSysAero[textBilhe][1]);
  222.     Delete3DTextLabel(dataSysAero[textBilhe][2]);
  223.     //end
  224.     return printf ("------------\n:: Sistema de aeroporto v.%s: DESABILITADO\n:- feito por ByKiLler\n------------", VERSION_SYSAERO);
  225. }
  226.  
  227. union:habilitar_sysaero()
  228. {
  229.     new an, me, di;
  230.     new ho, mi, se;
  231.     getdate(an, me, di);
  232.     gettime(ho, mi, se);
  233.     printf ("callback[habilitar_sysaero] usada %1d/%1d/%1d - %1d:%1d:%1d", di, me, an, ho, mi, se);
  234.     if (dataSysAero[habilitado])
  235.     {
  236.         print  ("-------------------------------------");
  237.         printf ("\tSCRIPT SYS AERO DESABILITADO - v.%s", VERSION_SYSAERO);
  238.         print  ("-------------------------------------");
  239.         dataSysAero[habilitado] = false;
  240.         unloadSystemAero();
  241.     }else{
  242.         print  ("-------------------------------------");
  243.         printf ("\tSCRIPT SYS AERO HABILITADO - v.%s", VERSION_SYSAERO);
  244.         print  ("-------------------------------------");
  245.         dataSysAero[habilitado] = true;
  246.         loadSystemAero();
  247.     }
  248.     return 1;
  249. }
  250.  
  251. #if defined FILTERSCRIPT
  252.  
  253. public OnFilterScriptInit()
  254. {
  255.     print ("*------- FilterScript ------*");
  256.     sysAero();
  257.     print ("*----------------------------");
  258.     return 1;
  259. }
  260.  
  261. public OnFilterScriptExit()
  262. {
  263.     unloadSystemAero();
  264.     return 1;
  265. }
  266. #endif
  267.  
  268. public OnGameModeInit()
  269. {
  270.     #if !defined FILTERSCRIPT
  271.     #if defined sysAero_OnGameModeInit
  272.     sysAero_OnGameModeInit();
  273.     #endif
  274.     #endif
  275.     print ("------- Modulo --------");
  276.     sysAero();
  277.     print ("-----------------------");
  278.     return 1;
  279. }
  280.  
  281. public OnGameModeExit()
  282. {
  283.     #if !defined FILTERSCRIPT
  284.     #if defined sysAero_OnGameModeExit
  285.     sysAero_OnGameModeExit();
  286.     #endif
  287.     #endif
  288.     print ("------- Modulo --------");
  289.     unloadSystemAero();
  290.     print ("----------------------");
  291.     return 1;
  292. }
  293.  
  294. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  295. {
  296.     #if !defined FILTERSCRIPT
  297.     #if defined sysAero_OnPlayerKeyStateChange
  298.     sysAero_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  299.     #endif
  300.     #endif
  301.     if(newkeys & KEY_SECONDARY_ATTACK)
  302.     {
  303.         new Float:x, Float:y, Float:z;
  304.        
  305.         // Fora do aeroporto (Pickup)
  306.         sscanf (posLsAeroPickup_, "fff", x, y, z);
  307.         if(IsPlayerInRangeOfPoint(playerid, 1.0, x, y, z))//Aeroporto ls pickup
  308.         {
  309.             dataPlayerSysAero[playerid][aeroFrom] = (cities:ls);
  310.             sscanf(posLeaveAeroPickup_, "fff", x , y, z);
  311.             SetPlayerPos(playerid, x, y, z);
  312.             SetPlayerInterior(playerid, interiorBilheteria);
  313.             SetPlayerVirtualWorld(playerid, VM_BILHETERIA_LS);
  314.         }
  315.         sscanf (posLvAeroPickup_, "fff", x, y, z);
  316.         if(IsPlayerInRangeOfPoint(playerid, 1.0, x, y, z))//Aeroporto lv pickup
  317.         {
  318.             dataPlayerSysAero[playerid][aeroFrom] = (cities:lv);
  319.             sscanf(posLeaveAeroPickup_, "fff", x , y, z);
  320.             SetPlayerPos(playerid, x, y, z);
  321.             SetPlayerInterior(playerid, interiorBilheteria);
  322.             SetPlayerVirtualWorld(playerid, VM_BILHETERIA_LV);
  323.         }
  324.         sscanf (posSfAeroPickup_, "fff", x, y, z);
  325.         if(IsPlayerInRangeOfPoint(playerid, 1.0, x, y, z))//Aeroporto sf pickup
  326.         {
  327.             dataPlayerSysAero[playerid][aeroFrom] = (cities:sf);
  328.             sscanf(posLeaveAeroPickup_, "fff", x , y, z);
  329.             SetPlayerPos(playerid, x, y, z);
  330.             SetPlayerInterior(playerid, interiorBilheteria);
  331.             SetPlayerVirtualWorld(playerid, VM_BILHETERIA_SF);
  332.         }
  333.        
  334.         //Dentro do aeroporto (pickup)
  335.         sscanf (posLeaveAeroPickup_, "fff", x, y, z);
  336.         if(IsPlayerInRangeOfPoint(playerid, 1.0, x, y, z))// Leave aeropoto pickup
  337.         {
  338.             switch (dataPlayerSysAero[playerid][aeroFrom])
  339.             {
  340.                 case (cities:ls):sscanf (posLsAeroPickup_, "fff", x, y, z);
  341.                 case (cities:lv):sscanf (posLvAeroPickup_, "fff", x, y, z);
  342.                 case (cities:sf):sscanf (posSfAeroPickup_, "fff", x, y, z);
  343.             }
  344.             SetPlayerPos(playerid, x, y, z);
  345.             SetPlayerInterior(playerid, 0);
  346.             SetPlayerVirtualWorld(playerid, 0);
  347.         }
  348.        
  349.         sscanf (posBilhereriaPickup_, "fff", x, y, z);
  350.         if(IsPlayerInRangeOfPoint(playerid, 1.0, x, y, z))// Bilheteria pick up
  351.         {
  352.             new string[150];
  353.             new string2[70];
  354.             new lista_nome[cities][2][] = { {sysAero_NAME_CITY_LV, sysAero_NAME_CITY_SF}, {sysAero_NAME_CITY_SF, sysAero_NAME_CITY_LS}, {sysAero_NAME_CITY_LS, sysAero_NAME_CITY_LV}};
  355.             new lista_preco[2];
  356.            
  357.             switch (dataPlayerSysAero[playerid][aeroFrom])
  358.             {
  359.                 case (cities:ls):lista_preco[0] = dataSysAero[aeroPreco][lv], lista_preco[1] = dataSysAero[aeroPreco][sf], format (string2, sizeof (string2), " Aeroporto de %s", sysAero_NAME_CITY_LS);
  360.                 case (cities:lv):lista_preco[0] = dataSysAero[aeroPreco][sf], lista_preco[1] = dataSysAero[aeroPreco][ls], format (string2, sizeof (string2), " Aeroporto de %s", sysAero_NAME_CITY_LV);
  361.                 case (cities:sf):lista_preco[0] = dataSysAero[aeroPreco][ls], lista_preco[1] = dataSysAero[aeroPreco][lv], format (string2, sizeof (string2), " Aeroporto de %s", sysAero_NAME_CITY_SF);
  362.             }
  363.             format (string, sizeof (string), SPEC_BILHETERIA,
  364.             lista_nome[dataPlayerSysAero[playerid][aeroFrom]][0],
  365.             lista_preco[0],
  366.             lista_nome[dataPlayerSysAero[playerid][aeroFrom]][1],
  367.             lista_preco[1]);
  368.             ShowPlayerDialog(playerid, DIALOG_BILHETERIA, DIALOG_STYLE_TABLIST_HEADERS, string2, string,"SELECIONAR","SAIR");
  369.         }  
  370.     }
  371.     return 1;
  372. }
  373.  
  374. /* End comandos*/
  375. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  376. {
  377.     #if !defined FILTERSCRIPT
  378.     #if defined sysAero_OnDialogResponse
  379.     sysAero_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
  380.     #endif
  381.     #endif
  382.     if ( dialogid == DIALOG_BILHETERIA)
  383.     {
  384.         if (response)
  385.         {
  386.             switch (dataPlayerSysAero[playerid][aeroFrom])
  387.             {
  388.                 case (cities:ls):
  389.                 {
  390.                     if (listitem == 0)
  391.                     {
  392.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:lv);
  393.                     }
  394.                     else if (listitem == 1)
  395.                     {
  396.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:sf);
  397.                     }
  398.                 }
  399.                 case (cities:lv):
  400.                 {
  401.                     if (listitem == 0)
  402.                     {
  403.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:sf);
  404.                     }
  405.                     else if (listitem == 1)
  406.                     {
  407.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:ls);
  408.                     }              
  409.                 }
  410.                 case (cities:sf):
  411.                 {
  412.                     if (listitem == 0)
  413.                     {
  414.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:ls);
  415.                     }
  416.                     else if (listitem == 1)
  417.                     {
  418.                         dataPlayerSysAero[playerid][aeroGoing] = (cities:lv);
  419.                     }              
  420.                 }
  421.             }
  422.             new money   = dataSysAero[aeroPreco][ dataPlayerSysAero[playerid][aeroGoing] ];
  423.             new money2  = GetPlayerMoney(playerid);
  424.             if (!(money2 > money))return SendClientMessage(playerid, 0xFF0000FF, "Voce não possui dinheiro necessario para passar a viagem");
  425.             dataPlayerSysAero[playerid][WaitingVoo] = true;
  426.             return 1;
  427.         }
  428.         return 0;
  429.     }
  430.     return 0;
  431. }
  432.  
  433. public OnPlayerDisconnect(playerid, reason)
  434. {
  435.     #if !defined FILTERSCRIPT
  436.     #if defined sysAero_OnPlayerDisconnect
  437.     sysAero_OnPlayerDisconnect(playerid, reason);
  438.     #endif
  439.     #endif
  440.    
  441.     if ( dataPlayerSysAero[playerid][WaitingVoo] )
  442.     {
  443.         dataPlayerSysAero[playerid][WaitingVoo] = false;
  444.     }  
  445.    
  446.     if ( dataPlayerSysAero[playerid][InVoo] )
  447.     {
  448.         dataPlayerSysAero[playerid][InVoo] = false;
  449.     }
  450.     return 1;
  451. }
  452. public OnPlayerDeath(playerid, killerid, reason)
  453. {
  454.     #if !defined FILTERSCRIPT
  455.     #if defined sysAero_OnPlayerDeath
  456.     sysAero_OnPlayerDeath(playerid, killerid, reason);
  457.     #endif
  458.     #endif
  459.    
  460.     if ( dataPlayerSysAero[playerid][WaitingVoo] )
  461.     {
  462.         dataPlayerSysAero[playerid][WaitingVoo] = false;
  463.     }  
  464.    
  465.     if ( dataPlayerSysAero[playerid][InVoo] )
  466.     {
  467.         dataPlayerSysAero[playerid][InVoo] = false;
  468.     }
  469.     return 1;
  470. }
  471.  
  472. // Loops
  473.  
  474. union:LoopAjustar()
  475. {  
  476.     loadSystemAero();
  477.     loop_systemAeroColocar = SetTimer("LoopColocarNoAviao", tempo_do_aviao*60000, 1);
  478.     loop_systemAeroRetirar = SetTimer("LoopRetirarDoAviao", tempo_do_aviao*30000, 1);
  479.     return 1;
  480. }
  481.  
  482. union:LoopRetirarDoAviao()
  483. {
  484.     for (new i; i < MAX_PLAYERS; i++)
  485.     {
  486.         if (  (!IsPlayerConnected(i)) || (!dataPlayerSysAero[i][InVoo]) ) continue;
  487.         ChegarAoAeroportoEx(i, dataPlayerSysAero[i][aeroFrom], dataPlayerSysAero[i][aeroGoing]);
  488.     }
  489.     return 1;
  490. }
  491.  
  492. union:LoopColocarNoAviao()
  493. {
  494.     new Float:x, Float:y, Float:z;
  495.     sscanf(posBilhereriaPickup_, "fff", x, y, z);
  496.     for (new i; i < MAX_PLAYERS; i ++)
  497.     {
  498.         if ( (!IsPlayerConnected(i)) || (!dataPlayerSysAero[i][WaitingVoo])) continue;
  499.         if  (! IsPlayerInRangeOfPoint(i, 30, x, y, z))
  500.         {
  501.             SendClientMessage(i, 0xFF0000FF, "Voce perdeu o aviao");
  502.             dataPlayerSysAero[i][WaitingVoo] = false;
  503.             return 1;
  504.         }
  505.         PutPlayerInVooEx(i, dataPlayerSysAero[i][aeroFrom] , dataPlayerSysAero[i][aeroGoing]);
  506.     }
  507.     return 1;
  508. }
  509.  
  510. // sistema
  511. union:PutPlayerInVooEx(playerid, cities:aeroporto, cities:destino)
  512. {
  513.     new Float:x, Float:y, Float:z;
  514.     sscanf (posAvionInterior_, "fff", x, y, z);
  515.     SetPlayerPos(playerid, x, y, z);
  516.     SetPlayerInterior(playerid, 1);
  517.    
  518.     SetPlayerVirtualWorld(playerid, GetVwOfVOOEx(cities:aeroporto, cities:destino));
  519.     dataPlayerSysAero[playerid][InVoo] = true;
  520.     dataPlayerSysAero[playerid][WaitingVoo] = false;
  521.     SetPlayerHealth(playerid, 999999999.0);
  522.    
  523.     return 1;
  524. }
  525.  
  526. union:ChegarAoAeroportoEx(playerid, cities:aeroporto, cities:destino)
  527. {
  528.     new Float:x, Float:y, Float:z; 
  529.     switch(destino)
  530.     {
  531.         case (cities:ls):sscanf(posLsEndVoo_, "fff", x, y, z);
  532.         case (cities:lv):sscanf(posLvEndVoo_, "fff", x, y, z);
  533.         case (cities:sf):sscanf(posSfEndVoo_, "fff", x, y, z);
  534.     }  
  535.     SetPlayerPos(playerid, x, y, z);
  536.     SetPlayerVirtualWorld(playerid, 0);
  537.     SetPlayerInterior(playerid, 0);
  538.     SetPlayerHealth(playerid, 100.0);
  539.     SetPlayerArmour(playerid, 1.0);
  540.     dataPlayerSysAero[playerid][InVoo] = false;
  541.     return 1;
  542. }
  543.  
  544. struct:GetVwOfVOOEx(cities:aeroporto, cities:destino)
  545. {//BykiLler
  546.     new interger;
  547.     new lista2[cities] = {VM_LS, VM_LV, VM_SF};
  548.    
  549.     for (new cities:j, k; cities:j < cities; j ++, k ++)
  550.     {
  551.         if ((cities:aeroporto) == (cities:j))
  552.         {
  553.             interger += (lista2[cities:j])-k;
  554.         }
  555.         if (destino ==  (cities:j))
  556.         {
  557.             interger += lista2[cities:j];
  558.         }
  559.     }
  560.     return interger;
  561. }
  562.  
  563. // Testes
  564. union:Test_PrintVmVoo()
  565. {
  566.     new namesv[cities][] = {"ls", "lv", "sf"};
  567.     for (new cities:i; i < cities; i ++)
  568.     {
  569.        
  570.         printf(" %s to ls %i", namesv[cities:i], GetVwOfVOOEx(cities:i, ls));
  571.         printf(" %s to lv %i", namesv[cities:i], GetVwOfVOOEx(cities:i, lv));
  572.         printf(" %s to sf %i", namesv[cities:i], GetVwOfVOOEx(cities:i, sf));
  573.     }
  574.     return 1;
  575. }
  576. // - end
  577. #if !defined FILTERSCRIPT
  578.     //OnGameModeInit
  579.     #if defined _ALS_OnGameModeInit
  580.         #undef OnGameModeInit
  581.     #else
  582.         #define _ALS_OnGameModeInit
  583.     #endif
  584.     #define OnGameModeInit sysAero_OnGameModeInit
  585.     #if defined sysAero_OnGameModeInit
  586.         forward sysAero_OnGameModeInit();
  587.     #endif
  588.  
  589.     //OnGameModeExit
  590.     #if defined _ALS_OnGameModeExit
  591.         #undef OnGameModeExit
  592.     #else
  593.         #define _ALS_OnGameModeExit
  594.     #endif
  595.     #define OnGameModeExit sysAero_OnGameModeExit
  596.     #if defined sysAero_OnGameModeExit
  597.         forward sysAero_OnGameModeExit();
  598.     #endif
  599.    
  600.     //OnPlayerDeath
  601.     #if defined _ALS_OnPlayerDeath
  602.         #undef OnPlayerDeath
  603.     #else
  604.         #define _ALS_OnPlayerDeath
  605.     #endif
  606.     #define OnPlayerDeath sysAero_OnPlayerDeath
  607.     #if defined sysAero_OnPlayerDeath
  608.         forward sysAero_OnPlayerDeath(playerid, killerid, reason);
  609.     #endif
  610.    
  611.     //OnPlayerKeyStateChange
  612.     #if defined _ALS_OnPlayerKeyStateChange
  613.         #undef OnPlayerKeyStateChange
  614.     #else
  615.         #define _ALS_OnPlayerKeyStateChange
  616.     #endif
  617.     #define OnPlayerKeyStateChange sysAero_OnPlayerKeyStateChange
  618.     #if defined sysAero_OnPlayerKeyStateChange
  619.         forward sysAero_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  620.     #endif
  621.     //OnPlayerDisconnect
  622.     #if defined _ALS_OnPlayerDisconnect
  623.         #undef OnPlayerDisconnect
  624.     #else
  625.         #define _ALS_OnPlayerDisconnect
  626.     #endif
  627.     #define OnPlayerDisconnect sysAero_OnPlayerDisconnect
  628.     #if defined sysAero_OnPlayerDisconnect
  629.         forward sysAero_OnPlayerDisconnect(playerid, reason);
  630.     #endif
  631.     //OnDialogResponse
  632.     #if defined _ALS_OnDialogResponse
  633.         #undef OnDialogResponse
  634.     #else
  635.         #define _ALS_OnDialogResponse
  636.     #endif
  637.     #define OnDialogResponse sysAero_OnDialogResponse
  638.     #if defined sysAero_OnDialogResponse
  639.         forward OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  640.     #endif
  641.    
  642. #endif
  643.  
  644. #define CREDITOS    "* Desenvolvida por ByKiLler\n */"
  645.  
  646. #if !defined CREDITOS
  647. #error should be defined 'CREDITOS'
  648. #endif
  649. #if defined SYSAERO_CALLBACKS
  650. #error Esse sistema ainda não tá pronto
  651. #endif
  652. /*End*/
Advertisement
Add Comment
Please, Sign In to add comment