Advertisement
Paulo_AttacK

FunctionEdit v1.3

May 30th, 2012
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.29 KB | None | 0 0
  1. /*------------------------------------------------------------------------------
  2.                     ******************************************************
  3.                         » FunctionEdit - Funções própias melhoradas! «
  4.                     ******************************************************
  5. Descrição:
  6.     Essa include serve para editar-mos as Funções/CallBacks melhorando o uso delas.
  7.    
  8. Versão:
  9.     1.3
  10.    
  11. Autores:
  12.     Paulo_TerroR.
  13.     Los.
  14.     ViniBorn.
  15.     Lucas_Alemao.
  16.    
  17. ChangeLOG:
  18.     25/06/2012(1.3):
  19.         Adicionados:
  20.             SendClientMessage By. Lucas_Alemao
  21.             SendClientMessageToAll By. Lucas_Alemao
  22.             OnPlayerDamage By. Paulo_TerroR
  23.     31/05/2012(1.2):
  24.         Adicionados:
  25.             SetPlayerPos By. ViniBorn
  26.             SetVehiclePos By. ViniBorn
  27.             GetPlayerPos By. Paulo_TerroR
  28.             SetPlayerPos By. Paulo_TerroR
  29.         Agora pode-se desativar funções. Ex:
  30.             #define @FE_OnVehicleDamageStatusUpdate false // Caso for desativar alguma função coloque '@FE_NomeFunção' seguido do valor 'false' para desativa-la.
  31.             #include <FunctionEdit> //Sempre utilize a include abaixo das definições que desativam certas funções para não haver erros.
  32.     30/05/2012(1.1):
  33.         Adicionados:
  34.             GetPlayerHealth By. Los
  35.             GetPlayerArmour By. Los
  36.             GetPlayerFacingAngle By. Los
  37.             GetPlayerIp By. Los
  38.             GetPlayerName By. Los
  39.             GetPlayerVersion By. Los
  40.             OnPlayerEnterVehicle By. Paulo_TerroR
  41.             OnPlayerStateChange By. Paulo_TerroR
  42.     30/05/2012(1.0):
  43.         Lançamento.
  44.        
  45. Agradecimento:
  46.     Paulo_TerroR - Criador.
  47.     Equipe SA-MP(Passado\Presente\Futuro) - SAMP.
  48.     Hiuship - Ideias.
  49.     ViniBorn - Participação na Include.
  50.     Los - Participação na Include.
  51.     Lucas_Alemao - Participação na Include.
  52.    
  53. Funções Editadas:
  54.     OnVehicleDamageStatusUpdate
  55.         Autor da edição: Paulo_TerroR.
  56.         Parametros Adicionados: Flaot:amount.
  57.         Comentário: Parametro retorna o dano que o veiculo sofreu na batida.
  58.        
  59.     GetPlayerHealth
  60.         Autor da edição: Los.
  61.         Comentário: Agora a função Armazena e Retorna os dados.
  62.        
  63.     GetPlayerArmour
  64.         Autor da edição: Los.
  65.         Comentário: Agora a função Armazena e Retorna os dados.
  66.        
  67.     GetPlayerFacingAngle
  68.         Autor da edição: Los.
  69.         Comentário: Agora a função Armazena e Retorna os dados.
  70.        
  71.     GetPlayerIp
  72.         Autor da edição: Los.
  73.         Parametros Retirados: name[], len.
  74.         Comentário: Agora a função Retorna os dados.
  75.        
  76.     GetPlayerName
  77.         Autor da edição: Los.
  78.         Parametros Retirados: const name[], len.
  79.         Comentário: Agora a função  Retorna os dados.
  80.        
  81.     GetPlayerVersion
  82.         Autor da edição: Los.
  83.         Parametros Retirados: version[], len.
  84.         Comentário: Agora a função Retorna os dados.
  85.        
  86.     OnPlayerEnterVehicle
  87.         Autor da edição: Paulo_TerroR.
  88.         Parametros Adicionados: veiculo.
  89.         Comentário: Parametro retorna o modelo do veiculo.
  90.        
  91.     OnPlayerStateChange
  92.         Autor da edição: Paulo_TerroR.
  93.         Parametros Adicionados: vehicleid, veiculo.
  94.         Comentário: Parametro retorna id e o modelo do veiculo.
  95.     SetPlayerPos
  96.         Autor da edição: ViniBorn.
  97.         Parametros Adicionados: angulo.
  98.         Comentário: Parametro seta o angulo do player.
  99.     SetVehiclePos
  100.         Autor da edição: ViniBorn.
  101.         Parametros Adicionados: angulo.
  102.         Comentário: Parametro seta o angulo do veiculo.
  103.     GetPlayerPos
  104.         Autor da edição: Paulo_TerroR.
  105.         Parametros Adicionados: &Float:FE_Pos[4].
  106.         Comentário: Parametro armazena o angulo do player. Armazenando-os em celulas.
  107.     GetVehiclePos
  108.         Autor da edição: Paulo_TerroR.
  109.         Parametros Adicionados: &Float:FE_Pos[4].
  110.         Comentário: Parametro armazena o angulo do veiculo;. Armazenando-os em celulas.
  111.     SendClientMessageEx
  112.         Autor da edição: Lucas_Alemao.
  113.         Parametros Adicionados: {Float,_}:... .
  114.         Comentário: Parametro permite enviar mensagens formatadas.
  115.     SendClientMessageToAllEx
  116.         Autor da edição: Lucas_Alemao.
  117.         Parametros Adicionados: {Float,_}:... .
  118.         Comentário: Parametro permite enviar mensagens formatadas.
  119.     OnPlayerDamage
  120.         Autor da edição: Paulo_TerroR.
  121.         Parametros Adicionados: &Float:FE_Pos[4].
  122.         Comentário: Parametro armazena o angulo do veiculo;. Armazenando-os em celulas.
  123.  
  124. ------------------------------------------------------------------------------*/
  125.  
  126. #if defined @EditFunctions_Incluida
  127.     #endinput
  128. #endif
  129.  
  130. #define @EditFunctions_Incluida
  131.  
  132. #if !defined FunctionEdit_DebuG
  133.     #define FunctionEdit_DebuG              true //Atere para 'true' para ver o Debug.
  134. #endif
  135.  
  136. #if !defined @FE_OnVehicleDamageStatusUpdate
  137.     #define @FE_OnVehicleDamageStatusUpdate true //Atere para 'false' para desativar a edição sobre a função.
  138. #endif
  139.  
  140. #if !defined @FE_GetPlayerHealth
  141.     #define @FE_GetPlayerHealth             true //Atere para 'false' para desativar a edição sobre a função.
  142. #endif
  143.  
  144. #if !defined @FE_GetPlayerArmour
  145.     #define @FE_GetPlayerArmour             true //Atere para 'false' para desativar a edição sobre a função.
  146. #endif
  147.  
  148. #if !defined @FE_GetPlayerFacingAngle
  149.     #define @FE_GetPlayerFacingAngle        true //Atere para 'false' para desativar a edição sobre a função.
  150. #endif
  151.  
  152. #if !defined @FE_GetPlayerIp
  153.     #define @FE_GetPlayerIp                 true //Atere para 'false' para desativar a edição sobre a função.
  154. #endif
  155.  
  156. #if !defined @FE_GetPlayerName
  157.     #define @FE_GetPlayerName               true //Atere para 'false' para desativar a edição sobre a função.
  158. #endif
  159.  
  160. #if !defined @FE_GetPlayerVersion
  161.     #define @FE_GetPlayerVersion            true //Atere para 'false' para desativar a edição sobre a função.
  162. #endif
  163.  
  164. #if !defined @FE_OnPlayerEnterVehicle
  165.     #define @FE_OnPlayerEnterVehicle        true //Atere para 'false' para desativar a edição sobre a função.
  166. #endif
  167.  
  168. #if !defined @FE_OnPlayerStateChange
  169.     #define @FE_OnPlayerStateChange         true //Atere para 'false' para desativar a edição sobre a função.
  170. #endif
  171.  
  172. #if !defined @FE_SetPlayerPos
  173.     #define @FE_SetPlayerPos                true //Atere para 'false' para desativar a edição sobre a função.
  174. #endif
  175.  
  176. #if !defined @FE_SetVehiclePos
  177.     #define @FE_SetVehiclePos               true //Atere para 'false' para desativar a edição sobre a função.
  178. #endif
  179.  
  180. #if !defined @FE_GetPlayerPos
  181.     #define @FE_GetPlayerPos                true //Atere para 'false' para desativar a edição sobre a função.
  182. #endif
  183.  
  184. #if !defined @FE_GetVehiclePos
  185.     #define @FE_GetVehiclePos               true //Atere para 'false' para desativar a edição sobre a função.
  186. #endif
  187.  
  188. #if !defined @FE_OnPlayerDamage
  189.     #define @FE_OnPlayerDamage              true //Atere para 'false' para desativar a edição sobre a função.
  190. #endif
  191.  
  192. #define VEICULO_INVALIDO    (0)
  193. #define VEICULO_AVIAO       (1)
  194. #define VEICULO_BARCO       (2)
  195. #define VEICULO_BIKE        (3)
  196. #define VEICULO_CARRO       (4)
  197. #define VEICULO_HELI        (5)
  198. #define VEICULO_MOTO        (6)
  199. #define VEICULO_INDEFINIDO  (7)
  200.  
  201. stock FE_AVIAO(VehicleID) {
  202.     switch(GetVehicleModel(VehicleID)) { case 460, 464, 476, 511..513, 519, 520, 553, 592, 593: return 1; }
  203.     return 0;
  204. }
  205.  
  206. stock FE_BARCO(VehicleID) {
  207.     switch(GetVehicleModel(VehicleID)) { case 430, 446, 452..454, 472, 473, 484, 493: return 1; }
  208.     return 0;
  209. }
  210.  
  211. stock FE_BIKE(VehicleID) {
  212.     switch(GetVehicleModel(VehicleID)) { case 481, 509, 510: return 1; }
  213.     return 0;
  214. }
  215.  
  216. stock FE_CARRO(VehicleID) {
  217.     switch(GetVehicleModel(VehicleID)) { case 400..416, 418..424, 426..429, 431, 433, 434, 436..445, 451, 455..459, 466, 467, 470, 474, 475, 477..480, 482, 483, 485, 486, 489..492, 494..496, 498..508, 514..518, 524..536, 540..547, 549..562, 565..568, 571..576, 578..580, 582, 583, 585, 587..589, 596..605, 609: return 1; }
  218.     return 0;
  219. }
  220.  
  221. stock FE_HELI(VehicleID) {
  222.     switch(GetVehicleModel(VehicleID)) { case 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563: return 1; }
  223.     return 0;
  224. }
  225.  
  226. stock FE_MOTO(VehicleID) {
  227.     switch(GetVehicleModel(VehicleID)) { case 461..463, 468, 521..523, 581, 586: return 1; }
  228.     return 0;
  229. }
  230.  
  231. new Float: FE_LifeVeiculo[MAX_VEHICLES] = {1000.0, ...};
  232. new FE_PlayerNome[MAX_PLAYERS][MAX_PLAYER_NAME];
  233. new bool: OVDSU = false;
  234. new bool: OPD = false;
  235. new Float: FE_LifePlayer[MAX_PLAYERS] = {100.0, ...};
  236. new FE_String[128];
  237.  
  238. stock isNumeric(const string[]) {
  239.     new length = strlen(string);
  240.     if(!length) return 0;
  241.     for(new i; i != length; i++) if((string[i] > '9' || string[i] < '0' && string[i] != '-' && string[i] != '+') || (string[i] == '-' && i) || (string[i] == '+' && i)) return 0;
  242.     if(length == 1 && (string[0] == '-' || string[0] == '+')) return 0;
  243.     return 1;
  244. }
  245.  
  246. stock isFloat(const string[]) {
  247.     new length = strlen(string), bool: FE_Var = false;
  248.     if(!length) return 0;
  249.     for(new i; i != length; i++) {
  250.         if((string[i] > '9' || string[i] < '0' && string[i] != '-' && string[i] != '+' && string[i] != '.') || (string[i] == '-' && i) || (string[i] == '+' && i) || (string[i] == '.' && !i)) return 0;
  251.         if(string[i] == '.') FE_Var = true;
  252.     }
  253.     if(length == 1 && (string[0] == '-' || string[0] == '+') || !FE_Var) return 0;
  254.     return 1;
  255. }
  256.  
  257. public OnGameModeInit() {
  258.     OPD = funcidx("OnPlayerDamage") != -1;
  259.     OVDSU = funcidx("FE_OVDSU") != -1;
  260.     if(OVDSU) SetTimer("PT_OnVehicleDamage", 100, true);
  261.     if(OPD) SetTimer("PT_OnPlayerDamage", 100, true);
  262.     return CallRemoteFunction("FE_OnGameModeInit", #);
  263. }
  264.  
  265. #if defined _ALS_OnGameModeInit
  266.     #undef OnGameModeInit
  267. #else
  268.     #define _ALS_OnGameModeInit
  269. #endif
  270. #define OnGameModeInit FE_OnGameModeInit
  271. forward FE_OnGameModeInit();
  272.  
  273. public OnPlayerConnect(playerid) {
  274.     FE_PlayerNome[playerid] = #;
  275.     return CallRemoteFunction("FE_OnPlayerConnect", "i", playerid);
  276. }
  277.  
  278. #if defined _ALS_OnPlayerConnect
  279.     #undef OnPlayerConnect
  280. #else
  281.     #define _ALS_OnPlayerConnect
  282. #endif
  283. #define OnPlayerConnect FE_OnPlayerConnect
  284. forward FE_OnPlayerConnect(playerid);
  285.  
  286. /* Inicio OnVehicleDamageStatusUpdate By. Paulo_TerroR */
  287.  
  288. #if @FE_OnVehicleDamageStatusUpdate
  289.     #if defined _ALS_OnVehicleDamage\
  290.         StatusUpdate
  291.         #undef OnVehicleDamageStatusUpdate
  292.     #else
  293.         #define _ALS_OnVehicleDamageStatusUpdate
  294.     #endif
  295.     #define OnVehicleDamageStatusUpdate FE_OVDSU
  296.     forward FE_OVDSU(vehicleid, playerid, Float:amount);
  297.  
  298.     forward PT_OnVehicleDamage();
  299.     public PT_OnVehicleDamage() {
  300.         static Float:FE_Health, FE_Player, Float:FE_Dano;
  301.         for(new i; i != MAX_VEHICLES; i++) {
  302.             GetVehicleHealth(i, FE_Health);
  303.             if(FE_LifeVeiculo[i] > FE_Health) {
  304.                 FE_Dano = FE_LifeVeiculo[i]-FE_Health;
  305.                 if(FE_Dano >= 1000) continue;
  306.                 for( ; FE_Player != MAX_PLAYERS; FE_Player++) if(IsPlayerConnected(FE_Player) && IsPlayerInVehicle(FE_Player, i)) break;
  307.                 CallRemoteFunction("FE_OVDSU", "iif", i, FE_Player, FE_Dano);
  308.                 #if FunctionEdit_DebuG
  309.                     printf("OnVehicleDamageStatusUpdate - Dano: %f", FE_Dano);
  310.                 #endif
  311.                 FE_LifeVeiculo[i] = FE_Health;
  312.             } else if(FE_LifeVeiculo[i] < FE_Health) FE_LifeVeiculo[i] = FE_Health;
  313.         }
  314.         return 1;
  315.     }
  316.  
  317.     stock FE_SetVehicleHealth(vehicleid, Float:health) {
  318.         SetVehicleHealth(vehicleid, health);
  319.         FE_LifeVeiculo[vehicleid] = health;
  320.         return 1;
  321.     }
  322.  
  323.     #define SetVehicleHealth FE_SetVehicleHealth
  324. #endif
  325.  
  326. /* Fim OnVehicleDamageStatusUpdate By. Paulo_TerroR */
  327.  
  328. /* Inicio FE_GetPlayerHealth By. Los */
  329.  
  330. #if @FE_GetPlayerHealth
  331.     stock Float:FE_GetPlayerHealth(playerid, &Float:health = 0.0) {
  332.         GetPlayerHealth(playerid, health);
  333.         return health;
  334.     }
  335.    
  336.     #define GetPlayerHealth FE_GetPlayerHealth
  337. #endif
  338.  
  339. /* Fim FE_GetPlayerHealth By. Los */
  340.  
  341. /* Inicio FE_GetPlayerArmour By. Los */
  342.  
  343. #if @FE_GetPlayerArmour
  344.     stock Float:FE_GetPlayerArmour(playerid, &Float:armour = 0.0) {
  345.         GetPlayerArmour(playerid, armour);
  346.         return armour;
  347.     }
  348.  
  349.     #define GetPlayerArmour FE_GetPlayerArmour
  350. #endif
  351.  
  352. /* Fim FE_GetPlayerArmour By. Los */
  353.  
  354. /* Inicio FE_GetPlayerFacingAngle By. Los */
  355.  
  356. #if @FE_GetPlayerFacingAngle
  357.     stock Float:FE_GetPlayerFacingAngle(playerid, &Float:ang = 0.0) {
  358.         GetPlayerFacingAngle(playerid, ang);
  359.         return ang;
  360.     }
  361.  
  362.     #define GetPlayerFacingAngle FE_GetPlayerFacingAngle
  363. #endif
  364.  
  365. /* Inicio FE_GetPlayerFacingAngle By. Los */
  366.  
  367. /* Inicio FE_GetPlayerIp By. Los */
  368.  
  369. #if @FE_GetPlayerIp
  370.     stock FE_GetPlayerIp(playerid) {
  371.         new FE_IP[16]; GetPlayerIp(playerid, FE_IP, sizeof(FE_IP));
  372.         return FE_IP;
  373.     }
  374.  
  375.     #define GetPlayerIp FE_GetPlayerIp
  376. #endif
  377.  
  378. /* Fim FE_GetPlayerIp By. Los */
  379.  
  380. /* Inicio FE_GetPlayerName By. Los */
  381.  
  382. #if @FE_GetPlayerName
  383.     stock FE_GetPlayerName(playerid) {
  384.         if(!strcmp(FE_PlayerNome[playerid], "\0", true)) {
  385.             GetPlayerName(playerid, FE_PlayerNome[playerid], MAX_PLAYER_NAME);
  386.             return FE_PlayerNome[playerid];
  387.         } else return FE_PlayerNome[playerid];
  388.     }
  389.  
  390.     #define GetPlayerName FE_GetPlayerName
  391. #endif
  392.  
  393. /* Fim FE_GetPlayerName By. Los */
  394.  
  395. /* Inicio FE_GetPlayerVersion By. Los */
  396.  
  397. #if @FE_GetPlayerVersion
  398.     stock FE_GetPlayerVersion(playerid) {
  399.         new FE_Versao[40]; GetPlayerVersion(playerid, FE_Versao, sizeof(FE_Versao));
  400.         return FE_Versao;
  401.     }
  402.  
  403. #define GetPlayerVersion FE_GetPlayerVersion
  404. #endif
  405.  
  406. /* Fim FE_GetPlayerVersion By. Los */
  407.  
  408. /* Inicio OnPlayerEnterVehicle By. Paulo_TerroR */
  409.  
  410. #if @FE_OnPlayerEnterVehicle
  411.     public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
  412.         new FE_Veiculo = (vehicleid == INVALID_VEHICLE_ID)?(VEICULO_INVALIDO):(FE_AVIAO(vehicleid))?(VEICULO_AVIAO):(FE_BARCO(vehicleid))?(VEICULO_BARCO):(FE_BIKE(vehicleid))?(VEICULO_BIKE):(FE_CARRO(vehicleid))?(VEICULO_CARRO):(FE_HELI(vehicleid))?(VEICULO_HELI):(FE_MOTO(vehicleid))?(VEICULO_MOTO):(VEICULO_INDEFINIDO);
  413.         #if FunctionEdit_DebuG
  414.             printf("OnPlayerEnterVehicle - veiculo: %d", FE_Veiculo);
  415.         #endif
  416.         return CallRemoteFunction("FE_OnPlayerEnterVehicle", "iiii", playerid, vehicleid, ispassenger, FE_Veiculo);
  417.     }
  418.  
  419.     #if defined _ALS_OnPlayerEnterVehicle
  420.         #undef OnPlayerEnterVehicle
  421.     #else
  422.         #define _ALS_OnPlayerEnterVehicle
  423.     #endif
  424.     #define OnPlayerEnterVehicle FE_OnPlayerEnterVehicle
  425.     forward FE_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger, veiculo);
  426. #endif
  427.  
  428. /* Fim OnPlayerEnterVehicle By. Paulo_TerroR */
  429.  
  430. /* Inicio OnPlayerStateChange By. Paulo_TerroR */
  431.  
  432. #if @FE_OnPlayerStateChange
  433.     public OnPlayerStateChange(playerid, newstate, oldstate) {
  434.         new FE_VehicleID = (IsPlayerInAnyVehicle(playerid))?(GetPlayerVehicleID(playerid)):(INVALID_VEHICLE_ID), FE_Veiculo = (FE_VehicleID == INVALID_VEHICLE_ID)?(VEICULO_INVALIDO):(FE_AVIAO(FE_VehicleID))?(VEICULO_AVIAO):(FE_BARCO(FE_VehicleID))?(VEICULO_BARCO):(FE_BIKE(FE_VehicleID))?(VEICULO_BIKE):(FE_CARRO(FE_VehicleID))?(VEICULO_CARRO):(FE_HELI(FE_VehicleID))?(VEICULO_HELI):(FE_MOTO(FE_VehicleID))?(VEICULO_MOTO):(VEICULO_INDEFINIDO);
  435.         if(FE_VehicleID != INVALID_VEHICLE_ID) {
  436.             #if FunctionEdit_DebuG
  437.                 printf("OnPlayerStateChange - vehicleid: %d, veiculo: %d", FE_VehicleID, FE_Veiculo);
  438.             #endif
  439.         }
  440.         return CallRemoteFunction("FE_OnPlayerStateChange", "iiiii", playerid, newstate, oldstate, FE_VehicleID, FE_Veiculo);
  441.     }
  442.  
  443.     #if defined _ALS_OnPlayerStateChange
  444.         #undef OnPlayerStateChange
  445.     #else
  446.         #define _ALS_OnPlayerStateChange
  447.     #endif
  448.     #define OnPlayerStateChange FE_OnPlayerStateChange
  449.     forward FE_OnPlayerStateChange(playerid, newstate, oldstate, vehicleid, veiculo);
  450. #endif
  451.  
  452. /* Fim OnPlayerStateChange By. Paulo_TerroR */
  453.  
  454. /* Inicio FE_SetPlayerPos By. ViniBorn */
  455.  
  456. #if @FE_SetPlayerPos
  457.     #define FE_SetPlayerPos(%0,%1,%2,%3,%4) SetPlayerPos(%0,%1,%2,%3); SetPlayerFacingAngle(%0,%4)
  458.     #define SetPlayerPos FE_SetPlayerPos
  459. #endif
  460.  
  461. /* Fim FE_SetPlayerPos By. ViniBorn */
  462.  
  463. /* Inicio FE_SetVehiclePos By. ViniBorn */
  464.  
  465. #if @FE_SetVehiclePos
  466.     #define FE_SetVehiclePos(%0,%1,%2,%3,%4) SetVehiclePos(%0,%1,%2,%3); SetVehicleZAngle(%0,%4)
  467.     #define SetVehiclePos FE_SetVehiclePos
  468. #endif
  469.  
  470. /* Fim FE_SetVehiclePos By. ViniBorn */
  471.  
  472. /* Inicio FE_GetPlayerPos By. Paulo_TerroR */
  473.  
  474. #if @FE_GetPlayerPos
  475.     stock FE_GetPlayerPos(playerid, Float:FE_Pos[4]) {
  476.         GetPlayerPos(playerid, FE_Pos[0], FE_Pos[1], FE_Pos[2]);
  477.         GetPlayerFacingAngle(playerid, FE_Pos[3]);
  478.     }
  479.  
  480.     #define GetPlayerPos FE_GetPlayerPos
  481. #endif
  482.  
  483. /* Fim FE_GetPlayerPos By. Paulo_TerroR */
  484.  
  485. /* Inicio FE_GetVehiclePos By. Paulo_TerroR */
  486.  
  487. #if @FE_GetVehiclePos
  488.     stock FE_GetVehiclePos(vehicleid, Float:FE_Pos[4]) {
  489.         GetVehiclePos(vehicleid, FE_Pos[0], FE_Pos[1], FE_Pos[2]);
  490.         GetVehicleZAngle(vehicleid, FE_Pos[3]);
  491.     }
  492.    
  493.     #define GetVehiclePos FE_GetVehiclePos
  494. #endif
  495.  
  496. /* Fim FE_GetVehiclePos By. Paulo_TerroR */
  497.  
  498. /* Inicio SendClientMessageEx By. Lucas_Alemao */
  499.  
  500. #define SendClientMessageEx(%0,%1,%2,%3); format(FE_String, sizeof(FE_String),%2,%3); SendClientMessage(%0,%1,FE_String);
  501.  
  502. /* Fim SendClientMessageEx By. Lucas_Alemao */
  503.  
  504. /* Inicio SendClientMessageToAllEx By. Lucas_Alemao */
  505.  
  506. #define SendClientMessageToAllEx(%0,%1,%2); format(FE_String, sizeof(FE_String),%1,%2); SendClientMessageToAll(%0,FE_String);
  507.  
  508. /* Fim SendClientMessageToAllEx By. Lucas_Alemao */
  509.  
  510. /* Inicio OnPlayerDamage By. Paulo_TerroR */
  511.  
  512. #if @FE_OnPlayerDamage
  513.     forward OnPlayerDamage(playerid, Float:amount);
  514.  
  515.     forward PT_OnPlayerDamage();
  516.     public PT_OnPlayerDamage() {
  517.         static Float:FE_Health, Float:FE_Dano;
  518.         for(new i; i != MAX_PLAYERS; i++) {
  519.             if(IsPlayerConnected(i)) {
  520.                 GetPlayerHealth(i, FE_Health);
  521.                 if(FE_LifePlayer[i] > FE_Health) {
  522.                     FE_Dano = FE_LifePlayer[i]-FE_Health;
  523.                     if(FE_Dano >= 100) continue;
  524.                     CallRemoteFunction("OnPlayerDamage", "if", i, FE_Dano);
  525.                     #if FunctionEdit_DebuG
  526.                         printf("OnPlayerDamage - Dano: %f", FE_Dano);
  527.                     #endif
  528.                     FE_LifePlayer[i] = FE_Health;
  529.                 } else if(FE_LifePlayer[i] < FE_Health) FE_LifePlayer[i] = FE_Health;
  530.             }
  531.         }
  532.         return 1;
  533.     }
  534.    
  535.     stock FE_SetPlayerHealth(playerid, Float:health) {
  536.         SetPlayerHealth(playerid, health);
  537.         FE_LifePlayer[playerid] = health;
  538.         return 1;
  539.     }
  540.  
  541.     #define SetPlayerHealth FE_SetPlayerHealth
  542.    
  543. /* Fim OnPlayerDamage By. Paulo_TerroR */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement