Guest User

Untitled

a guest
Feb 1st, 2011
422
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.37 KB | None | 0 0
  1. //======================== [ Diretivas ] =======================================
  2.  
  3. #include <a_samp>
  4.  
  5. #define COLOR_GREEN          0x33AA33AA
  6. #define COLOR_BLUE 0x3FCFFFFF
  7.  
  8. //======================== [ Arrays ] =======================================
  9.  
  10. new
  11.     bool:bHost[MAX_PLAYERS],
  12.     iVagas,HotelCarros[10],
  13.     sString[128]
  14. ;
  15.  
  16. //======================== [ CallBacks ] =======================================
  17.  
  18. main()
  19. {
  20.     print("FS de hotel Simples ");
  21.     print(" Criado [iPs]-GooGle- , [iPs]Knife e [iPs]Drakon ");
  22. }
  23.  
  24.  
  25.  
  26. public OnFilterScriptInit()
  27. {
  28.     AddStaticPickup(1239,1,2217.3179,-1146.5724,1025.7969,15);
  29.  
  30.     Create3DTextLabel("Aqui você pode se Hospedar ou Deshospedar !",COLOR_BLUE,2217.3179,-1146.5724,1025.7969,15, 0, 50);
  31.     Create3DTextLabel("Hotel\nBem Vindo ao Hotel",COLOR_BLUE,2233.1387,-1159.7736,25.8906,15, 0, 50);
  32.     Create3DTextLabel("Saida\nTenha um bom dia",COLOR_BLUE,2213.9690,-1150.4792,1025.7969,15, 0, 50);
  33.  
  34.     HotelCarros[0] =    AddStaticVehicleEx(405,2228.01367188,-1156.13513184,25.81377029,88.83996582,-1,-1,50000000);
  35.     HotelCarros[1] =    AddStaticVehicleEx(405,2228.14086914,-1162.83337402,25.76814461,90.08544922,-1,-1,50000000);
  36.     HotelCarros[2] =    AddStaticVehicleEx(580,2216.77172852,-1170.51770020,25.63408661,269.64501953,-1,-1,50000000);
  37.     HotelCarros[3] =    AddStaticVehicleEx(580,2216.83642578,-1161.66687012,25.63408661,269.64501953,-1,-1,50000000);
  38.     HotelCarros[4] =    AddStaticVehicleEx(461,2206.31713867,-1176.70751953,25.40106392,269.90997314,-1,-1,50000000);
  39.     HotelCarros[5] =    AddStaticVehicleEx(461,2206.44824219,-1168.98254395,25.40106392,269.90661621,-1,-1,50000000);
  40.     HotelCarros[6] =    AddStaticVehicleEx(418,2206.32299805,-1161.00585938,25.91304779,270.09997559,-1,-1,50000000);
  41.     HotelCarros[7] =    AddStaticVehicleEx(418,2206.13183594,-1153.24804688,25.91304779,270.09887695,-1,-1,50000000);
  42.     HotelCarros[8] =    AddStaticVehicleEx(530,2227.93554688,-1170.24182129,25.52664757,90.54504395,-1,-1,50000000);
  43.     HotelCarros[9] =    AddStaticVehicleEx(530,2227.87255859,-1177.13598633,25.52664757,90.54382324,-1,-1,50000000);
  44.     return true;
  45. }
  46.  
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50.     Checar(playerid);
  51.     return true;
  52. }
  53.  
  54.  
  55. public OnPlayerDisconnect(playerid,reason)
  56. {
  57.     Salvar(playerid);
  58.     return true;
  59. }
  60.  
  61.  
  62. public OnPlayerCommandText( playerid, cmdtext[])
  63. {
  64.     if (!strcmp(cmdtext, "/deshospedar", true)) {
  65.         if(bHost[playerid] == false)
  66.             return SendClientMessage(playerid,COLOR_GREEN,"Você já está deshospedadado");
  67.  
  68.         --iVagas;
  69.         bHost[playerid] = false;
  70.         SendClientMessage(playerid,COLOR_GREEN,"Você se deshospedou, hotel agradece sua visita");
  71.         return true;
  72.     }
  73.     if (!strcmp(cmdtext, "/hospedar", true)) {
  74.         if(IsPlayerInRangeOfPoint(playerid, 10.0, 2217.3179,-1146.5724,1025.7969)) {
  75.             if(bHost[playerid] == true)
  76.                 return SendClientMessage(playerid,COLOR_GREEN,"Você já está hospedadado");
  77.  
  78.             if(iVagas == 15)
  79.                 return SendClientMessage(playerid,COLOR_GREEN,"Já estamos com lotação maxima");
  80.  
  81.             iVagas++;
  82.             SetPlayerInterior(playerid, 15);
  83.             bHost[playerid] = true;
  84.             Salvar(playerid);
  85.             SpawnPlayer(playerid);
  86.             format(sString,sizeof(sString),"Você ocupou a vaga %d/15 do hotel",iVagas);
  87.             SendClientMessage(playerid,COLOR_GREEN,"Você pagou uma tarifa de 2000 reais para se hospedar");
  88.             SendClientMessage(playerid,COLOR_GREEN,sString);
  89.         }
  90.         return true;
  91.     }
  92.     if (!strcmp(cmdtext, "/entrar", true)) {
  93.  
  94.         if(IsPlayerInRangeOfPoint(playerid,10.0,2233.1387,-1159.7736,25.8906)) {
  95.             GameTextForPlayer(playerid, "~p~Hotel", 5000, 1);
  96.             SetPlayerPos(playerid,2213.9690,-1150.4792,1025.7969);
  97.             SetPlayerInterior(playerid,15);
  98.         }
  99.         if(IsPlayerInRangeOfPoint(playerid,10.0,2213.9690,-1150.4792,1025.7969)) {
  100.             GameTextForPlayer(playerid, "~p~Los Santos", 5000, 1);
  101.             SetPlayerPos(playerid,2233.1387,-1159.7736,25.8906);
  102.             SetPlayerInterior(playerid,0);
  103.         }
  104.         return true;
  105.     }
  106.     return false;
  107. }
  108.  
  109.  
  110. public OnPlayerSpawn(playerid)
  111. {
  112.     if(bHost[playerid] == false) {
  113.         SetPlayerPos(playerid,2233.1387,-1159.7736,25.8906);
  114.     }
  115.     else {
  116.         SetPlayerPos(playerid, 2235.1589,-1158.9023,1029.7969);
  117.         SetPlayerInterior(playerid,15);
  118.     }
  119.     return true;
  120. }
  121.  
  122.  
  123. public OnPlayerStateChange(playerid, newstate, oldstate)
  124. {
  125.     new iVehicle = GetPlayerVehicleID(playerid);
  126.     if(newstate == PLAYER_STATE_DRIVER) {
  127.         for(new iLoop; iLoop != sizeof HotelCarros; ++iLoop) {
  128.             if(bHost[playerid] == false && iVehicle == HotelCarros[iLoop]) {
  129.                 SendClientMessage(playerid,COLOR_GREEN,"Você não é um hospede do hotel.");
  130.                 RemovePlayerFromVehicle(playerid);
  131.                 TogglePlayerControllable(playerid, 1);
  132.                 break;
  133.             }
  134.         }
  135.     }
  136.     return true;
  137. }
  138.  
  139. //======================== [ Funcões ] =========================================
  140.  
  141. stock GetPlayerNick(iPlayer)
  142. {
  143.     new sName[24];
  144.     GetPlayerName(iPlayer,sName,24);
  145.     return sName;
  146. }
  147.  
  148.  
  149. stock Salvar(iPlayer)
  150. {
  151.     format (sString,64,"%s.ini",GetPlayerNick(iPlayer));
  152.     if(fexist(sString)) {
  153.         Fini_OpenFile(sString);
  154.         Fini_SetBool("bHost",bHost[iPlayer]);
  155.         Fini_SaveFile();
  156.         Fini_CloseFile();
  157.     }
  158.     return true;
  159. }
  160.  
  161.  
  162. stock Checar(iPlayer)
  163. {
  164.     format(sString,64,"%s.ini",GetPlayerNick(iPlayer));
  165.     if(fexist(sString)) {
  166.         Fini_OpenFile(sString);
  167.         if(Fini_GetBool("bHost") == 0) bHost[iPlayer] = false;
  168.         if(Fini_GetBool("bHost") == 1) bHost[iPlayer] = true;
  169.         Fini_CloseFile();
  170.     }
  171.     return true;
  172. }
  173.  
  174. //======================== [ Fini File ] =======================================
  175. #define maxtag   (00244)
  176. #define maxfile    (99999)
  177. #define maxname (00064)
  178.  
  179. #define Fini_Exists             fexist
  180. #define Fini_GetFloat(%0)       floatstr(Fini_GetStr(%0))
  181.  
  182. static
  183.     zNormal1,
  184.     fStr[maxtag],
  185.     fTag[maxtag],
  186.     fFile[maxfile],
  187.     File:zFopenFile,
  188.     fName[maxname],
  189.     iSource
  190. ;
  191.  
  192. stock
  193.     Fini_OpenFile(fname[])
  194. {
  195.     zFopenFile = fopen(fname,io_read);
  196.  
  197.     while(fread(zFopenFile,fStr))
  198.         strins(fFile,fStr,strlen(fFile),maxfile);
  199.  
  200.     fclose(zFopenFile);
  201.     format(fName,maxname,"%s",fname);
  202.     return true;
  203. }
  204.  
  205. stock
  206.     Fini_SaveFile()
  207. {
  208.     fremove(fName);
  209.     zFopenFile = fopen(fName,io_write);
  210.  
  211.     fwrite(zFopenFile,fFile);
  212.     fclose(zFopenFile);
  213.     return true;
  214. }
  215.  
  216. stock
  217.     Fini_CloseFile()
  218. {
  219.     fFile[0] = '\0';
  220.     fName[0] = '\0';
  221.     return true;
  222. }
  223.  
  224. stock
  225.     Fini_GetStr(ftag[])
  226. {
  227.     format(fTag, maxtag, "%s=", ftag);
  228.     iSource = strfind(fFile, fTag, false) + 1;
  229.     strmid(fTag, fFile, iSource + strlen(fTag) - 1, strfind(fFile, "\n", false, iSource));
  230.     return fTag;
  231. }
  232.  
  233. stock Fini_SetStr(ftag[],fstr[])
  234. {
  235.     format(fTag,maxtag, "%s=", ftag);
  236.     zNormal1 = strfind(fFile,fTag, true);
  237.     if(zNormal1 != -1)
  238.     {
  239.         strdel(fFile,zNormal1-1, strfind(fFile, "\n", false,zNormal1));
  240.         format(fTag, sizeof(fTag), "%s=%s\r\n",ftag,fstr);
  241.         strins(fFile, fTag, strlen(fFile));
  242.     }
  243.     else
  244.     {
  245.         format(fTag,maxtag, "%s=%s\r\n",ftag,fstr);
  246.         strins(fFile,fTag, strlen(fFile));
  247.     }
  248.     return true;
  249. }
  250.  
  251. stock
  252.     Fini_Create(nFile[])
  253. {
  254.     if (Fini_Exists(nFile)) return false;
  255.     new File:cFile = fopen(nFile,io_write);
  256.     return fclose(cFile);
  257. }
  258.  
  259. stock
  260.     Fini_SetVal(ftag[],fval)
  261. {
  262.     static Seting[24];
  263.     format(Seting,maxtag,"%d",fval);
  264.     Fini_SetStr(ftag,Seting);
  265.     return true;
  266. }
  267.  
  268. stock
  269.     Fini_SetFloat(ftag[],Float:fval)
  270. {
  271.     static Seting[24];
  272.     format(Seting,maxtag,"%f",fval);
  273.     Fini_SetStr(ftag,Seting);
  274.     return true;
  275. }
  276.  
  277. stock
  278.     Fini_SetBool(ftag[],bool:fval)
  279. {
  280.     static Seting[24];
  281.     format(Seting,maxtag,"%d",fval);
  282.     Fini_SetStr(ftag,Seting);
  283.     return true;
  284. }
  285.  
  286. stock
  287.     Fini_IsSet(ftag[])
  288. {
  289.     format(fTag,maxtag,"%s=%s",ftag,Fini_GetStr(ftag));
  290.     zNormal1 = strfind(fFile,ftag,true);
  291.     if(zNormal1 != -1)
  292.         return true;
  293.     return false;
  294. }
  295.  
  296. stock Fini_GetBool(ftag[])
  297. {
  298.     new Seting = strval(Fini_GetStr(ftag));
  299.     return Seting;
  300. }
Advertisement
Add Comment
Please, Sign In to add comment