Advertisement
IntelGrapics

Sistema Escola - School Versão: 1.1

Aug 9th, 2014
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 31.08 KB | None | 0 0
  1. /*
  2.   Desenvolvido por IntelGrapics no forum SA:MP , reporte Bugs por MP e Mensagens no tópico de criação
  3.   Versões como 1.2 já estão sendo desenvolvidas pra retirar Bugs do codigo e adicionar novas coisas portanto
  4.   mantenha este codigo atualizado.
  5.  
  6.   Sua versão atual é 1.1 , verifique se a atualização 1.2 saiu pra corrigir bugs e adicionar novos conteudos.
  7.  
  8.   Mantenha os creditos, se você abaixar este Filtherscript pra postar em sites coloque os creditos.
  9. */
  10.  
  11.  
  12. #define FILTERSCRIPT
  13.  
  14. #include <a_samp>
  15. #include <zcmd>
  16. #include <dof2>
  17.  
  18. #define MAX_ESCOLAS 100
  19. #define Vermelho 0xFF0000AA
  20. #define Amarelo 0xFFFF00AA
  21. #define Verde 0x00FF40AA
  22. #define Azul 0x0080FFAA
  23.  
  24. enum PlayerDados {
  25.   Nome[25],
  26.   LEVEL,
  27.   UP,
  28.   Float: X,
  29.   Float: Y,
  30.   Float: Z,
  31.   bool: Interior,
  32.   Minutos,
  33.   Segundos,
  34.   PickupTemp
  35. };
  36.  
  37. enum School {
  38.   Pickupid,
  39.   Modelo,
  40.   Float: PX,
  41.   Float: PY,
  42.   Float: PZ,
  43.   Text3D:Text3DID,
  44.   Text3DMsg[30],
  45.   IconTipo,
  46.   Icon,
  47.   bool:Temporario,
  48.   Mensalidade,
  49.   FileID[100]
  50. };
  51.  
  52. new Escola[MAX_ESCOLAS][School];
  53. new Player[MAX_PLAYERS][PlayerDados];
  54.  
  55. new CallBackEschool[MAX_PLAYERS];
  56. forward SystemSchool(playerid);
  57.  
  58. public OnFilterScriptInit()
  59. {
  60.  new Str_FS[100];
  61.  if(DOF2_FileExists("IntelGrapics/[FS]School/Contas/"))
  62.  {
  63.   if(DOF2_FileExists("IntelGrapics/[FS]School/Escolas/"))
  64.   {
  65.    for(new Load = 0; Load < MAX_PLAYERS; Load++)
  66.    {
  67.     if(IsPlayerConnected(Load))
  68.     {
  69.      GetPlayerName(Load,Player[Load][Nome],MAX_PLAYER_NAME);
  70.      format(Str_FS,sizeof(Str_FS),"IntelGrapics/[FS]School/Contas/%s.ini",Player[Load][Nome]);
  71.      if(DOF2_FileExists(Str_FS))
  72.      {
  73.       Player[Load][LEVEL] = DOF2_GetInt(Str_FS,"Level");
  74.       Player[Load][UP] = DOF2_GetInt(Str_FS,"UP");
  75.       Player[Load][Minutos] = DOF2_GetInt(Str_FS,"Minutos");
  76.       Player[Load][Segundos] = DOF2_GetInt(Str_FS,"Segundos");
  77.       if(Player[Load][Minutos] > 0 || Player[Load][Segundos] > 0)
  78.       CallBackEschool[Load] = SetTimerEx("SystemSchool",1000,true,"i",Load);
  79.       for(new IconSetSchool = 0; IconSetSchool < MAX_ESCOLAS; IconSetSchool++)
  80.       {
  81.        if(Escola[IconSetSchool][Icon] > 0)
  82.        if(Escola[IconSetSchool][IconTipo] == 0)
  83.        SetPlayerMapIcon(Load,IconSetSchool,Escola[IconSetSchool][PX],Escola[IconSetSchool][PY],Escola[IconSetSchool][PZ],Escola[IconSetSchool][Icon],0, MAPICON_LOCAL );
  84.        else SetPlayerMapIcon(Load,IconSetSchool,Escola[IconSetSchool][PX],Escola[IconSetSchool][PY],Escola[IconSetSchool][PZ],Escola[IconSetSchool][Icon],0, MAPICON_GLOBAL );
  85.       }
  86.      }
  87.     }
  88.    }
  89.   }
  90.   else printf("| ERRO |: Pasta: \"IntelGrapics/[FS]School/Escolas/\" esta em falta.");
  91.  }
  92.  else printf("| ERRO |: Pasta: \"IntelGrapics/[FS]School/Contas/\" esta em falta.");
  93.  CarregarDDosEscola(1);
  94.  return 1;
  95. }
  96.  
  97. public OnPlayerConnect(playerid)
  98. {
  99.  new Str_CN[100];
  100.  GetPlayerName(playerid,Player[playerid][Nome],MAX_PLAYER_NAME);
  101.  format(Str_CN,sizeof(Str_CN),"IntelGrapics/[FS]School/Contas/%s.ini",Player[playerid][Nome]);
  102.  if(DOF2_FileExists(Str_CN))
  103.  {
  104.   Player[playerid][LEVEL] = DOF2_GetInt(Str_CN,"Level");
  105.   Player[playerid][UP] = DOF2_GetInt(Str_CN,"UP");
  106.   Player[playerid][Minutos] = DOF2_GetInt(Str_CN,"Minutos");
  107.   Player[playerid][Segundos] = DOF2_GetInt(Str_CN,"Segundos");
  108.   if(Player[playerid][Minutos] > 0 || Player[playerid][Segundos] > 0)
  109.   CallBackEschool[playerid] = SetTimerEx("SystemSchool",1000,true,"i",playerid);
  110.   for(new IconSetSchools = 0; IconSetSchools < MAX_ESCOLAS; IconSetSchools++)
  111.   {
  112.    if(Escola[IconSetSchools][Icon] > 0)
  113.    if(Escola[IconSetSchools][IconTipo] == 0)
  114.    SetPlayerMapIcon(playerid,IconSetSchools,Escola[IconSetSchools][PX],Escola[IconSetSchools][PY],Escola[IconSetSchools][PZ],Escola[IconSetSchools][Icon],0, MAPICON_LOCAL );
  115.    else SetPlayerMapIcon(playerid,IconSetSchools,Escola[IconSetSchools][PX],Escola[IconSetSchools][PY],Escola[IconSetSchools][PZ],Escola[IconSetSchools][Icon],0, MAPICON_GLOBAL );
  116.   }
  117.  }
  118.  else DOF2_CreateFile(Str_CN);
  119.  return 1;
  120. }
  121.  
  122. public OnPlayerDisconnect(playerid, reason)
  123. {
  124.  new Str_DS[100];
  125.  format(Str_DS,sizeof(Str_DS),"IntelGrapics/[FS]School/Contas/%s.ini",Player[playerid][Nome]);
  126.  if(DOF2_FileExists(Str_DS))
  127.  {
  128.   DOF2_SetInt(Str_DS,"Level",Player[playerid][LEVEL]);
  129.   DOF2_SetInt(Str_DS,"UP",Player[playerid][UP]);
  130.   DOF2_SetInt(Str_DS,"Minutos",Player[playerid][Minutos]);
  131.   DOF2_SetInt(Str_DS,"Segundos",Player[playerid][Segundos]);
  132.   DOF2_SaveFile();
  133.  }
  134.  return 1;
  135. }
  136.  
  137. CMD:minhaexperiencia(playerid)
  138. {
  139.  new Str_ME[100];
  140.  SendClientMessage(playerid,-1,"--------------------------------------------------------------------------------------------------------------------");
  141.  format(Str_ME,sizeof(Str_ME),"[ Experiencia ]: Você possue: %d Leveis de ( %d / 5 ) Experiencias restantes pra upar.\n\n",Player[playerid][LEVEL],Player[playerid][UP]);
  142.  SendClientMessage(playerid,Verde,Str_ME);
  143.  SendClientMessage(playerid,Verde,"[ INFO ]: Receba Experiencias visitando Escolas ou Universidades em San Andreas.");
  144.  SendClientMessage(playerid,-1,"--------------------------------------------------------------------------------------------------------------------");
  145.  return 1;
  146. }
  147.  
  148. CMD:entrarescola(playerid)
  149. {
  150.  new Entrar[100];
  151.  if(CheckPlayerPickupModel(playerid) != 9999)
  152.  {
  153.   if(Escola[CheckPlayerPickupModel(playerid)][Temporario] == false)
  154.   {
  155.    if(Player[playerid][Minutos] <= 0 && Player[playerid][Segundos] <= 0)
  156.    {
  157.     if(GetPlayerMoney(playerid) >= Escola[CheckPlayerPickupModel(playerid)][Mensalidade])
  158.     {
  159.      Player[playerid][Minutos] = 5;
  160.      Player[playerid][Segundos] = 59;
  161.      Player[playerid][Interior] = true;
  162.      GivePlayerMoney(playerid,-Escola[CheckPlayerPickupModel(playerid)][Mensalidade]);
  163.      format(Entrar,sizeof(Entrar),"[ INFO ]: Você pagou R$ %d pra assistir uma aula, Digite: /SairEscola pra sair",Escola[CheckPlayerPickupModel(playerid)][Mensalidade]);
  164.      SendClientMessage(playerid,Verde,Entrar);
  165.      SendClientMessage(playerid,Verde,"[ INFO ]: Você pode desligar o som da escola usando: '/DesligarSomEscola'");
  166.      format(Entrar,sizeof(Entrar),"~r~-%d",Escola[CheckPlayerPickupModel(playerid)][Mensalidade]);
  167.      GameTextForPlayer(playerid, Entrar, 5000, 4);
  168.      PlayerPlaySound(playerid,1076,0.0,0.0,0.0);
  169.      SetPlayerPos(playerid,1494.4003,1304.2990,1093.2891);
  170.      SetPlayerInterior(playerid, 3);
  171.      CallBackEschool[playerid] = SetTimerEx("SystemSchool",1000,true,"i",playerid);
  172.     }
  173.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não tem dinheiro pra assistir a aula.");
  174.    }
  175.    else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você acessou a escola recentemente, volte mais tarde.");
  176.   }
  177.   else SendClientMessage(playerid,Vermelho,"[ INFO ]: Está escola está fechada pela Administração por Manutenção");
  178.  }
  179.  else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não está em uma escola");
  180.  return 1;
  181. }
  182.  
  183. CMD:infomensalidade(playerid)
  184. {
  185.  new InfoM[100];
  186.  if(CheckPlayerPickupModel(playerid) != 9999)
  187.  {
  188.   format(InfoM,sizeof(InfoM),"~~> Valor da Mensalidade desta escola é de R$ %d Reais !",Escola[CheckPlayerPickupModel(playerid)][Mensalidade]);
  189.   SendClientMessage(playerid,Verde,InfoM);
  190.   format(InfoM,sizeof(InfoM),"~~> Valor de Rembolso de Expulsão R$ %d Reais",Escola[CheckPlayerPickupModel(playerid)][Mensalidade] / 2);
  191.   SendClientMessage(playerid,Verde,InfoM);
  192.  }
  193.  else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não está em uma escola");
  194.  return 1;
  195. }
  196.  
  197. CMD:sairescola(playerid)
  198. {
  199.  if(Player[playerid][Interior] == true)
  200.  {
  201.   SetPlayerPos(playerid,Escola[Player[playerid][PickupTemp]][PX],Escola[Player[playerid][PickupTemp]][PY],Escola[Player[playerid][PickupTemp]][PZ]);
  202.   SendClientMessage(playerid,Verde,"[ INFO ]: Você saiu da aula, use: /EntrarEscola pra participar novamente.");
  203.   GivePlayerMoney(playerid,Escola[Player[playerid][PickupTemp]][Mensalidade]);
  204.   PlayerPlaySound(playerid,1077,0.0,0.0,0.0);
  205.   KillTimer(CallBackEschool[playerid]);
  206.   Player[playerid][Interior] = false;
  207.   Player[playerid][Segundos] = 0;
  208.   Player[playerid][Minutos] = 0;
  209.   SetPlayerInterior(playerid,0);
  210.  }
  211.  else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não esta em uma aula no momento.");
  212.  return 1;
  213. }
  214.  
  215. CMD:setarescola(playerid)
  216. {
  217.  if(IsPlayerAdmin(playerid))
  218.  {
  219.   ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  220.  }
  221.  else SendClientMessage(playerid,Vermelho,"[ ERRO ]: Você não tem permição.");
  222.  return 1;
  223. }
  224.  
  225. CMD:ativarsomescola(playerid)
  226. {
  227.  if(Player[playerid][Interior] == true)
  228.  {
  229.   SendClientMessage(playerid,Verde,"[ INFO ]: Seu som foi ativado(a), use: /DesligarSomEscola pra ativa-lo novamente.");
  230.   PlayerPlaySound(playerid,1076,0.0,0.0,0.0);
  231.  }
  232.  else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não está na escola pra desativar seu som.");
  233.  return 1;
  234. }
  235.  
  236. CMD:desligarsomescola(playerid)
  237. {
  238.  if(Player[playerid][Interior] == true)
  239.  {
  240.   SendClientMessage(playerid,Verde,"[ INFO ]: Seu som foi desativado, use: /AtivarSomEscola pra ativa-lo novamente.");
  241.   PlayerPlaySound(playerid,1077,0.0,0.0,0.0);
  242.  }
  243.  else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não está na escola pra desativar seu som.");
  244.  return 1;
  245. }
  246.  
  247. public OnPlayerDeath(playerid, killerid, reason)
  248. {
  249.  PlayerPlaySound(playerid,1077,0.0,0.0,0.0);
  250.  if(Player[playerid][Interior] == true)
  251.  {
  252.   if(IsPlayerInRangeOfPoint(playerid,50.0,1494.4003,1304.2990,1093.2891))
  253.   {
  254.    PlayerPlaySound(killerid,1077,0.0,0.0,0.0);
  255.    SetPlayerPos(killerid,Escola[Player[killerid][PickupTemp]][PX],Escola[Player[killerid][PickupTemp]][PY],Escola[Player[killerid][PickupTemp]][PZ]);
  256.    SendClientMessage(killerid,Verde,"[ INFO ]: Você Matou um estudante e foi expulso da Escola.");
  257.    Player[killerid][Interior] = false;
  258.    SetPlayerInterior(killerid,0);
  259.   }
  260.  }
  261.  Player[playerid][Interior] = false;
  262.  Player[playerid][Minutos] = 0;
  263.  Player[playerid][Segundos] = 0;
  264.  return 1;
  265. }
  266.  
  267. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  268. {
  269.  if(newkeys & KEY_SECONDARY_ATTACK)
  270.  {
  271.   if(CheckPlayerPickupModel(playerid) != 9999)
  272.   {
  273.    cmd_entrarescola(playerid);
  274.   }
  275.  }
  276.  return 1;
  277. }
  278.  
  279. public OnPlayerPickUpPickup(playerid, pickupid)
  280. {
  281.  if(CheckPlayerPickupModel(playerid) != 9999)
  282.  {
  283.   if(Escola[CheckPlayerPickupModel(playerid)][Temporario] == false)
  284.   {
  285.    if(Player[playerid][Minutos] <= 0 && Player[playerid][Segundos] <= 0)
  286.    SendClientMessage(playerid,-1,"| ESCOLA |: Seja Bem-Vindo(a) a Escola, use: \"/EntrarEscola\" ou aperte: 'F' pra entrar.");
  287.    else SendClientMessage(playerid,Vermelho,"| ESCOLA |: Você já acessou escolas recentemente, volte mais tarde.");
  288.   }
  289.  }
  290.  return 1;
  291. }
  292.  
  293. public OnPlayerText(playerid, text[])
  294. {
  295.  new Str_T[100];
  296.  if(Player[playerid][Interior] == true)
  297.  {
  298.   SetPVarInt(playerid,"ADVERTENCIAS_CHAT",GetPVarInt(playerid,"ADVERTENCIAS_CHAT")+1);
  299.   if(GetPVarInt(playerid,"ADVERTENCIAS_CHAT") < 3)
  300.   {
  301.    PlayerPlaySound(playerid,1058,0.0,0.0,0.0);
  302.    format(Str_T,sizeof(Str_T),"[ INFO ]: Você está assistindo aula e não pode falar ! ( Advertencia: %d / 3)",GetPVarInt(playerid,"ADVERTENCIAS_CHAT"));
  303.    SendClientMessage(playerid,Vermelho,Str_T);
  304.    return 1;
  305.   }
  306.   format(Str_T,sizeof(Str_T),"[ INFO ]: Você recebeu rembolso de R$ %d do dinheiro pago na aula R$ %d ",Escola[Player[playerid][PickupTemp]][Mensalidade] / 2,Escola[Player[playerid][PickupTemp]][Mensalidade]);
  307.   SetPlayerPos(playerid,Escola[Player[playerid][PickupTemp]][PX],Escola[Player[playerid][PickupTemp]][PY],Escola[Player[playerid][PickupTemp]][PZ]);
  308.   SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não respeitou as regras e foi expulso da aula !");
  309.   GivePlayerMoney(playerid,Escola[Player[playerid][PickupTemp]][Mensalidade] / 2);
  310.   SendClientMessage(playerid,Verde,Str_T);
  311.   GameTextForPlayer(playerid,"Expulso da Aula", 5000, 4);
  312.   PlayerPlaySound(playerid,1077,0.0,0.0,0.0);
  313.   SetPVarInt(playerid,"ADVERTENCIAS_CHAT",0);
  314.   Player[playerid][Interior] = false;
  315.   SetPlayerInterior(playerid,0);
  316.  }
  317.  return 1;
  318. }
  319.  
  320. public SystemSchool(playerid)
  321. {
  322.  new SC[120];
  323.  if(IsPlayerConnected(playerid))
  324.  {
  325.   if(Player[playerid][Segundos] > 0) Player[playerid][Segundos] -=1;
  326.   else if(Player[playerid][Minutos] == 0)
  327.   {
  328.    PlayerPlaySound(playerid,1077,0.0,0.0,0.0);
  329.    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  330.    if(Player[playerid][Interior] == true)
  331.    {
  332.     Player[playerid][Minutos] = 10;
  333.     Player[playerid][Interior] = false;
  334.     if(Player[playerid][UP] >= 4)
  335.     {
  336.      Player[playerid][LEVEL] += 1, Player[playerid][UP] = 0;
  337.      format(SC,sizeof(SC),"[ INFO ]: Você recebeu +1 Level no total de %d Leveis por Juntar ( 5 / 5 ) Experiencias!",Player[playerid][LEVEL]);
  338.      SendClientMessage(playerid,Verde,SC);
  339.     }
  340.     else
  341.     {
  342.      Player[playerid][UP] += 1;
  343.      format(SC,sizeof(SC),"[ INFO ]: Você Recebeu ( %02d / 5 ) Experiencias",Player[playerid][UP]);
  344.      SendClientMessage(playerid,Verde,SC);
  345.     }
  346.     SetPlayerPos(playerid,Escola[Player[playerid][PickupTemp]][PX],Escola[Player[playerid][PickupTemp]][PY],Escola[Player[playerid][PickupTemp]][PZ]);
  347.     SetPlayerInterior(playerid,0);
  348.    }
  349.    else SendClientMessage(playerid,Verde,"[ INFO ]: Você foi desbloqueado de acessar escolas."),KillTimer(CallBackEschool[playerid]);
  350.   }
  351.   else
  352.   {
  353.    Player[playerid][Minutos] -=1, Player[playerid][Segundos] = 59;
  354.    if(Player[playerid][Interior] == true)
  355.    {
  356.     if(IsPlayerInRangeOfPoint(playerid,50.0,1494.4003,1304.2990,1093.2891))
  357.     {
  358.      if(Player[playerid][Minutos] > 0)
  359.      {
  360.       format(SC,sizeof(SC),"[ INFO ]: Parabéns, você concluiu +1 Minuto de %02d Minutos restantes pra acabar as suas aulas !",Player[playerid][Minutos]);
  361.       SendClientMessage(playerid,Verde,SC);
  362.      }
  363.      else SendClientMessage(playerid,Verde,"[ INFO ]: Suas aulas serão encerradas daqui a 59 Segundos");
  364.      PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
  365.     }
  366.     else
  367.     {
  368.      SendClientMessage(playerid,Verde,"[ INFO ]: Você não esta na sala de aula e foi expulso, seu dinheiro foi devolvido.");
  369.      GivePlayerMoney(playerid,Escola[Player[playerid][PickupTemp]][Mensalidade]);
  370.      Player[playerid][Minutos] = 0;
  371.      Player[playerid][Segundos] = 0;
  372.      KillTimer(CallBackEschool[playerid]);
  373.     }
  374.    }
  375.   }
  376.  }
  377.  else KillTimer(CallBackEschool[playerid]);
  378.  return 1;
  379. }
  380.  
  381. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  382. {
  383.  new Str_R[100];
  384.  GetPlayerPos(playerid,Player[playerid][X],Player[playerid][Y],Player[playerid][Z]);
  385.  switch(dialogid)
  386.  {
  387.   case 1:
  388.   {
  389.    if(response)
  390.    {
  391.     if(listitem == 0)
  392.     {
  393.      if(CheckPlayerPickupModel(playerid) == 9999)
  394.      ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Modelo Pickup","{FFFFFF}Indique a Pickup ID ( Padrão: 1239 ) pra ser utilizada","Setar","Voltar");
  395.      else SendClientMessage(playerid,Vermelho,"[ INFO ]: Não pode criar uma Pickup sobre a outra.");
  396.     }
  397.     else if(CheckPlayerPickupModel(playerid) != 9999)
  398.     {
  399.      switch(listitem)
  400.      {
  401.       case 1: ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Informação","{FF0000}Atenção:{FFFFFF} Deletar a Pickup deletara todo o seu conjunto , desde o 3D Text ao icone da Pickup no mapa.\n\n{FF0000}Lembrando:{FFFFFF} É possivel recuperar o progeto perdido apos deletado não deletando os arquivos de salvamento.\n\nDeseja deletar a pickup e seu progeto??","Continuar","Voltar");
  402.       case 2: ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"3D Text","{FFFFFF}Indique a Mensagem pro 3D Text","Setar","Voltar");
  403.       case 3: ShowPlayerDialog(playerid,6,DIALOG_STYLE_MSGBOX,"Confirmação de Operação","{FFFFFF}Gostaria de deletar os conteudos do 3D Text?\n\n{FF0000}- É possivel recuperar re-criando o 3D Text e não dando Reset por dar Lag.","Deletar","Voltar");
  404.       case 4: ShowPlayerDialog(playerid,7,DIALOG_STYLE_INPUT,"Mensalidade Escolar","{FFFFFF}Indique o Valor que será pago por pessoas assistirem uma aula:","Setar","Voltar");
  405.       case 5: ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Icone de Mapa","{FFFFFF}Indique o ID do Icone que será setado no mapa dos jogadores:\n\n{FF0000}- Icone do Mapa será mostrado apenas quando acabar esta residencia.","Setar","Voltar");
  406.       case 6: ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Confirmação de Operação","{FFFFFF}Você Gostaria de Deletar o Icone desta Escola?\n\n- Você pode recuperar o icone não salvando os dados e dando Re-Set!","Sim","Voltar");
  407.       case 7: ShowPlayerDialog(playerid,11,DIALOG_STYLE_MSGBOX,"Confirmação de Operação","{FFFFFF}Recarregando o Progeto você perderá todas as alterações feitas deixando as originais.\n\n{FF0000} - Evite dar ReSets diarios pra evitar Lags devidos a Loopings de Carregamento.","Resetar","Voltar");
  408.       case 8: ShowPlayerDialog(playerid,12,DIALOG_STYLE_MSGBOX,"Confirmação de Operação","{FFFFFF}Você gostaria mesmo de Salvar as alterações feitas nesta escola?\n\nVocê pode deletar o progeto apos salvo clicando em: \"Deletar Progeto\".\n","Salvar","Voltar");
  409.      }
  410.     }
  411.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Necessário estar dentro de uma Pickup!");
  412.    }
  413.   }
  414.   case 2:
  415.   {
  416.    if(response)
  417.    {
  418.     if(IsNumeric(inputtext) && strlen(inputtext) > 0)
  419.     {
  420.      new Pickup = CreatePickup(strval(inputtext),1,Player[playerid][X],Player[playerid][Y],Player[playerid][Z],-1);
  421.      SendClientMessage(playerid,Verde,"[ INFO ]: Pickup criado com sucesso.");
  422.      Escola[Pickup][Pickupid] = Pickup;
  423.      Escola[Pickup][Modelo] = strval(inputtext);
  424.      Escola[Pickup][Temporario] = true;
  425.      Escola[Pickup][PX] = Player[playerid][X];
  426.      Escola[Pickup][PY] = Player[playerid][Y];
  427.      Escola[Pickup][PZ] = Player[playerid][Z];
  428.     }
  429.     else SendClientMessage(playerid,Vermelho,"[ ERRO ]: Caracter digitado não é valido(a)");
  430.    }
  431.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  432.   }
  433.   case 3:
  434.   {
  435.    if(response)
  436.    {
  437.     SendClientMessage(playerid,Verde,"[ INFO ]: Deletado com sucesso.");
  438.     strdel(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg],0,30);
  439.     DestroyPickup(Escola[Player[playerid][PickupTemp]][Pickupid]);
  440.     Delete3DTextLabel(Escola[Player[playerid][PickupTemp]][Text3DID]);
  441.     for(new Dells = 0; Dells < MAX_PLAYERS; Dells++)
  442.     RemovePlayerMapIcon(Dells,Player[playerid][PickupTemp]);
  443.     Escola[Player[playerid][PickupTemp]][Pickupid] = 0;
  444.     Escola[Player[playerid][PickupTemp]][Icon] = 0;
  445.     if(Escola[CheckPlayerPickupModel(playerid)][Temporario] == false)
  446.     {
  447.      for(new PlayersAula = 0; PlayersAula < MAX_PLAYERS; PlayersAula++)
  448.      {
  449.       if(Player[PlayersAula][Interior] == true && Player[PlayersAula][PickupTemp] == CheckPlayerPickupModel(playerid))
  450.       {
  451.        SetPlayerPos(PlayersAula,Escola[Player[PlayersAula][PickupTemp]][PX],Escola[Player[PlayersAula][PickupTemp]][PY],Escola[Player[PlayersAula][PickupTemp]][PZ]);
  452.        SendClientMessage(PlayersAula,Vermelho,"[ ESCOLA ]: Está escola está sendo deletada pela equipe Staff e você foi expulso.");
  453.        SendClientMessage(PlayersAula,Vermelho,"[ ESCOLA ]: Você foi desbloqueado de acessar escolas por ser expulso.");
  454.        Player[PlayersAula][Interior] = false;
  455.        Player[PlayersAula][Segundos] = 0;
  456.        Player[PlayersAula][Minutos] = 0;
  457.        SetPlayerInterior(PlayersAula,0);
  458.       }
  459.      }
  460.      ShowPlayerDialog(playerid,4,DIALOG_STYLE_MSGBOX,"Deletar Progeto","{FFFFFF}Foi Detectado Arquivos de Salvamento deste arquivo, não deletando os arquivos apos o servidor\nreligar a Escola estará devolta mesmo neste momento estar deletada.\n\nVocê Gostaria de Deletar os arquivos de salvamento desta escola?","Sim","Não");
  461.     }
  462.     else
  463.     {
  464.      Escola[Player[playerid][PickupTemp]][PX] = 0.0;
  465.      Escola[Player[playerid][PickupTemp]][PY] = 0.0;
  466.      Escola[Player[playerid][PickupTemp]][PZ] = 0.0;
  467.     }
  468.    }
  469.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  470.   }
  471.   case 4:
  472.   {
  473.    if(response)
  474.    {
  475.     for(new Procurar = 0; Procurar < MAX_ESCOLAS; Procurar++)
  476.     {
  477.      format(Str_R,sizeof(Str_R),"IntelGrapics/[FS]School/Escolas/%d.ini",Procurar);
  478.      if(DOF2_FileExists(Str_R))
  479.      {
  480.       if(IsPlayerInRangeOfPoint(playerid,3.0,DOF2_GetFloat(Str_R,"PX"),DOF2_GetFloat(Str_R,"PY"),DOF2_GetFloat(Str_R,"PZ")))
  481.       {
  482.        DOF2_RemoveFile(Str_R);
  483.        SendClientMessage(playerid,Verde,"[ INFO ]: Arquivo Localizado e deletado com sucesso.");
  484.       }
  485.      }
  486.     }
  487.    }
  488.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  489.    Escola[Player[playerid][PickupTemp]][PX] = 0.0;
  490.    Escola[Player[playerid][PickupTemp]][PY] = 0.0;
  491.    Escola[Player[playerid][PickupTemp]][PZ] = 0.0;
  492.   }
  493.   case 5:
  494.   {
  495.    if(response)
  496.    {
  497.     if(strlen(inputtext) > 0 && strlen(inputtext) <= 30)
  498.     {
  499.      if(strlen(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg]) == 0)
  500.      Escola[CheckPlayerPickupModel(playerid)][Text3DID] = Create3DTextLabel(inputtext,0xFFFFFFAA,Escola[CheckPlayerPickupModel(playerid)][PX],Escola[CheckPlayerPickupModel(playerid)][PY],Escola[CheckPlayerPickupModel(playerid)][PZ],40.0,0,0);
  501.      else Update3DTextLabelText(Escola[CheckPlayerPickupModel(playerid)][Text3DID],0xFFFFFFAA,inputtext);
  502.      strdel(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg],0,30);
  503.      strins(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg],inputtext,0,30);
  504.     }
  505.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Digite entre 0 a 30 Caracacters !");
  506.    }
  507.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  508.   }
  509.   case 6:
  510.   {
  511.    if(response)
  512.    {
  513.     if(strlen(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg]) > 0)
  514.     {
  515.      Delete3DTextLabel(Escola[Player[playerid][PickupTemp]][Text3DID]);
  516.      strdel(Escola[CheckPlayerPickupModel(playerid)][Text3DMsg],0,30);
  517.      SendClientMessage(playerid,Verde,"[ INFO ]: 3D Text foi deletado com sucesso.");
  518.     }
  519.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Não há 3D Text nesta Pickup.");
  520.    }
  521.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  522.   }
  523.   case 7:
  524.   {
  525.    if(response)
  526.    {
  527.     if(IsNumeric(inputtext) && strlen(inputtext) > 0)
  528.     {
  529.      Escola[CheckPlayerPickupModel(playerid)][Mensalidade] = strval(inputtext);
  530.      format(Str_R,sizeof(Str_R),"[ INFO ]: Você setou a Mensalidade da Escola pra R$ %d Reais",strval(inputtext));
  531.      SendClientMessage(playerid,Verde,Str_R);
  532.     }
  533.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Valor de Mensalidade Invalido, Digite apenas numeros");
  534.    }
  535.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  536.   }
  537.   case 8:
  538.   {
  539.    if(response)
  540.    {
  541.     if(IsNumeric(inputtext) && strval(inputtext) > 0 && strval(inputtext) <= 63)
  542.     {
  543.      ShowPlayerDialog(playerid,9,DIALOG_STYLE_LIST,"Tipo de Globalização","Mapicon Local\nMapicon Global","Selecionar","Voltar");
  544.      Escola[CheckPlayerPickupModel(playerid)][Icon] = strval(inputtext);
  545.     }
  546.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: ID digitado Invalido, Digite Numeros entre 1 a 63");
  547.    }
  548.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  549.   }
  550.   case 9:
  551.   {
  552.    if(response)
  553.    {
  554.     new Tipo[][] = { "Local","Global" };
  555.     if(listitem == 0)
  556.     SetPlayerMapIcon(playerid,CheckPlayerPickupModel(playerid),Escola[CheckPlayerPickupModel(playerid)][PX],Escola[CheckPlayerPickupModel(playerid)][PY],Escola[CheckPlayerPickupModel(playerid)][PZ],Escola[CheckPlayerPickupModel(playerid)][Icon],0, MAPICON_LOCAL );
  557.     else SetPlayerMapIcon(playerid,CheckPlayerPickupModel(playerid),Escola[CheckPlayerPickupModel(playerid)][PX],Escola[CheckPlayerPickupModel(playerid)][PY],Escola[CheckPlayerPickupModel(playerid)][PZ],Escola[CheckPlayerPickupModel(playerid)][Icon],0, MAPICON_GLOBAL );
  558.     Escola[CheckPlayerPickupModel(playerid)][IconTipo] = listitem;
  559.     format(Str_R,sizeof(Str_R),"[ INFO ]: Você setou o Icone ID %d pra %s nesta escola.",Escola[CheckPlayerPickupModel(playerid)][Icon],Tipo[Escola[CheckPlayerPickupModel(playerid)][IconTipo]]);
  560.     SendClientMessage(playerid,Verde,Str_R);
  561.    }
  562.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  563.   }
  564.   case 10:
  565.   {
  566.    if(response)
  567.    {
  568.     if(Escola[CheckPlayerPickupModel(playerid)][Icon] > 0)
  569.     {
  570.      for(new Dell = 0; Dell < MAX_PLAYERS; Dell++)
  571.      RemovePlayerMapIcon(Dell,CheckPlayerPickupModel(playerid));
  572.      Escola[CheckPlayerPickupModel(playerid)][Icon] = 0;
  573.     }
  574.     else SendClientMessage(playerid,Vermelho,"[ INFO ]: Esta Escola não foi registrada com um icone.");
  575.    }
  576.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  577.   }
  578.   case 11:
  579.   {
  580.    if(response)
  581.    {
  582.     if(Escola[CheckPlayerPickupModel(playerid)][Temporario] == false) CarregarDDosEscola(0);
  583.     else SendClientMessage(playerid,Vermelho,"[ INFO]: Não é Possivel dar ReSet em Escolas não Concluidas ( Salvas ).");
  584.    }
  585.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  586.   }
  587.   case 12:
  588.   {
  589.    if(response)
  590.    {
  591.      if(Escola[CheckPlayerPickupModel(playerid)][Mensalidade] > 0 ) SalvarDDosEscola(playerid);
  592.      else SendClientMessage(playerid,Vermelho,"[ INFO ]: Você não setou a mensalidade.");
  593.    }
  594.    else ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Criação & Edição","Criar Pickup\nDeletar Pickup\nSetar 3D Text\nDeletar 3D Text\nSetar Valor Mensalidade\nSetar Icone de Mapa\nDeletar Icone\nRe-Set ( Recarregar )\nSalvar Dados ( Terminar )","Selecionar","Cancelar");
  595.   }
  596.  }
  597.  return 1;
  598. }
  599.  
  600. stock SalvarDDosEscola(playerid)
  601. {
  602.  new Str_SDD[100];
  603.  if(DOF2_FileExists("IntelGrapics/[FS]School/Escolas/"))
  604.  {
  605.   if(CheckPlayerPickupModel(playerid) != 9999)
  606.   {
  607.    for(new CreateFiles = 0; CreateFiles < MAX_ESCOLAS; CreateFiles++)
  608.    {
  609.     format(Str_SDD,sizeof(Str_SDD),"IntelGrapics/[FS]School/Escolas/%d.ini",CreateFiles);
  610.     if(DOF2_FileExists(Str_SDD))
  611.     {
  612.      if(IsPlayerInRangeOfPoint(playerid,3.0,DOF2_GetFloat(Str_SDD,"PX"),DOF2_GetFloat(Str_SDD,"PY"),DOF2_GetFloat(Str_SDD,"PZ")))
  613.      {
  614.       SendClientMessage(playerid,Verde,"[ INFO ]: Arquivo de Origem foi salvo em arquivo Existente.");
  615.       Escola[CheckPlayerPickupModel(playerid)][FileID] = CreateFiles;
  616.       break;
  617.      }
  618.     }
  619.     else Escola[CheckPlayerPickupModel(playerid)][FileID] = CreateFiles;
  620.    }
  621.    format(Str_SDD,sizeof(Str_SDD),"IntelGrapics/[FS]School/Escolas/%d.ini",Escola[CheckPlayerPickupModel(playerid)][FileID]);
  622.    DOF2_CreateFile(Str_SDD);
  623.    DOF2_SetInt(Str_SDD,"Modelo",Escola[CheckPlayerPickupModel(playerid)][Modelo]);
  624.    DOF2_SetFloat(Str_SDD,"PX",Escola[CheckPlayerPickupModel(playerid)][PX]);
  625.    DOF2_SetFloat(Str_SDD,"PY",Escola[CheckPlayerPickupModel(playerid)][PY]);
  626.    DOF2_SetFloat(Str_SDD,"PZ",Escola[CheckPlayerPickupModel(playerid)][PZ]);
  627.    DOF2_SetString(Str_SDD,"Text3DMsg",Escola[CheckPlayerPickupModel(playerid)][Text3DMsg]);
  628.    DOF2_SetInt(Str_SDD,"Icon",Escola[CheckPlayerPickupModel(playerid)][Icon]);
  629.    DOF2_SetInt(Str_SDD,"IconTipo",Escola[CheckPlayerPickupModel(playerid)][IconTipo]);
  630.    DOF2_SetInt(Str_SDD,"Mensalidade",Escola[CheckPlayerPickupModel(playerid)][Mensalidade]);
  631.    DOF2_SaveFile();
  632.    Escola[CheckPlayerPickupModel(playerid)][Temporario] = false;
  633.    SendClientMessage(playerid,Vermelho,"[ INFO ]: Dados Salvados com sucesso.");
  634.   }
  635.   else SendClientMessage(playerid,Vermelho,"[ ERRO ]: Você não está sobre uma Pickup!");
  636.  }
  637.  else SendClientMessage(playerid,Vermelho,"[ ERRO ]: O Progeto não pode ser salvo devido a falta de arquivos necessários pro salvamento.");
  638.  return 1;
  639. }
  640.  
  641. stock IsNumeric(const string[])
  642. {
  643.     for (new i = 0, j = strlen(string); i < j; i++)
  644.     {
  645.         if (string[i] > '9' || string[i] < '0') return 0;
  646.     }
  647.     return 1;
  648. }
  649.  
  650. stock CarregarDDosEscola(Typeid)
  651. {
  652.  new Str_CDD[150],Returnid;
  653.  for(new Detect = 0; Detect < MAX_ESCOLAS; Detect++)
  654.  {
  655.   format(Str_CDD,sizeof(Str_CDD),"IntelGrapics/[FS]School/Escolas/%d.ini",Detect);
  656.   if(DOF2_FileExists(Str_CDD))
  657.   {
  658.    if(Typeid == 1)
  659.    {
  660.     Returnid = CreatePickup(DOF2_GetInt(Str_CDD,"Modelo"),1,DOF2_GetFloat(Str_CDD,"PX"),DOF2_GetFloat(Str_CDD,"PY"),DOF2_GetFloat(Str_CDD,"PZ"),-1);
  661.     Escola[Returnid][Pickupid] = Returnid;
  662.    }
  663.    Escola[Returnid][Modelo] = DOF2_GetInt(Str_CDD,"Modelo");
  664.    Escola[Returnid][PX] = DOF2_GetFloat(Str_CDD,"PX");
  665.    Escola[Returnid][PY] = DOF2_GetFloat(Str_CDD,"PY");
  666.    Escola[Returnid][PZ] = DOF2_GetFloat(Str_CDD,"PZ");
  667.    Escola[Returnid][Icon] = DOF2_GetInt(Str_CDD,"Icon");
  668.    Escola[Returnid][IconTipo] = DOF2_GetInt(Str_CDD,"IconTipo");
  669.    Escola[Returnid][Mensalidade] = DOF2_GetInt(Str_CDD,"Mensalidade");
  670.    strins(Escola[Returnid][Text3DMsg],DOF2_GetString(Str_CDD,"Text3DMsg"),0,30);
  671.    if(strlen(Escola[Returnid][Text3DMsg]) && Typeid == 1)
  672.    {
  673.     Escola[Returnid][Text3DID] = Create3DTextLabel(Escola[Returnid][Text3DMsg],0xFFFFFFAA,Escola[Returnid][PX],Escola[Returnid][PY],Escola[Returnid][PZ],40.0,0,0);
  674.    }
  675.   }
  676.  }
  677.  return 1;
  678. }
  679.  
  680. stock CheckPlayerPickupModel(playerid)
  681. {
  682.  for(new Check = 0; Check < MAX_ESCOLAS; Check++)
  683.  {
  684.   if(IsPlayerInRangeOfPoint(playerid,3.0,Escola[Check][PX],Escola[Check][PY],Escola[Check][PZ]))
  685.   {
  686.    return Player[playerid][PickupTemp] = Check;
  687.   }
  688.  }
  689.  return 9999;
  690. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement