Vuk7

Login register + job system by Vuk

Dec 22nd, 2016
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.65 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_ini>
  3. #include <zcmd>
  4.  
  5. #define DIALOG_LOGIN 1
  6. #define DIALOG_REGISTER 2
  7. #define DIALOG_GODINE 3
  8. #define DIALOG_DRZAVA 4
  9. #define DIALOG_SPOL 5
  10. #define DIALOG_PROVJERA 6
  11.  
  12. #define PATH "/Korisnici/%s.ini"
  13.  
  14. #define crvena "{FF0000}"
  15. #define plava "{0BE9F4}"
  16.  
  17. #define MAX_GOD 60
  18.  
  19. #define POCETNI_NOVAC 20000
  20.  
  21. #define SCM SendClientMessage
  22.  
  23. #define POSAO_SLOT 0
  24.  
  25. new PayDayPokupljen;
  26. new PosaoVozilo[2];
  27. new PosaoCP[MAX_PLAYERS]=-1;
  28. enum pInfo
  29. {
  30.     pPass,
  31.     pMoney,
  32.     pAdmin,
  33.     pRegistriran,
  34.     pGodine,
  35.     pDrzava, //0-hrvatska, 1-srbija, 2-bih
  36.     pSpol, //1-musko, 2-zensko
  37.     pScore,
  38.     pPoeni,
  39.     pPosao
  40. }
  41. new PlayerInfo[MAX_PLAYERS][pInfo];
  42.  
  43. forward LoadUser_data(playerid,name[],value[]);
  44. public LoadUser_data(playerid,name[],value[])
  45. {
  46.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  47.     INI_Int("Money",PlayerInfo[playerid][pMoney]);
  48.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  49.     INI_Int("Registriran",PlayerInfo[playerid][pRegistriran]);
  50.     INI_Int("Godine",PlayerInfo[playerid][pGodine]);
  51.     INI_Int("Drzava",PlayerInfo[playerid][pDrzava]);
  52.     INI_Int("Spol",PlayerInfo[playerid][pSpol]);
  53.     INI_Int("Score",PlayerInfo[playerid][pScore]);
  54.     INI_Int("Poeni",PlayerInfo[playerid][pPoeni]);
  55.     INI_Int("Posao",PlayerInfo[playerid][pPosao]);
  56.     return 1;
  57. }
  58.  
  59. stock GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; }
  60.  
  61. stock UserPath(playerid)
  62. {
  63.     new str[120];
  64.     format(str,sizeof(str),PATH,GetName(playerid));
  65.     return str;
  66. }
  67.  
  68. stock udb_hash(buf[]) {
  69.     new length=strlen(buf);
  70.     new s1 = 1;
  71.     new s2 = 0;
  72.     new n;
  73.     for (n=0; n<length; n++)
  74.     {
  75.        s1 = (s1 + buf[n]) % 65521;
  76.        s2 = (s2 + s1)     % 65521;
  77.     }
  78.     return (s2 << 16) + s1;
  79. }
  80.  
  81. stock SacuvajIgraca(playerid)
  82. {
  83.     new INI:File = INI_Open(UserPath(playerid));
  84.     INI_SetTag(File,"data");
  85.     INI_WriteInt(File,"Money",GetPlayerMoney(playerid));
  86.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  87.     INI_WriteInt(File,"Registriran",PlayerInfo[playerid][pRegistriran]);
  88.     INI_WriteInt(File,"Godine",PlayerInfo[playerid][pGodine]);
  89.     INI_WriteInt(File,"Drzava",PlayerInfo[playerid][pDrzava]);
  90.     INI_WriteInt(File,"Spol",PlayerInfo[playerid][pSpol]);
  91.     INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
  92.     INI_WriteInt(File,"Poeni",PlayerInfo[playerid][pPoeni]);
  93.     INI_WriteInt(File,"Posao",PlayerInfo[playerid][pPosao]);
  94.     INI_Close(File);
  95.     return 1;
  96. }
  97.  
  98. new Ulogovan[MAX_PLAYERS];
  99.  
  100. main()
  101. {
  102.     print("\n----------------------------------");
  103.     print(" Login Regsiter System by Vuk");
  104.     print("----------------------------------\n");
  105. }
  106.  
  107. public OnGameModeInit()
  108. {
  109.     SetGameModeText("Log/Reg");
  110.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  111.     PayDayPokupljen = 0;
  112.     SetTimer("paydayy",40000,true);
  113.     PosaoVozilo[0] = CreateVehicle(414,124.0129,-79.1337,1.5781,251.0315,0,0,1000); // posao vozilo1
  114.     PosaoVozilo[1] = CreateVehicle(414,118.5578,-88.2482,1.5781,161.0314,0,0,1000); // posao vozilo2
  115.     return 1;
  116. }
  117.  
  118. public OnGameModeExit()
  119. {
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerRequestClass(playerid, classid)
  124. {
  125.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  126.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  127.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  128.     return 1;
  129. }
  130.  
  131. public OnPlayerConnect(playerid)
  132. {
  133.     if(fexist(UserPath(playerid)))
  134.     {
  135.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  136.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""plava"Login:",""plava"Molimo vas upisite svoju lozinku.","Login","Izlaz");
  137.     }
  138.     else
  139.     {
  140.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite zeljenu lozinku.","Regsitracija","Izlaz");
  141.     }
  142.     return 1;
  143. }
  144.  
  145. public OnPlayerDisconnect(playerid, reason)
  146. {
  147.     SacuvajIgraca(playerid);
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerSpawn(playerid)
  152. {
  153.     SetCameraBehindPlayer(playerid);
  154.     return 1;
  155. }
  156.  
  157. public OnPlayerDeath(playerid, killerid, reason)
  158. {
  159.     return 1;
  160. }
  161. CMD:licna(playerid,params[])
  162. {
  163.     new str1[100],str2[100],str3[100],str4[100],stxt[24],dtxt[24];
  164.     if(PlayerInfo[playerid][pDrzava] == 0) { dtxt = "Hrvatska";
  165.     }else if(PlayerInfo[playerid][pDrzava] == 1) { dtxt = "Srbija";
  166.     }else if(PlayerInfo[playerid][pDrzava] == 2) { dtxt = "BIH"; }
  167.     if(PlayerInfo[playerid][pSpol] == 1) { stxt = "Musko";
  168.     }else if(PlayerInfo[playerid][pSpol] == 2) { stxt = "Zensko"; }
  169.     SCM(playerid,-1,"-----------------------------------------");
  170.     format(str1,sizeof(str1),""crvena"Ime:"plava" %s",GetName(playerid));
  171.     format(str2,sizeof(str2),""crvena"Godine:"plava" %d",PlayerInfo[playerid][pGodine]);
  172.     format(str3,sizeof(str3),""crvena"Spol:"plava" %s",stxt);
  173.     format(str4,sizeof(str4),""crvena"Drzava:"plava" %s",dtxt);
  174.     SCM(playerid,-1,str1);
  175.     SCM(playerid,-1,str2);
  176.     SCM(playerid,-1,str3);
  177.     SCM(playerid,-1,str4);
  178.     SCM(playerid,-1,"-----------------------------------------");
  179.     return 1;
  180. }
  181. CMD:test(playerid,params[])
  182. {
  183.     for(new i=0;i<MAX_PLAYERS;i++)
  184.     {
  185.         PlayerInfo[i][pPoeni] = 40;
  186.     }
  187.     PayDay();
  188.     return 1;
  189. }
  190. CMD:test1(playerid,parmas[])
  191. {
  192.     PlayerInfo[playerid][pPosao] = 1;
  193.     return 1;
  194. }
  195. CMD:preuzmikutiju(playerid,params[])
  196. {
  197.     if(PlayerInfo[playerid][pPosao] != 1) return SCM(playerid,-1,"Nisi zaposlen kao posao!");
  198.     SCM(playerid,-1,"Preuzo si kutiju i sad otođi do slobodnog kombija i stavi ju u njega!");
  199.     SetPlayerAttachedObject( playerid, POSAO_SLOT, 1230, 1, -0.299690, 0.072255, -0.493446, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); // cardboardbox - kutija
  200.     return 1;
  201. }
  202. CMD:otvorigepek(playerid,params[])
  203. {
  204.     if(PlayerInfo[playerid][pPosao] != 1) return SCM(playerid,-1,"Nisi zaposlen kao posao!");
  205.     for(new i=0;i<sizeof(PosaoVozilo);i++)
  206.     {
  207.         new engine, lights, alarm, doors, bonnet, boot, objective;
  208.         GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
  209.         boot = 1;
  210.         SetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
  211.     }
  212.     return 1;
  213. }
  214. CMD:ubacikutiju(playerid,params[])
  215. {
  216.     if(PlayerInfo[playerid][pPosao] != 1) return SCM(playerid,-1,"Nisi zaposlen kao posao!");
  217.     for(new i=0;i<sizeof(PosaoVozilo);i++)
  218.     {
  219.         new engine, lights, alarm, doors, bonnet, boot, objective;
  220.         GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
  221.         //if(boot != 1)return 1;
  222.         RemovePlayerAttachedObject(playerid,POSAO_SLOT);
  223.         SetPlayerCheckpoint(playerid,153.6651,-70.6672,1.4297,2);
  224.         PosaoCP[playerid] = 1;
  225.     }
  226.     return 1;
  227. }
  228. CMD:test123(playerid,params[])
  229. {
  230.     SetPlayerPos(playerid,0,0,10);
  231.     return 1;
  232. }
  233. public OnPlayerText(playerid, text[])
  234. {
  235.     return 1;
  236. }
  237.  
  238. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  239. {
  240.     switch(dialogid)
  241.     {
  242.         case DIALOG_LOGIN:
  243.         {
  244.             if(!response) return SetTimerEx("kick",1000,false,"d",playerid);
  245.             if(response)
  246.             {
  247.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  248.                 {
  249.                     INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
  250.  
  251.                     if(PlayerInfo[playerid][pRegistriran] == 0)
  252.                     {
  253.                         ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
  254.                     }
  255.                     else
  256.                     {
  257.                         GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
  258.                         SetPlayerScore(playerid,PlayerInfo[playerid][pScore]);
  259.                         SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
  260.                         SpawnPlayer(playerid);
  261.                         Ulogovan[playerid] = 1;
  262.                     }
  263.                 }
  264.                 else
  265.                 {
  266.                     ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,""plava"Login:",""crvena"Upisali ste pogresnu lozinku\n"plava"Molimo vas upisite svoju lozinku.","Login","Izlaz");
  267.                 }
  268.                 return 1;
  269.             }
  270.         }
  271.         case DIALOG_REGISTER:
  272.         {
  273.             if(!response) return SetTimerEx("kick",1000,false,"d",playerid);
  274.             if(response)
  275.             {
  276.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite zeljenu lozinku.","Regsitracija","Izlaz");
  277.                 new INI:File = INI_Open(UserPath(playerid));
  278.                 INI_SetTag(File,"data");
  279.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  280.                 INI_WriteInt(File,"Money",0);
  281.                 INI_WriteInt(File,"Admin",0);
  282.                 INI_WriteInt(File,"Registriran",0);
  283.                 INI_WriteInt(File,"Godine",0);
  284.                 INI_WriteInt(File,"Drzava",-1);
  285.                 INI_WriteInt(File,"Spol",0);
  286.                 INI_WriteInt(File,"Score",0);
  287.                 INI_WriteInt(File,"Poeni",0);
  288.                 INI_WriteInt(File,"Posao",0);
  289.                 INI_Close(File);
  290.                 PlayerInfo[playerid][pDrzava] = -1;
  291.                 PlayerInfo[playerid][pPass] = udb_hash(inputtext);
  292.                 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas ponovno upisite svoju lozinku.","Register","Izlaz");
  293.             }
  294.         }
  295.         case DIALOG_GODINE:
  296.         {
  297.             if(!response) SetTimerEx("kick",1000,false,"d",playerid);
  298.             if(response)
  299.             {
  300.                 new god = strval(inputtext);
  301.                 if(god < 1) return ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
  302.                 if(god > MAX_GOD) return ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
  303.                 PlayerInfo[playerid][pGodine] = god;
  304.                 ShowPlayerDialog(playerid,DIALOG_DRZAVA,DIALOG_STYLE_LIST,""plava"Registracija: Izaberite vasu drzavu:",""plava"Hrvatska\n"plava"Srbija\n"plava"BIH","Dalje","Izlaz");
  305.             }
  306.             return 1;
  307.         }
  308.         case DIALOG_DRZAVA:
  309.         {
  310.             if(!response) SetTimerEx("kick",1000,false,"d",playerid);
  311.             if(response)
  312.             {
  313.                 switch(listitem)
  314.                 {
  315.                     case 0:
  316.                     {
  317.                         PlayerInfo[playerid][pDrzava] = 0;
  318.                         ShowPlayerDialog(playerid,DIALOG_SPOL,DIALOG_STYLE_LIST,""plava"Registracija: Izaberite vas spol:",""plava"Musko\n"plava"Zensko","Dalje","Izlaz");
  319.                         return 1;
  320.                     }
  321.                     case 1:
  322.                     {
  323.                         PlayerInfo[playerid][pDrzava] = 1;
  324.                         ShowPlayerDialog(playerid,DIALOG_SPOL,DIALOG_STYLE_LIST,""plava"Registracija: Izaberite vas spol:",""plava"Musko\n"plava"Zensko","Dalje","Izlaz");
  325.                         return 1;
  326.                     }
  327.                     case 2:
  328.                     {
  329.                         PlayerInfo[playerid][pDrzava] = 2;
  330.                         ShowPlayerDialog(playerid,DIALOG_SPOL,DIALOG_STYLE_LIST,""plava"Registracija: Izaberite vas spol:",""plava"Musko\n"plava"Zensko","Dalje","Izlaz");
  331.                         return 1;
  332.                     }
  333.                 }
  334.             }
  335.             return 1;
  336.         }
  337.         case DIALOG_SPOL:
  338.         {
  339.             if(!response) SetTimerEx("kick",1000,false,"d",playerid);
  340.             if(response)
  341.             {
  342.                 switch(listitem)
  343.                 {
  344.                     case 0:
  345.                     {
  346.                         new str[200],dtxt[24],stxt[24];
  347.                         PlayerInfo[playerid][pSpol] = 1;
  348.                         if(PlayerInfo[playerid][pDrzava] == 0) { dtxt = "Hrvatska";
  349.                         }else if(PlayerInfo[playerid][pDrzava] == 1) { dtxt = "Srbija";
  350.                         }else if(PlayerInfo[playerid][pDrzava] == 2) { dtxt = "BIH"; }
  351.                         if(PlayerInfo[playerid][pSpol] == 1) { stxt = "Musko";
  352.                         }else if(PlayerInfo[playerid][pSpol] == 2) { stxt = "Zensko"; }
  353.                         format(str,sizeof(str),""plava"Zahvaljujemo vam se na registraciji\n\n\n"plava"Vasi podatci:\n"plava"Godine: %d\n"plava"Drzava: %s\n"plava"Spol: %s",PlayerInfo[playerid][pGodine],dtxt,stxt);
  354.                         ShowPlayerDialog(playerid,DIALOG_PROVJERA,DIALOG_STYLE_MSGBOX,""plava"Registracija:",str,"Zavrsi","Ponovi");
  355.                         return 1;
  356.                     }
  357.                     case 1:
  358.                     {
  359.                         new str[200],dtxt[24],stxt[24];
  360.                         PlayerInfo[playerid][pSpol] = 2;
  361.                         if(PlayerInfo[playerid][pDrzava] == 0) { dtxt = "Hrvatska";
  362.                         }else if(PlayerInfo[playerid][pDrzava] == 1) { dtxt = "Srbija";
  363.                         }else if(PlayerInfo[playerid][pDrzava] == 2) { dtxt = "BIH"; }
  364.                         if(PlayerInfo[playerid][pSpol] == 1) { stxt = "Musko";
  365.                         }else if(PlayerInfo[playerid][pSpol] == 2) { stxt = "Zensko"; }
  366.                         format(str,sizeof(str),""plava"Zahvaljujemo vam se na registraciji\n\n\n"plava"Vasi podatci:\n"plava"Godine: %d\n"plava"Drzava: %s\n"plava"Spol: %s",PlayerInfo[playerid][pGodine],dtxt,stxt);
  367.                         ShowPlayerDialog(playerid,DIALOG_PROVJERA,DIALOG_STYLE_MSGBOX,""plava"Registracija:",str,"Zavrsi","Ponovi");
  368.                         return 1;
  369.                     }
  370.                 }
  371.             }
  372.             return 1;
  373.         }
  374.         case DIALOG_PROVJERA:
  375.         {
  376.             if(!response) return ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
  377.             if(response)
  378.             {
  379.                 PlayerInfo[playerid][pRegistriran] = 1;
  380.                 Ulogovan[playerid] = 1;
  381.                 //sta ima pocetno
  382.                 GivePlayerMoney(playerid,POCETNI_NOVAC);
  383.                 PlayerInfo[playerid][pMoney] = POCETNI_NOVAC;
  384.                 PlayerInfo[playerid][pAdmin] = 0;
  385.                
  386.                 SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
  387.                 SpawnPlayer(playerid);
  388.                 if(PlayerInfo[playerid][pSpol] == 1) { SetPlayerSkin(playerid,2);
  389.                 }else if(PlayerInfo[playerid][pSpol] == 2) { SetPlayerSkin(playerid,12); }
  390.             }
  391.             return 1;
  392.         }
  393.     }
  394.     return 1;
  395. }
  396. forward kick(playerid);
  397. public kick(playerid)
  398. {
  399.     Kick(playerid);
  400.     return 1;
  401. }
  402. public OnPlayerRequestSpawn(playerid)
  403. {
  404.     if(Ulogovan[playerid] == 0)
  405.     {
  406.         SendClientMessage(playerid,-1,""crvena"Prije spawn se moras ulogovati!");
  407.         SetTimerEx("kick",1000,false,"d",playerid);
  408.     }
  409.     return 1;
  410. }
  411. stock PayDay()
  412. {
  413.     for(new i=0;i<MAX_PLAYERS;i++)
  414.     {
  415.         if(PlayerInfo[i][pPoeni] < 40) return SCM(i,-1,"Nisi igrao dovljno dugo da pokupis payday!");
  416.         PlayerInfo[i][pScore]++;
  417.         SetPlayerScore(i,PlayerInfo[i][pScore]);
  418.     }
  419.     return 1;
  420. }
  421.  
  422. forward paydayy();
  423. public paydayy()
  424. {
  425.     if(PayDayPokupljen == 1) return PayDayPokupljen = 0;
  426.     new sat,minu,sec;
  427.     gettime(sat,minu,sec);
  428.     for(new i=0;i<MAX_PLAYERS;i++)
  429.     {
  430.         PlayerInfo[i][pPoeni]++;
  431.     }
  432.     if(minu == 0)
  433.     {
  434.         PayDayPokupljen = 1;
  435.         PayDay();
  436.     }
  437.     return 1;
  438. }
  439. stock IsPlayerInFrontVehicle(playerid,vehicleid,Float:radius,Float:vehiclelength)
  440. {
  441.     new Float:x,Float:y,Float:z,Float:a;
  442.     GetVehiclePos(vehicleid, x, y, z);
  443.     GetPlayerFacingAngle(vehicleid, a);
  444.     x += (vehiclelength* floatsin(-a, degrees));
  445.     y += (vehiclelength* floatcos(-a, degrees));
  446.     return IsPlayerInRangeOfPoint(playerid,radius,x,y,z);
  447. }
  448. public OnPlayerEnterCheckpoint(playerid)
  449. {
  450.     switch(PosaoCP[playerid])
  451.     {
  452.         case 1:
  453.         {
  454.             DisablePlayerCheckpoint(playerid);
  455.             SetPlayerCheckpoint(playerid,189.7542,-71.7269,1.4297,2);
  456.             PosaoCP[playerid] = 2;
  457.         }
  458.         case 2:
  459.         {
  460.             DisablePlayerCheckpoint(playerid);
  461.             SetPlayerCheckpoint(playerid,244.8427,-127.0349,1.8940,2);
  462.             PosaoCP[playerid] = 3;
  463.         }
  464.         case 3:
  465.         {
  466.             DisablePlayerCheckpoint(playerid);
  467.             PosaoCP[playerid] = -1;
  468.             GivePlayerMoney(playerid,1000);
  469.         }
  470.     }
  471.     return 1;
  472. }
  473. /*
  474. AddPlayerClass(0,124.0129,-79.1337,1.5781,251.0315,0,0,0,0,0,0); // posao vozilo1
  475. AddPlayerClass(0,118.5578,-88.2482,1.5781,161.0314,0,0,0,0,0,0); // posao vozilo2
  476. AddPlayerClass(0,153.6651,-70.6672,1.4297,87.2524,0,0,0,0,0,0); // cp1
  477. AddPlayerClass(0,189.7542,-71.7269,1.4297,267.5658,0,0,0,0,0,0); // cp2
  478. AddPlayerClass(0,244.8427,-127.0349,1.8940,266.3124,0,0,0,0,0,0); // cp3
  479. */
Advertisement
Add Comment
Please, Sign In to add comment