Advertisement
Axll

aProp - Funções v0.0001 R4

Mar 27th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.51 KB | None | 0 0
  1. #include "../Include/config.inc"
  2.  
  3. enum enum_casas
  4. {
  5.     bool:pr_ativa,          //casa ativa;
  6.     bool:pr_porta,          //porta trancando = true, aberta = false;
  7.  
  8.     pr_dono[24],
  9.    
  10.     pr_preco,               //preço definido pelo admin ou dono do hotel;
  11.     pr_level,               //minimo para compra
  12.  
  13.     pr_tamanho,             //casa (trailer, pequena, media, grande);
  14.     pr_interior,            //interior para tipo nao mobilhavel (interiores proprios do gta sa);
  15.     pr_world,               //mundo virtual, igual ao id da propriedade;
  16.  
  17.     Float:pr_ext_posicao[4], //0=x,1=y,2=z,3=rotacao;
  18.     Float:pr_int_posicao[4], //0=x,1=y,2=z,3=rotacao;
  19.  
  20.     pr_ext_pickup,
  21.     pr_int_pickup,
  22.     Text3D:pr_ext_label,
  23.     Text3D:pr_int_label
  24. }
  25.  
  26. enum enum_garagem
  27. {
  28.     bool:gr_ativa,
  29.     gr_casaid,
  30.     bool:gr_portao,
  31.  
  32.     Float:gr_ext_posicao[4],
  33.     Float:gr_int_posicao[4],
  34.  
  35.     gr_world,
  36.  
  37.     gr_ext_pickup,
  38.     gr_int_pickup,
  39.     Text3D:gr_ext_label,
  40.     Text3D:gr_int_label
  41. }
  42.  
  43. new propriedade[max_prop][enum_casas];
  44. new garagem[max_garagem][enum_garagem];
  45. //a-prop | sistema de casas [funções]
  46. stock aPropCriar(playerid, casaid, tamanho, level, preco)
  47. {
  48.     new string[252], Float:ext_posicao[4], Float:int_posicao[4], int_interior;
  49.  
  50.     GetPlayerPos(playerid, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  51.     GetPlayerFacingAngle(playerid, ext_posicao[3]);
  52.  
  53.     propriedade[casaid][pr_ativa] = true;
  54.     propriedade[casaid][pr_porta] = true;
  55.  
  56.     format(propriedade[casaid][pr_dono], 24, "Ninguem");
  57.  
  58.     propriedade[casaid][pr_preco] = preco;
  59.     propriedade[casaid][pr_level] = level;
  60.  
  61.     propriedade[casaid][pr_tamanho] = tamanho;
  62.     switch(tamanho)
  63.     {
  64.         case 1: int_posicao[0] = 2352.7454, int_posicao[1] = -1180.9149, int_posicao[2] = 1027.9766, int_posicao[3] = 91.6186, int_interior = 5;
  65.         case 2: int_posicao[0] = 421.9722, int_posicao[1] = 495.8725, int_posicao[2] = 1001.5299, int_posicao[3] = 89.2832, int_interior = 0;
  66.         case 3: int_posicao[0] = 0.0, int_posicao[1] = 0.0, int_posicao[2] = 0.0, int_posicao[3] = 0.0;
  67.     }
  68.     propriedade[casaid][pr_interior] = int_interior;
  69.     propriedade[casaid][pr_world] = casaid;
  70.  
  71.     propriedade[casaid][pr_ext_posicao][0] = ext_posicao[0];
  72.     propriedade[casaid][pr_ext_posicao][1] = ext_posicao[1];
  73.     propriedade[casaid][pr_ext_posicao][2] = ext_posicao[2];
  74.     propriedade[casaid][pr_ext_posicao][3] = ext_posicao[3];
  75.     propriedade[casaid][pr_int_posicao][0] = int_posicao[0];
  76.     propriedade[casaid][pr_int_posicao][1] = int_posicao[1];
  77.     propriedade[casaid][pr_int_posicao][2] = int_posicao[2];
  78.     propriedade[casaid][pr_int_posicao][3] = int_posicao[3];
  79.  
  80.     propriedade[casaid][pr_ext_pickup] = CreatePickup(1273, 1, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  81.     propriedade[casaid][pr_int_pickup] = CreatePickup(19198, 1, int_posicao[0], int_posicao[1], int_posicao[2]+0.2, casaid);
  82.  
  83.     format(string, 252, "{00FF00}[Propriedade a venda]{FFFFFF}\n{FF0000}Level:{FFFFFF} %d\n{FF0000}Preço:{FFFFFF} $%d", level, preco);
  84.  
  85.     propriedade[casaid][pr_ext_label] = Create3DTextLabel(string, -1, ext_posicao[0], ext_posicao[1], ext_posicao[2]-0.2, 5.0, 0);
  86.     propriedade[casaid][pr_int_label] = Create3DTextLabel("[saida]", -1, int_posicao[0], int_posicao[1], int_posicao[2]-0.2, 5.0, casaid);
  87.     printf("casa criada %d | int %d | preco %d | level %d", casaid, tamanho, preco, level);
  88.  
  89.     format(string, sizeof string, "Propriedades/prop %d.a", casaid);
  90.     DOF2_CreateFile(string);
  91.     DOF2_SetBool(string, "pr_ativa", propriedade[casaid][pr_ativa]);
  92.     DOF2_SetBool(string, "pr_porta", propriedade[casaid][pr_porta]);
  93.  
  94.     DOF2_SetString(string, "pr_dono", propriedade[casaid][pr_dono]);
  95.    
  96.     DOF2_SetInt(string, "pr_preco", propriedade[casaid][pr_preco]);
  97.     DOF2_SetInt(string, "pr_level", propriedade[casaid][pr_level]);
  98.    
  99.     DOF2_SetInt(string, "pr_tamanho", propriedade[casaid][pr_tamanho]);
  100.     DOF2_SetInt(string, "pr_interior", propriedade[casaid][pr_interior]);
  101.     DOF2_SetInt(string, "pr_world", propriedade[casaid][pr_world]);
  102.    
  103.     DOF2_SetFloat(string, "pr_ext_posicao_x", propriedade[casaid][pr_ext_posicao][0]);
  104.     DOF2_SetFloat(string, "pr_ext_posicao_y", propriedade[casaid][pr_ext_posicao][1]);
  105.     DOF2_SetFloat(string, "pr_ext_posicao_z", propriedade[casaid][pr_ext_posicao][2]);
  106.     DOF2_SetFloat(string, "pr_ext_posicao_r", propriedade[casaid][pr_ext_posicao][3]);
  107.    
  108.     DOF2_SetFloat(string, "pr_int_posicao_x", propriedade[casaid][pr_int_posicao][0]);
  109.     DOF2_SetFloat(string, "pr_int_posicao_y", propriedade[casaid][pr_int_posicao][1]);
  110.     DOF2_SetFloat(string, "pr_int_posicao_z", propriedade[casaid][pr_int_posicao][2]);
  111.     DOF2_SetFloat(string, "pr_int_posicao_r", propriedade[casaid][pr_int_posicao][3]);
  112.     DOF2_SaveFile();
  113.     return true;
  114. }
  115.  
  116. stock aPropApagar(casaid)
  117. {
  118.     new string[52];
  119.     propriedade[casaid][pr_ativa] = false;
  120.     propriedade[casaid][pr_porta] = false;
  121.  
  122.     propriedade[casaid][pr_preco] = 0;
  123.     propriedade[casaid][pr_level] = 0;
  124.  
  125.     propriedade[casaid][pr_tamanho] = 0;
  126.     propriedade[casaid][pr_interior] = 0;
  127.     propriedade[casaid][pr_world] = 0;
  128.  
  129.     propriedade[casaid][pr_ext_posicao][0] = 0.0;
  130.     propriedade[casaid][pr_ext_posicao][1] = 0.0;
  131.     propriedade[casaid][pr_ext_posicao][2] = 0.0;
  132.     propriedade[casaid][pr_ext_posicao][3] = 0.0;
  133.     propriedade[casaid][pr_int_posicao][0] = 0.0;
  134.     propriedade[casaid][pr_int_posicao][1] = 0.0;
  135.     propriedade[casaid][pr_int_posicao][2] = 0.0;
  136.     propriedade[casaid][pr_int_posicao][3] = 0.0;
  137.  
  138.     DestroyPickup(propriedade[casaid][pr_ext_pickup]);
  139.     DestroyPickup(propriedade[casaid][pr_int_pickup]);
  140.  
  141.     Delete3DTextLabel(propriedade[casaid][pr_ext_label]);
  142.     Delete3DTextLabel(propriedade[casaid][pr_int_label]);
  143.     printf("casa %d apagada com sucesso.");
  144.     format(string, sizeof string, "Propriedades/prop %d.a", casaid), DOF2_RemoveFile(string);
  145.     return true;
  146. }
  147.  
  148. stock aPropSet(casaid, setid, quantidade)
  149. {
  150.     /*
  151.         1 = tamanho
  152.         2 = nivel
  153.         3 = preco
  154.     */
  155.     new string[252];
  156.     switch(setid)
  157.     {
  158.         case 1: propriedade[casaid][pr_tamanho] = quantidade;
  159.         case 2: propriedade[casaid][pr_level] = quantidade;
  160.         case 3: propriedade[casaid][pr_preco] = quantidade;
  161.     }
  162.     Delete3DTextLabel(propriedade[casaid][pr_ext_label]);
  163.     //
  164.     format(string, 252, "{00FF00}[Propriedade a venda]{FFFFFF}\n{FF0000}Level:{FFFFFF} %d\n{FF0000}Preço:{FFFFFF} $%d", propriedade[casaid][pr_level], propriedade[casaid][pr_preco]);
  165.     propriedade[casaid][pr_ext_label] = Create3DTextLabel(string, -1, propriedade[casaid][pr_ext_posicao][0], propriedade[casaid][pr_ext_posicao][1], propriedade[casaid][pr_ext_posicao][2]-0.2, 5.0, 0);
  166. }
  167.  
  168. stock aPropComprar(playerid, casaid)
  169. {
  170.     char string[138];
  171.     format(propriedade[casaid][pr_dono], 24, "%s", GetName(playerid));
  172.    
  173.     SendClientMessage(playerid, -1, ""); //
  174.     SendClientMessage(playerid, -1, "{FF0000}Parabens{FFFFFF} pela sua {00FF00}compra.");
  175.     SendClientMessage(playerid, -1, "   {00FF00}/minhacasa: {FFFFFF}veja os comandos da sua casa.");
  176.     SendClientMessage(playerid, -1, "   {00FF00}ajuda: {FFFFFF}comando /minhacasa indisponivel");
  177.  
  178.    
  179.     Delete3DTextLabel(propriedade[casaid][pr_ext_label]);
  180.     format(string, 252, "{00FF00}[Propriedade]\nDono:{FFFFFF} %s", propriedade[casaid][pr_dono]);
  181.     propriedade[casaid][pr_ext_label] = Create3DTextLabel(string, -1, propriedade[casaid][pr_ext_posicao][0], propriedade[casaid][pr_ext_posicao][1], propriedade[casaid][pr_ext_posicao][2]-0.2, 5.0, 0);
  182.  
  183.     format(string, sizeof string, "Propriedades/gar %d.a", casaid), DOF2_CreateFile(string);
  184.     DOF2_SetString(string, "pr_dono", propriedade[casaid][pr_dono]);
  185.     DOF2_SaveFile();
  186.     return true;
  187. }
  188.  
  189. stock aPropVender(playerid, casaid)
  190. {
  191.     char string[138];
  192.     format(propriedade[casaid][pr_dono], 24, "Nenhum");
  193.  
  194.     SendClientMessage(playerid, -1, ""); //
  195.     SendClientMessage(playerid, -1, "Casa{FF0000} Vendida{FFFFFF}");
  196.     SendClientMessage(playerid, -1, "   Voce recebeu algum dinheiro pela {00FF00}venda{FFFFFF} da propriedade.");
  197.  
  198.  
  199.     Delete3DTextLabel(propriedade[casaid][pr_ext_label]);
  200.     format(string, 252, "{00FF00}[Propriedade a venda]{FFFFFF}\n{FF0000}Level:{FFFFFF} %d\n{FF0000}Preço:{FFFFFF} $%d", propriedade[casaid][pr_level], propriedade[casaid][pr_preco]);
  201.     propriedade[casaid][pr_ext_label] = Create3DTextLabel(string, -1, propriedade[casaid][pr_ext_posicao][0], propriedade[casaid][pr_ext_posicao][1], propriedade[casaid][pr_ext_posicao][2]-0.2, 5.0, 0);
  202.  
  203.     format(string, sizeof string, "Propriedades/gar %d.a", casaid), DOF2_CreateFile(string);
  204.     DOF2_SetString(string, "pr_dono", "Nenhum");
  205.     DOF2_SaveFile();
  206.     return true;
  207. }
  208.  
  209. stock CriarGaragem(playerid, gr_id, casaid)
  210. {
  211.     new string[52], Float:ext_posicao[4];
  212.     GetPlayerPos(playerid, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  213.     GetPlayerFacingAngle(playerid, ext_posicao[3]);
  214.    
  215.     garagem[gr_id][gr_ativa] = true;
  216.     garagem[gr_id][gr_casaid] = casaid;
  217.     garagem[gr_id][gr_portao] = false;
  218.  
  219.     garagem[gr_id][gr_ext_posicao][0] = ext_posicao[0];
  220.     garagem[gr_id][gr_ext_posicao][1] = ext_posicao[1];
  221.     garagem[gr_id][gr_ext_posicao][2] = ext_posicao[2];
  222.     garagem[gr_id][gr_ext_posicao][3] = ext_posicao[3];
  223.    
  224.     garagem[gr_id][gr_int_posicao][0] = 181.7559;
  225.     garagem[gr_id][gr_int_posicao][1] = 1741.1469;
  226.     garagem[gr_id][gr_int_posicao][2] = 110.9927;
  227.     garagem[gr_id][gr_int_posicao][3] = 358.9667;
  228.  
  229.     garagem[gr_id][gr_world] = casaid;
  230.  
  231.     garagem[gr_id][gr_ext_pickup] = CreatePickup(1277, 1, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  232.     garagem[gr_id][gr_int_pickup] = CreatePickup(19198, 1, 181.7559, 1741.1469, 110.9927+0.2, gr_id);
  233.  
  234.     garagem[gr_id][gr_ext_label] = Create3DTextLabel("[Garagem]", -1, ext_posicao[0], ext_posicao[1], ext_posicao[2]-0.2, 5.0, 0);
  235.     garagem[gr_id][gr_int_label] = Create3DTextLabel("[saida]", -1, 181.7559, 1741.1469, 110.9927, 5.0, gr_id);
  236.  
  237.  
  238.     format(string, sizeof string, "Propriedades/gar %d.a", casaid), DOF2_CreateFile(string);
  239.     DOF2_SetBool(string, "gr_ativa", garagem[gr_id][gr_ativa]);
  240.     DOF2_SetBool(string, "gr_portao", garagem[gr_id][gr_portao]);
  241.  
  242.     DOF2_SetInt(string, "gr_casaid", garagem[gr_id][gr_casaid]);
  243.     DOF2_SetInt(string, "gr_world", garagem[gr_id][gr_world]);
  244.  
  245.     DOF2_SetFloat(string, "gr_ext_posicao_x", garagem[gr_id][gr_ext_posicao][0]);
  246.     DOF2_SetFloat(string, "gr_ext_posicao_y", garagem[gr_id][gr_ext_posicao][1]);
  247.     DOF2_SetFloat(string, "gr_ext_posicao_z", garagem[gr_id][gr_ext_posicao][2]);
  248.     DOF2_SetFloat(string, "gr_ext_posicao_r", garagem[gr_id][gr_ext_posicao][3]);
  249.  
  250.     DOF2_SetFloat(string, "gr_int_posicao_x", garagem[gr_id][gr_int_posicao][0]);
  251.     DOF2_SetFloat(string, "gr_int_posicao_y", garagem[gr_id][gr_int_posicao][1]);
  252.     DOF2_SetFloat(string, "gr_int_posicao_z", garagem[gr_id][gr_int_posicao][2]);
  253.     DOF2_SetFloat(string, "gr_int_posicao_r", garagem[gr_id][gr_int_posicao][3]);
  254.     DOF2_SaveFile();
  255.     return true;
  256. }
  257.  
  258. //outros
  259. public OnFilterScriptInit()
  260. {
  261.     new string[128], Float:ext_posicao[4], Float:int_posicao[4];
  262.     for(new casaid = 0; casaid < max_prop; casaid++)
  263.     {
  264.         format(string, sizeof string, "Propriedades/prop %d.a", casaid);
  265.         if(DOF2_FileExists(string))
  266.         {
  267.             propriedade[casaid][pr_ativa] = DOF2_GetBool(string, "pr_ativa");
  268.             propriedade[casaid][pr_porta] = DOF2_GetBool(string, "pr_porta");
  269.  
  270.             format(propriedade[casaid][pr_dono], 32, "%s", DOF2_GetString(string, "pr_dono"));
  271.  
  272.             propriedade[casaid][pr_preco] = DOF2_GetInt(string, "pr_preco");
  273.             propriedade[casaid][pr_level] = DOF2_GetInt(string, "pr_level");
  274.  
  275.             propriedade[casaid][pr_tamanho] = DOF2_GetInt(string, "pr_tamanho");
  276.             propriedade[casaid][pr_interior] = DOF2_GetInt(string, "pr_interior");
  277.             propriedade[casaid][pr_world] = DOF2_GetInt(string, "pr_world");
  278.  
  279.             propriedade[casaid][pr_ext_posicao][0] = DOF2_GetFloat(string, "pr_ext_posicao_x");
  280.             propriedade[casaid][pr_ext_posicao][1] = DOF2_GetFloat(string, "pr_ext_posicao_y");
  281.             propriedade[casaid][pr_ext_posicao][2] = DOF2_GetFloat(string, "pr_ext_posicao_z");
  282.             propriedade[casaid][pr_ext_posicao][3] = DOF2_GetFloat(string, "pr_ext_posicao_r");
  283.  
  284.             propriedade[casaid][pr_int_posicao][0] = DOF2_GetFloat(string, "pr_int_posicao_x");
  285.             propriedade[casaid][pr_int_posicao][1] = DOF2_GetFloat(string, "pr_int_posicao_y");
  286.             propriedade[casaid][pr_int_posicao][2] = DOF2_GetFloat(string, "pr_int_posicao_z");
  287.             propriedade[casaid][pr_int_posicao][3] = DOF2_GetFloat(string, "pr_int_posicao_r");
  288.  
  289.             ext_posicao[0] = propriedade[casaid][pr_ext_posicao][0];
  290.             ext_posicao[1] = propriedade[casaid][pr_ext_posicao][1];
  291.             ext_posicao[2] = propriedade[casaid][pr_ext_posicao][2];
  292.             ext_posicao[3] = propriedade[casaid][pr_ext_posicao][3];
  293.             int_posicao[0] = propriedade[casaid][pr_int_posicao][0];
  294.             int_posicao[1] = propriedade[casaid][pr_int_posicao][1];
  295.             int_posicao[2] = propriedade[casaid][pr_int_posicao][2];
  296.             int_posicao[3] = propriedade[casaid][pr_int_posicao][3];
  297.            
  298.             propriedade[casaid][pr_ext_pickup] = CreatePickup(1273, 1, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  299.             propriedade[casaid][pr_int_pickup] = CreatePickup(19198, 1, int_posicao[0], int_posicao[1], int_posicao[2]+0.2, casaid);
  300.             if(!strcmp(propriedade[casaid][pr_dono], "Ninguem", true))
  301.             {
  302.                 format(string, 128, "{00FF00}[Propriedade a venda]{FFFFFF}\n{FF0000}Level:{FFFFFF} %d\n{FF0000}Preço:{FFFFFF} $%d", propriedade[casaid][pr_level], propriedade[casaid][pr_preco]);
  303.             }
  304.             else
  305.             {
  306.                 format(string, 128, "{00FF00}[Propriedade]\nDono:{FFFFFF} %s", propriedade[casaid][pr_dono]);
  307.             }
  308.             propriedade[casaid][pr_ext_label] = Create3DTextLabel(string, -1, ext_posicao[0], ext_posicao[1], ext_posicao[2]-0.2, 5.0, 0);
  309.             propriedade[casaid][pr_int_label] = Create3DTextLabel("[saida]", -1, int_posicao[0], int_posicao[1], int_posicao[2]-0.2, 5.0, casaid);
  310.         }
  311.     }
  312.     for(new gr_id = 0; gr_id < max_garagem; gr_id++)
  313.     {
  314.         format(string, sizeof string, "Propriedades/gar %d.a", gr_id);
  315.         if(DOF2_FileExists(string))
  316.         {
  317.             garagem[gr_id][gr_ativa] = DOF2_GetBool(string, "gr_ativa");
  318.             garagem[gr_id][gr_portao] = DOF2_GetBool(string, "gr_portao");
  319.  
  320.             garagem[gr_id][gr_casaid] = DOF2_GetInt(string, "gr_casaid");
  321.             garagem[gr_id][gr_world] = DOF2_GetInt(string, "gr_world");
  322.  
  323.             garagem[gr_id][gr_ext_posicao][0] = DOF2_GetFloat(string, "gr_ext_posicao_x");
  324.             garagem[gr_id][gr_ext_posicao][1] = DOF2_GetFloat(string, "gr_ext_posicao_y");
  325.             garagem[gr_id][gr_ext_posicao][2] = DOF2_GetFloat(string, "gr_ext_posicao_z");
  326.             garagem[gr_id][gr_ext_posicao][3] = DOF2_GetFloat(string, "gr_ext_posicao_r");
  327.  
  328.             garagem[gr_id][gr_int_posicao][0] = DOF2_GetFloat(string, "gr_int_posicao_x");
  329.             garagem[gr_id][gr_int_posicao][0] = DOF2_GetFloat(string, "gr_int_posicao_y");
  330.             garagem[gr_id][gr_int_posicao][0] = DOF2_GetFloat(string, "gr_int_posicao_z");
  331.             garagem[gr_id][gr_int_posicao][0] = DOF2_GetFloat(string, "gr_int_posicao_r");
  332.  
  333.             ext_posicao[0] = garagem[gr_id][gr_ext_posicao][0];
  334.             ext_posicao[1] = garagem[gr_id][gr_ext_posicao][1];
  335.             ext_posicao[2] = garagem[gr_id][gr_ext_posicao][2];
  336.             ext_posicao[3] = garagem[gr_id][gr_ext_posicao][3];
  337.  
  338.             garagem[gr_id][gr_ext_pickup] = CreatePickup(1277, 1, ext_posicao[0], ext_posicao[1], ext_posicao[2]);
  339.             garagem[gr_id][gr_int_pickup] = CreatePickup(19198, 1, 181.7559, 1741.1469, 110.9927+0.2, gr_id);
  340.  
  341.             garagem[gr_id][gr_ext_label] = Create3DTextLabel("[Garagem]", -1, ext_posicao[0], ext_posicao[1], ext_posicao[2]-0.2, 5.0, 0);
  342.             garagem[gr_id][gr_int_label] = Create3DTextLabel("[saida]", -1, 181.7559, 1741.1469, 110.9927, 5.0, gr_id);
  343.         }
  344.     }
  345.     return true;
  346. }
  347.  
  348. public OnFilterScriptExit()
  349. {
  350.     DOF2_Exit();
  351.     return true;
  352. }
  353.  
  354. stock GetName(playerid)
  355. {
  356.     new nome[MAX_PLAYER_NAME];
  357.     GetPlayerName(playerid, nome, sizeof(nome));
  358.     for(new i = 0; i < MAX_PLAYER_NAME; i++)
  359.     {
  360.         if(nome[i] == '_') nome[i] = ' ';
  361.     }
  362.     return nome;
  363. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement