OtaconEvil

[FS] 'aquaman' puños de agua - By OTACON

Oct 8th, 2013
346
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     * ## LEASE ATENTAMENTE PARA NO CONVERTIRSE EN LAMMER!!.: :D ##
  3.     *
  4.     * Estè Simple FILTERSCRIPT esta hecho especialmente para [url]www.forum.sa-mp.com[/url]
  5.     * NO Publicar estè FILTERSCRIPT en Otros foros de SA-MP y hacerse pasar por el creador del CODE.
  6.     *
  7.     * Codigo Creado Por OTACON
  8.     *
  9.     * CREDITOS:
  10.     *     OTACON: Realizacion y Idea de creacion del code.
  11.     *     TÙ: Modificacion libremente respetando lo mencionado ;).
  12.     *
  13.     *    NOTA: Menos Creditos para los que me los critican.. JO'PUTAS! :D xD ;)
  14.     *
  15.     *                Prohibido TOTALMENTE el Robo de Créditos o la
  16.     *                  Publicación de este FILTERSCRIPT sin Mi Permiso.
  17. */
  18. #include <a_samp>
  19. #include <zcmd>
  20. #include <sscanf2>
  21.  
  22. #define CALLBACK:%0(%1) forward%0(%1); public%0(%1)
  23. #define pressed(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  24. #define released(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  25.  
  26. #define EFECTO_GOLPE (1)
  27. #define EFECTO_LINEA (2)
  28. #define OBJETO_EFECTO_LINEA (18739)
  29. #define OBJETO_EFECTO_GOLPE (18742)
  30. #define DISTANCIA_OBJETO 5.0
  31. new ObjetosEfectoGolpe,
  32. ObjetosEfectoLinea[6],
  33. bool:TiposEfectosActivos,
  34. TiposEfectos;
  35.  
  36. CALLBACK: OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  37.     if(pressed(KEY_FIRE) && GetPlayerState(playerid)==PLAYER_STATE_ONFOOT && TiposEfectosActivos==true) {
  38.         new Float:pos[4];
  39.         GetPlayerFacingAngle(playerid,pos[0]);
  40.         GetPlayerPos(playerid,pos[1],pos[2],pos[3]);
  41.         pos[1] = pos[1] + (DISTANCIA_OBJETO * floatsin(-pos[0], degrees));
  42.         pos[2] = pos[2] + (DISTANCIA_OBJETO * floatcos(-pos[0], degrees));
  43.         switch(TiposEfectos) {
  44.             case EFECTO_GOLPE: {
  45.                 DestroyObject(ObjetosEfectoGolpe);
  46.                 for(new index=0; index<6; index++) \
  47.                     DestroyObject(ObjetosEfectoLinea[index]);
  48.                 ObjetosEfectoGolpe=CreateObject(OBJETO_EFECTO_GOLPE, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  49.             }
  50.             case EFECTO_LINEA: {
  51.                 DestroyObject(ObjetosEfectoGolpe);
  52.                 for(new index=0; index<6; index++) \
  53.                     DestroyObject(ObjetosEfectoLinea[index]);
  54.                 ObjetosEfectoLinea[0]=CreateObject(OBJETO_EFECTO_LINEA, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  55.                 ObjetosEfectoLinea[1]=CreateObject(OBJETO_EFECTO_LINEA, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  56.                 ObjetosEfectoLinea[2]=CreateObject(OBJETO_EFECTO_LINEA, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  57.                 ObjetosEfectoLinea[3]=CreateObject(OBJETO_EFECTO_LINEA, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  58.                 ObjetosEfectoLinea[4]=CreateObject(OBJETO_EFECTO_LINEA, pos[1],pos[2],pos[3], 0.000,0.000,pos[0]);
  59.             }
  60.         }
  61.     }
  62.     if(released(KEY_FIRE) && GetPlayerState(playerid)==PLAYER_STATE_ONFOOT && TiposEfectosActivos==true || TiposEfectosActivos==false) {
  63.         switch(TiposEfectos) {
  64.             case EFECTO_GOLPE: {
  65.                 DestroyObject(ObjetosEfectoGolpe);
  66.                 for(new index=0; index<6; index++) \
  67.                     DestroyObject(ObjetosEfectoLinea[index]);
  68.             }
  69.             case EFECTO_LINEA: {
  70.                 DestroyObject(ObjetosEfectoGolpe);
  71.                 for(new index=0; index<6; index++) \
  72.                     DestroyObject(ObjetosEfectoLinea[index]);
  73.             }
  74.         }
  75.     } return true;
  76. }
  77. COMMAND:colocarefecto(playerid, params[]) {
  78.     if(!TiposEfectosActivos) return SendClientMessage(playerid,-1,"INFO: no se encuentra ningun efecto activado!.");
  79.     new texto[20], data[100];
  80.     if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return false;
  81.     if(sscanf(params,"d",params[0])) return SendClientMessage(playerid,-1,"INFO: utiliza el comando /colocarefecto [opcion(1-EFECTO_GOLPE) (2-EFECTO_LINEA)]");
  82.     TiposEfectos=0;
  83.     TiposEfectos=params[0];
  84.     switch(TiposEfectos) {
  85.         case EFECTO_GOLPE: texto= "EFECTO_GOLPE";
  86.         case EFECTO_LINEA: texto= "EFECTO_LINEA"; }
  87.     format(data,sizeof(data),"INFO: haz colocado el efecto de puño de agua: '%s'",texto);
  88.     SendClientMessage(playerid,-1,data);
  89.     return true;
  90. }
  91. COMMAND:activarefecto(playerid, params[]) {
  92.     switch(TiposEfectosActivos) {
  93.         case false: TiposEfectosActivos=true, SendClientMessage(playerid,-1,"INFO: efecto activado");
  94.         case true: TiposEfectosActivos=false, SendClientMessage(playerid,-1,"INFO: efecto desactivado"); }
  95.     return true;
  96. }
  97. /*
  98.     * ## LEASE ATENTAMENTE PARA NO CONVERTIRSE EN LAMMER!!.: :D ##
  99.     *
  100.     * Estè Simple FILTERSCRIPT esta hecho especialmente para [url]www.forum.sa-mp.com[/url]
  101.     * NO Publicar estè FILTERSCRIPT en Otros foros de SA-MP y hacerse pasar por el creador del CODE.
  102.     *
  103.     * Codigo Creado Por OTACON
  104.     *
  105.     * CREDITOS:
  106.     *     OTACON: Realizacion y Idea de creacion del code.
  107.     *     TÙ: Modificacion libremente respetando lo mencionado ;).
  108.     *
  109.     *    NOTA: Menos Creditos para los que me los critican.. JO'PUTAS! :D xD ;)
  110.     *
  111.     *                Prohibido TOTALMENTE el Robo de Créditos o la
  112.     *                  Publicación de este FILTERSCRIPT sin Mi Permiso.
  113. */
RAW Paste Data