Advertisement
Axll

casa alha 0

Jul 6th, 2014
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.85 KB | None | 0 0
  1. #include a_samp
  2. #include zcmd
  3. #include sscanf2
  4.  
  5. #define GREEN   "{00FF00}"
  6. #define GRAY    "{8F8F8F}"
  7. #define RED     "{FF0000}"
  8. #define WHITE   "{FFFFFF}"
  9.  
  10. #define MAX_PLAYER_CASAS 10 //MAXIMO DE CASAS POR JOGADOR.
  11. #define MAX_CASA_MADEIRA 45 //MAXIMO DE OBJETOS DA CASA DE MADEIRA.
  12.  
  13. enum enum_casa {
  14.     objeto_modelo,
  15.     Float:objeto_x,
  16.     Float:objeto_y,
  17.     Float:objeto_z,
  18.    
  19.     Float:objeto_rx,
  20.     Float:objeto_ry,
  21.     Float:objeto_rz,
  22. }
  23.  
  24. enum enum_player_casas {
  25.     bool:casa_atividade,
  26.     casa_objeto[MAX_CASA_MADEIRA],
  27.     Text3D:casa_label[MAX_CASA_MADEIRA],
  28.  
  29.    
  30.     Float:porta_x,
  31.     Float:porta_y,
  32.     Float:porta_z,
  33.     bool:porta_estado,
  34.     bool:janelas_estado
  35. }
  36.  
  37. new casa_madeira[MAX_CASA_MADEIRA][enum_casa] = {
  38.     {3798, 43.61880, 1761.33789, 16.61903,   0.00000, 0.00000, 0.00000},
  39.     {3798, 43.61810, 1761.33789, 18.61000,   0.00000, 0.00000, 0.00000},
  40.     {3798, 43.61880, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  41.     {3798, 43.61880, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  42.     {3798, 43.61880, 1763.34033, 18.61000,   0.00000, 0.00000, 0.00000},
  43.     {3798, 43.61880, 1763.34033, 16.61900,   0.00000, 0.00000, 0.00000},
  44.     {3798, 43.61880, 1765.32996, 16.61900,   0.00000, 0.00000, 0.00000},
  45.     {3798, 43.61880, 1765.32996, 18.61000,   0.00000, 0.00000, 0.00000},
  46.     {3798, 43.61880, 1767.31372, 16.61900,   0.00000, 0.00000, 0.00000},
  47.     {3798, 43.61880, 1767.31372, 18.61000,   0.00000, 0.00000, 0.00000},
  48.     {3798, 43.61880, 1769.24915, 16.61900,   0.00000, 0.00000, 0.00000},
  49.     {3798, 43.61880, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  50.     {3798, 45.62350, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  51.     {3798, 45.62350, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  52.     {3798, 47.60400, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  53.     {3798, 47.60400, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  54.     {3798, 49.60110, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  55.     {3798, 49.60110, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  56.     {3798, 51.58880, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  57.     {3798, 51.58880, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  58.     {3798, 53.56760, 1759.33728, 16.61900,   0.00000, 0.00000, 0.00000},
  59.     {3798, 53.56760, 1759.33728, 18.61000,   0.00000, 0.00000, 0.00000},
  60.     {3798, 53.56760, 1761.31921, 16.61900,   0.00000, 0.00000, 0.00000},
  61.     {3798, 53.56760, 1763.30481, 16.61900,   0.00000, 0.00000, 0.00000},
  62.     {3798, 53.56760, 1765.28687, 16.61900,   0.00000, 0.00000, 0.00000},
  63.     {3798, 53.56760, 1767.26855, 16.61900,   0.00000, 0.00000, 0.00000},
  64.     {3798, 53.56760, 1769.24915, 16.61900,   0.00000, 0.00000, 0.00000},
  65.     {3798, 51.57380, 1769.24915, 15.33280,   0.00000, 0.00000, 0.00000},
  66.     {3798, 49.58140, 1769.24915, 15.33280,   0.00000, 0.00000, 0.00000},
  67.     {3798, 53.56760, 1761.31921, 18.61000,   0.00000, 0.00000, 0.00000},
  68.     {3798, 53.56760, 1763.30481, 18.61000,   0.00000, 0.00000, 0.00000},
  69.     {3798, 53.56760, 1765.28687, 18.61000,   0.00000, 0.00000, 0.00000},
  70.     {3798, 53.56760, 1767.26855, 18.61000,   0.00000, 0.00000, 0.00000},
  71.     {3798, 53.56760, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  72.     {3798, 51.57380, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  73.     {3798, 49.58140, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  74.     {3798, 47.60040, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  75.     {3798, 45.59880, 1769.24915, 18.61000,   0.00000, 0.00000, 0.00000},
  76.     {19377, 48.60540, 1764.23022, 20.51650,   0.00000, 90.00000, 0.00000},
  77.     {3798, 47.57810, 1769.24915, 16.61900,   0.00000, 0.00000, 0.00000},
  78.     {3798, 49.58140, 1769.24915, 20.61762,   180.00000, 0.00000, 0.00000},
  79.     {3798, 51.57380, 1769.24915, 20.61760,   180.00000, 0.00000, 0.00000},
  80.     {19325, 50.61561, 1769.70996, 17.22270,   0.00000, 0.00000, 90.00000},
  81.     {19303, 44.28300, 1769.79675, 17.76070,   0.00000, 0.00000, 0.00000},
  82.     {1497, 45.09679, 1769.72375, 16.50139,   0.00000, 0.00000, 0.00000} //porta fechada
  83. };
  84. new jogador_casa[MAX_PLAYERS][MAX_PLAYER_CASAS][enum_player_casas];
  85.  
  86. command(casa, playerid, params []) {
  87.     new comando[32], index;
  88.     if(sscanf(params, "s[32]I(-1)", comando, index)) {
  89.         SendClientMessage(playerid, -1, GREEN"Comandos disponiveis: "WHITE"maximo de casas por jogador "RED"10");
  90.         SendClientMessage(playerid, -1, "    criar, porta, janela");
  91.         SendClientMessage(playerid, -1, "Exemplo de uso "GRAY"/casa criar");
  92.         return true;
  93.     }
  94.     if(!strcmp(comando, "criar", true)) {
  95.         if(index != -1) return SendClientMessage(playerid, -1, RED"inválido: "WHITE"use /casa "RED"criar");
  96.         CreateHouse(playerid);
  97.         return true;
  98.     }
  99.     if(!strcmp(comando, "porta", true)) {
  100.         if(index == -1) return SendClientMessage(playerid, -1, RED"inválido: "WHITE"use /casa porta "RED"[casaid]");
  101.         if(jogador_casa[playerid][index][casa_atividade] == false) return SendClientMessage(playerid, -1, RED"invalido: "WHITE"esta casa nao existe ou você não é o dono.");
  102.         if(jogador_casa[playerid][index][porta_estado] == true) {
  103.             jogador_casa[playerid][index][porta_estado] = false;
  104.             SetObjectRot(jogador_casa[playerid][index][casa_objeto][44], 0.00000, 0.00000, -100.00000);
  105.             GameTextForPlayer(playerid, "~r~Aberta", 4000, 1);
  106.         }
  107.         else {
  108.             jogador_casa[playerid][index][porta_estado] = true;
  109.             SetObjectRot(jogador_casa[playerid][index][casa_objeto][44], 0.00000, 0.00000, 0.00000);
  110.             GameTextForPlayer(playerid, "~g~Fechada", 4000, 1);
  111.         }
  112.         return true;
  113.     }
  114.     if(!strcmp(comando, "janela", true)) {
  115.         if(index == -1) return SendClientMessage(playerid, -1, RED"inválido: "WHITE"use /casa janela "RED"[casaid]");
  116.         SendClientMessage(playerid, -1, "terminar comando.. objetos 26 e 27.. mover para cima e tals..");
  117.         return true;
  118.     }
  119.     return true;
  120. }
  121.  
  122. command(ircasa, playerid, params []) {
  123.     new id;
  124.     if(sscanf(params, "i", id)) return true;
  125.     new Float:ppos[3];
  126.     GetObjectPos(jogador_casa[playerid][id][casa_objeto][38], ppos[0], ppos[1], ppos[2]);
  127.     SetPlayerPos(playerid, ppos[0], ppos[1], ppos[2] - 3);
  128.     return true;
  129. }
  130.  
  131. stock CreateHouse(playerid) {
  132.     new string[10];
  133.     new Float:x, Float:y, Float:z, Float:casa_z;
  134.     GetPlayerPos(playerid, x, y, z);
  135.     SetPlayerPos(playerid, x + 3, y, z);
  136.     new index = ObterIndexValido(playerid);
  137.     if(index == MAX_PLAYER_CASAS+1) return SendClientMessage(playerid, -1, RED"Maximo de casas por jogador atingido");
  138.     for(new i = 0; i < MAX_CASA_MADEIRA; i++) {
  139.         if(i > 0) GetObjectPos(jogador_casa[playerid][index][casa_objeto][0], x, y, z);
  140.         if(i == 0) {
  141.             jogador_casa[playerid][index][casa_atividade] = true;
  142.             jogador_casa[playerid][index][porta_estado] = true;
  143.             jogador_casa[playerid][index][casa_objeto][i] = CreateObject(casa_madeira[i][objeto_modelo], x,  y, z, casa_madeira[i][objeto_rx], casa_madeira[i][objeto_ry], casa_madeira[i][objeto_rz]);
  144.         }
  145.         format(string, sizeof string, "index %d", i);
  146.         jogador_casa[playerid][index][casa_objeto][i] = CreateObject(casa_madeira[i][objeto_modelo], floatsub(casa_madeira[i][objeto_x], x), floatsub(casa_madeira[i][objeto_y], y), z - casa_madeira[i][objeto_z], casa_madeira[i][objeto_rx], casa_madeira[i][objeto_ry], casa_madeira[i][objeto_rz]);
  147.         jogador_casa[playerid][index][casa_label][i] = Create3DTextLabel(string, -1, floatsub(casa_madeira[i][objeto_x], x), floatsub(casa_madeira[i][objeto_y], y), z - casa_madeira[i][objeto_z] + z, 3.0, 0);
  148.     }
  149.     return true;
  150. }
  151.  
  152. stock ObterIndexValido(playerid) {
  153.     for(new i = 0; i < MAX_PLAYER_CASAS; i++) {
  154.         if(jogador_casa[playerid][i][casa_atividade] == true) continue;
  155.         if(i == MAX_PLAYER_CASAS-1) return MAX_PLAYER_CASAS+1;
  156.         return i;
  157.     }
  158.     return false;
  159. }
  160.  
  161. stock TesteMat() {
  162.     new Float:x, Float:y, Float:z;
  163.     x = 10.0;
  164.     y = 10.0;
  165.     z = 10.0;
  166.     for(new i = 0; i < 10; i++) {
  167.     for(new i = 0; i < MAX_CASA_MADEIRA; i++) {
  168.         if(i > 0) GetObjectPos(jogador_casa[0][index][casa_objeto][0], x, y, z);
  169.         if(i == 0) {
  170.             x = 10.0;
  171.             y = 10.0;
  172.             z = 10.0;
  173.         }
  174.         x = (10.0 - 5);
  175.         y = (10.0 - 5);
  176.         if(i = 5 || i = 6 || i = 7) {
  177.             z = (10.0 - random(2));
  178.         }
  179.        
  180.     }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement