Stuneris

S_Tele

Aug 16th, 2011
715
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.02 KB | None | 0 0
  1. /*
  2.                      _________________________________
  3.                     |           KREDITAI:             |
  4.                     |   A_SAMP - SA-MP Team           |
  5.                     |   ZCMD - ZeeX                   |
  6.                     |   SSCANF - Alex a.k.a. Y_Less   |
  7.                     |   DINI - Dracoblue              |
  8.                     |   DUDB - Dracoblue              |
  9.                     |   SCRIPT - Stuneris             |
  10.                     |_________________________________|
  11. */
  12.  
  13. /* Includes */
  14. #include                <a_samp>
  15. #include                <zcmd>
  16. #include                <sscanf>
  17. #include                <dini>
  18. #include                <dudb>
  19.  
  20. /* Defines/Binds */
  21. #define SKAMB_KAINA_EZYS 3 //Minutės kaina ežys
  22. #define SKAMB_KAINA_PILDYK 4 //Minutės kaina pildyk
  23. #define SKAMB_KAINA_LABAS 3 //Minutės kaina labas
  24. #define SMS_KAINA 1 //Sms kaina
  25. #define EZIO_PAKUOTE 5 //Ezio pakuotes kaina
  26. #define PILDYK_PAKUOTE 5 //Pildyk pakuotes kaina
  27. #define LABAS_PAKUOTE 5 //Labas pakuotes kaina
  28. #define TEL_KAINA 150 //Telefono kaina
  29. #define BUY_DIALOG 555 //Pirkimo dialog'o ID
  30.  
  31. /* Kintamieji */
  32. enum Items
  33. {
  34.     Telefonas,
  35.     Saskaita,
  36.     Papildymas,
  37.     Ijungtas,
  38.     Skambina,
  39.     Tinklas
  40. }
  41. new tInfo[MAX_PLAYERS][Items];
  42. new kas[MAX_PLAYERS];
  43. new Paskambino[MAX_PLAYERS];
  44.  
  45. /* Forwards */
  46. forward Kalba(playerid);
  47.  
  48. //==============================================================================
  49. public OnFilterScriptInit()
  50. {
  51.     print("\n--------------------------------------");
  52.     print(" Telefonų sistema by Stuneis loaded");
  53.     print("--------------------------------------\n");
  54.     return 1;
  55. }
  56.  
  57. public OnPlayerConnect(playerid)
  58. {
  59.         DataNull(playerid);
  60.         LoadPlayerData(playerid);
  61.     return 1;
  62. }
  63.  
  64. public OnPlayerDisconnect(playerid, reason)
  65. {
  66.     SavePlayerData(playerid);
  67.     return 1;
  68. }
  69.  
  70. public OnPlayerText(playerid, text[])
  71. {
  72.     if(tInfo[playerid][Skambina] == 1)
  73.     {
  74.         SendPlayerMessageToPlayer(kas[playerid], playerid, text);
  75.     }
  76.     return 1;
  77. }
  78.  
  79. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  80. {
  81.     if(dialogid == BUY_DIALOG)
  82.     {
  83.         if(response)
  84.         {
  85.             if(listitem == 0)
  86.             {
  87.                 if(GetPlayerMoney(playerid) < TEL_KAINA) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi tiek pinigų.");
  88.                 tInfo[playerid][Telefonas] = 1;
  89.                 SendClientMessage(playerid, 0x00FF00FF, "Nusipirkote telefoną.");
  90.             }
  91.             if(listitem == 1)
  92.             {
  93.                 ShowPlayerDialog(playerid, BUY_DIALOG+1, DIALOG_STYLE_INPUT, "Papildymas", "Įveskite sumą už kurią pirksite papildymą:", "Gerai", "Išeiti");
  94.             }
  95.             if(listitem == 2)
  96.             {
  97.                 new string[128];
  98.                 format(string, 128, "Ežys(%dLT)\nPildyk(%dLT)\nLabas(%dLT)", EZIO_PAKUOTE, PILDYK_PAKUOTE, LABAS_PAKUOTE);
  99.                 ShowPlayerDialog(playerid, BUY_DIALOG+2, DIALOG_STYLE_LIST, "Kortelė", string, "Rinktis", "Išeiti");
  100.             }
  101.         }
  102.     }
  103.    
  104.     if(dialogid == BUY_DIALOG+1)
  105.     {
  106.         if(response)
  107.         {
  108.                 if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  109.                 if(inputtext[playerid] > GetPlayerMoney(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi tiek pinigų.");
  110.                 if(inputtext[playerid] > 500)
  111.             {
  112.                 SendClientMessage(playerid, 0xFF0000FF, "Didžiausia galima suma 500LT.");
  113.                 ShowPlayerDialog(playerid, BUY_DIALOG+1, DIALOG_STYLE_INPUT, "Papildymas", "Įveskite sumą už kurią pirksite papildymą:", "Gerai", "Išeiti");
  114.                 return 1;
  115.             }
  116.             tInfo[playerid][Papildymas]+=inputtext[playerid];
  117.             GivePlayerMoney(playerid, -inputtext[playerid]);
  118.             new string[128];
  119.             format(string, 128, "Nusipirkote papildymą, dabar turite papildymų už {FF0000}%iLT", tInfo[playerid][Papildymas]);
  120.             SendClientMessage(playerid, 0xFFFF00FF, string);
  121.         }
  122.     }
  123.    
  124.     if(dialogid == BUY_DIALOG+2)
  125.     {
  126.         if(response)
  127.         {
  128.             if(listitem == 0)
  129.             {
  130.                 if(GetPlayerMoney(playerid) < EZIO_PAKUOTE) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi tiek pinigų.");
  131.                 tInfo[playerid][Tinklas] = 1;
  132.                 SendClientMessage(playerid, 0x00FF00FF, "Nusipirkote ežio pakuotę.");
  133.             }
  134.             if(listitem == 1)
  135.             {
  136.                 if(GetPlayerMoney(playerid) < PILDYK_PAKUOTE) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi tiek pinigų.");
  137.                 tInfo[playerid][Tinklas] = 2;
  138.                 SendClientMessage(playerid, 0x00FF00FF, "Nusipirkote pildyk pakuotę.");
  139.             }
  140.             if(listitem == 2)
  141.             {
  142.                 if(GetPlayerMoney(playerid) < LABAS_PAKUOTE) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi tiek pinigų.");
  143.                 tInfo[playerid][Tinklas] = 3;
  144.                 SendClientMessage(playerid, 0x00FF00FF, "Nusipirkote labas pakuotę.");
  145.             }
  146.         }
  147.     }
  148.    
  149.     return 1;
  150. }
  151.  
  152. /* Paskambino */
  153. public Kalba(playerid)
  154. {
  155.     if(tInfo[playerid][Tinklas] == 1 && tInfo[playerid][Saskaita] < SKAMB_KAINA_EZYS)
  156.     {
  157.         tInfo[playerid][Skambina] = 0;
  158.             tInfo[kas[playerid]][Skambina] = 0;
  159.             SendClientMessage(kas[playerid], 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  160.         SendClientMessage(playerid, 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  161.     }
  162.     if(tInfo[playerid][Tinklas] == 2 && tInfo[playerid][Saskaita] < SKAMB_KAINA_PILDYK)
  163.     {
  164.             tInfo[playerid][Skambina] = 0;
  165.             tInfo[kas[playerid]][Skambina] = 0;
  166.             SendClientMessage(kas[playerid], 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  167.         SendClientMessage(playerid, 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  168.     }
  169.     if(tInfo[playerid][Tinklas] == 3 && tInfo[playerid][Saskaita] < SKAMB_KAINA_LABAS)
  170.     {
  171.             tInfo[playerid][Skambina] = 0;
  172.             tInfo[kas[playerid]][Skambina] = 0;
  173.             SendClientMessage(kas[playerid], 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  174.         SendClientMessage(playerid, 0x00FF00FF, "Pokalbis baigtas (Pasibaigė sąskaita)");
  175.     }
  176.         if(tInfo[playerid][Tinklas] == 1) tInfo[playerid][Saskaita]-=SKAMB_KAINA_EZYS;
  177.         if(tInfo[playerid][Tinklas] == 2) tInfo[playerid][Saskaita]-=SKAMB_KAINA_PILDYK;
  178.         if(tInfo[playerid][Tinklas] == 3) tInfo[playerid][Saskaita]-=SKAMB_KAINA_LABAS;
  179.     return 1;
  180. }
  181.  
  182. /* Komandos */
  183. CMD:sms(playerid, params[])
  184. {
  185.     new name, sms[128], string[128], msg[128];
  186.     if(sscanf(params, "us", name, sms)) return SendClientMessage(playerid, 0xFF0000FF, "Siųsti sms: /sms [Dalis vardo][Žinutė]");
  187.     if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  188.     if(tInfo[playerid][Ijungtas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tavo telefonas išjungtas, norėdamas įjungti - /ijungti.");
  189.     if(tInfo[playerid][Saskaita] < SMS_KAINA)
  190.     {
  191.             format(string, 128, "Tavo sąskaitoje trūksta pinigų, sms kainą %dLT", SMS_KAINA);
  192.         SendClientMessage(playerid, 0xFF0000FF, string);
  193.         return 1;
  194.     }
  195.     format(string, 128, "SMS nuo {FF0000}%s", PlayerName(playerid));
  196.     format(msg, 128, "{00FF00}%s\n\n{FF0000}Nori atsakyti? Komanda - /sms");
  197.     ShowPlayerDialog(name, 777, DIALOG_STYLE_MSGBOX, string, msg, "Gerai", "");
  198.     tInfo[playerid][Saskaita]-=SMS_KAINA;
  199.     return 1;
  200. }
  201.  
  202. CMD:papildyti(playerid, params[])
  203. {
  204.         new lt, string[128];
  205.     if(sscanf(params, "i", lt)) return SendClientMessage(playerid, 0xFF0000FF, "Papildyti sąskaitą: /papildyti [Kiek]");
  206.     if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  207.     if(tInfo[playerid][Ijungtas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tavo telefonas išjungtas, norėdamas įjungti - /ijungti.");
  208.     if(tInfo[playerid][Saskaita] > 500) return SendClientMessage(playerid, 0xFF0000FF, "Tavo sąskaitoje 500LT, daugiau papildyti negalima.");
  209.         if(tInfo[playerid][Papildymas] < lt)
  210.         {
  211.         format(string, 128, "Tu neturi tokio didelio papildymo, tavo papildymas %i", tInfo[playerid][Papildymas]);
  212.         SendClientMessage(playerid, 0xFF0000FF, string);
  213.         return 1;
  214.     }
  215.     if(lt > 500) return SendClientMessage(playerid, 0xFF0000FF, "Didžiausia galima suma 500LT.");
  216.     tInfo[playerid][Saskaita]+=lt;
  217.     tInfo[playerid][Papildymas]-=lt;
  218.     return 1;
  219. }
  220.  
  221. CMD:pirkti(playerid, params[])
  222. {
  223.     new string[128];
  224.     format(string, 128, "Telefonas (%dLT)\nPapildymas\nKortelė", TEL_KAINA);
  225.     ShowPlayerDialog(playerid, BUY_DIALOG, DIALOG_STYLE_LIST, "Parduotuvė", string, "Rinktis", "Išeiti");
  226.     return 1;
  227. }
  228.  
  229. CMD:skambinti(playerid, params[])
  230. {
  231.         new name, string[128];
  232.     if(sscanf(params, "u", name)) return SendClientMessage(playerid, 0xFF0000FF, "Skambinti: /skambinti [Dalis vardo]");
  233.     if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  234.     if(tInfo[playerid][Ijungtas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tavo telefonas išjungtas, norėdamas įjungti - /ijungti.");
  235.     if(tInfo[playerid][Tinklas] == 1 && tInfo[playerid][Saskaita] < SKAMB_KAINA_EZYS)
  236.     {
  237.             format(string, 128, "Tavo sąskaitoje trūksta pinigų, skambučio, minutės kainą %dLT", SKAMB_KAINA_EZYS);
  238.         SendClientMessage(playerid, 0xFF0000FF, string);
  239.         return 1;
  240.     }
  241.     if(tInfo[playerid][Tinklas] == 2 && tInfo[playerid][Saskaita] < SKAMB_KAINA_PILDYK)
  242.     {
  243.             format(string, 128, "Tavo sąskaitoje trūksta pinigų, skambučio, minutės kainą %dLT", SKAMB_KAINA_PILDYK);
  244.         SendClientMessage(playerid, 0xFF0000FF, string);
  245.         return 1;
  246.     }
  247.     if(tInfo[playerid][Tinklas] == 3 && tInfo[playerid][Saskaita] < SKAMB_KAINA_LABAS)
  248.     {
  249.             format(string, 128, "Tavo sąskaitoje trūksta pinigų, skambučio, minutės kainą %dLT", SKAMB_KAINA_LABAS);
  250.         SendClientMessage(playerid, 0xFF0000FF, string);
  251.         return 1;
  252.     }
  253.     format(string, 128, "Skambinate {FF0000}%s", PlayerName(name));
  254.     SendClientMessage(playerid, 0xFFFF00FF, string);
  255.     kas[name] = playerid;
  256.     format(string, 128, "Jums skambina {FF0000}%s, {FFFF00}jei norite atsiliepti - /atsiliepti, atmesti - /atmesti", PlayerName(playerid));
  257.     SendClientMessage(name, 0xFFFF00FF, string);
  258.     /* Trumpieji numeriai */
  259.     if(name == 1500) format(string, 128, "Jūsų sąskaitoje yra {FF0000}%iLT", tInfo[playerid][Saskaita]);
  260.     if(name == 1501)
  261.     {
  262.         if(tInfo[playerid][Tinklas] == 1) format(string, 128, "Tarifai: Skambučių kainą - {FF0000}%dLT/MIN.{00FF00}, SMS kainą - {FF0000}%dLT", SKAMB_KAINA_EZYS, SMS_KAINA);
  263.             if(tInfo[playerid][Tinklas] == 2) format(string, 128, "Tarifai: Skambučių kainą - {FF0000}%dLT/MIN.{00FF00}, SMS kainą - {FF0000}%dLT", SKAMB_KAINA_PILDYK, SMS_KAINA);
  264.             if(tInfo[playerid][Tinklas] == 3) format(string, 128, "Tarifai: Skambučių kainą - {FF0000}%dLT/MIN.{00FF00}, SMS kainą - {FF0000}%dLT", SKAMB_KAINA_LABAS, SMS_KAINA);
  265.     }
  266.     SendClientMessage(playerid, 0x00FF00FF, string);
  267.     return 1;
  268. }
  269.  
  270. CMD:atsiliepti(playerid, params[])
  271. {
  272.     new string[128];
  273.         tInfo[playerid][Skambina] = 1;
  274.         tInfo[kas[playerid]][Skambina] = 1;
  275.         Paskambino[kas[playerid]] = SetTimer("Kalba", 60000, 1);
  276.         kas[kas[playerid]] = playerid;
  277.         format(string, 128, "%s atsiliepė", PlayerName(playerid));
  278.     SendClientMessage(kas[playerid], 0x00FF00FF, string);
  279.     SendClientMessage(playerid, 0x00FF00FF, "Atsiliepete");
  280.     SendClientMessage(kas[playerid], 0x00FF00FF, "Norėdamas baigti pokalbi rašyk /baigti");
  281.     SendClientMessage(playerid, 0x00FF00FF, "Norėdamas baigti pokalbi rašyk /baigti");
  282.     return 1;
  283. }
  284.  
  285. CMD:atmesti(playerid, params[])
  286. {
  287.         new string[128];
  288.         tInfo[playerid][Skambina] = 0;
  289.         tInfo[kas[playerid]][Skambina] = 0;
  290.         format(string, 128, "%s atmetė", PlayerName(playerid));
  291.     SendClientMessage(kas[playerid], 0x00FF00FF, string);
  292.     SendClientMessage(playerid, 0x00FF00FF, "Atmetėte");
  293.     return 1;
  294. }
  295.  
  296. CMD:baigti(playerid, params[])
  297. {
  298.     tInfo[playerid][Skambina] = 0;
  299.         tInfo[kas[playerid]][Skambina] = 0;
  300.         KillTimer(Paskambino[playerid]);
  301.         KillTimer(Paskambino[kas[playerid]]);
  302.         SendClientMessage(kas[playerid], 0x00FF00FF, "Pokalbis baigtas (Padėjo rageli)");
  303.     SendClientMessage(playerid, 0x00FF00FF, "Pokalbis baigtas (Padėjo rageli)");
  304.     return 1;
  305. }
  306.  
  307. CMD:ijungti(playerid, params[])
  308. {
  309.         if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  310.         if(tInfo[playerid][Tinklas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi SIM kortelės.");
  311.         tInfo[playerid][Ijungtas] = 1;
  312.         SendClientMessage(playerid, 0x00FF00FF, "Telefonas įjungtas");
  313.     return 1;
  314. }
  315.  
  316. CMD:isjungti(playerid, params[])
  317. {
  318.         if(tInfo[playerid][Telefonas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi telefono.");
  319.         if(tInfo[playerid][Tinklas] < 1) return SendClientMessage(playerid, 0xFF0000FF, "Tu neturi SIM kortelės.");
  320.         tInfo[playerid][Ijungtas] = 0;
  321.         SendClientMessage(playerid, 0x00FF00FF, "Telefonas išjungtas");
  322.     return 1;
  323. }
  324.  
  325. CMD:telknyga(playerid, params[])
  326. {
  327.     ShowPlayerDialog(playerid, 9998, DIALOG_STYLE_MSGBOX, "Telefonų knyga", "1500 - Sąskaitos likučio patikrinimas.\n1501 - Tarifai.", "Gerai", "");
  328.     return 1;
  329. }
  330.  
  331. CMD:telcmds(playerid, params[])
  332. {
  333.     ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Telefonų komandos", "/sms\n/papildydi\n/pirkti\n/skambinti\n/atsiliepti\n/atmesti\n/baigti\n/ijungti\n/isjungti\n/telknyga", "Gerai", "");
  334.     return 1;
  335. }
  336.  
  337. /* Funkcijos */
  338. PlayerName(playerid)
  339. {
  340.     new name[MAX_PLAYER_NAME];
  341.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  342.     return name;
  343. }
  344.  
  345. DataNull(playerid)
  346. {
  347.         tInfo[playerid][Telefonas] = 0;
  348.     tInfo[playerid][Saskaita] = 0;
  349.     tInfo[playerid][Papildymas] = 0;
  350.     tInfo[playerid][Tinklas] = 0;
  351. }
  352.  
  353. LoadPlayerData(playerid)
  354. {
  355.         new file[128];
  356.     format(file, 128, "Tele/%s.ini", PlayerName(playerid));
  357.     tInfo[playerid][Telefonas] = dini_Int(file, "Telefonas");
  358.     tInfo[playerid][Saskaita] = dini_Int(file, "Saskaita");
  359.     tInfo[playerid][Papildymas] = dini_Int(file, "Papildymas");
  360.     tInfo[playerid][Tinklas] = dini_Int(file, "Tinklas");
  361. }
  362.  
  363. SavePlayerData(playerid)
  364. {
  365.         new file[128];
  366.     format(file, 128, "Tele/%s.ini", PlayerName(playerid));
  367.     dini_IntSet(file, "Telefonas", tInfo[playerid][Telefonas]);
  368.     dini_IntSet(file, "Saskaita", tInfo[playerid][Saskaita]);
  369.     dini_IntSet(file, "Papildymas", tInfo[playerid][Papildymas]);
  370.     dini_IntSet(file, "Tinklas", tInfo[playerid][Tinklas]);
  371. }
Advertisement
Add Comment
Please, Sign In to add comment