Advertisement
Guest User

Dinamikus gang rendszer by Tomasz

a guest
Feb 27th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.99 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <sscanf2>
  4. #include <zcmd>
  5.  
  6. #define MAX_GANGS 10
  7.  
  8. #define GANG_NAME 1000
  9. #define GANG_RANG 1500
  10.  
  11. new str[256];
  12. new pGang[MAX_PLAYERS];
  13. new pRang[MAX_PLAYERS];
  14.  
  15. enum gang
  16. {
  17.     ID,
  18.     Nev[256],
  19.     Rang1[256],
  20.     Rang2[256],
  21.     Rang3[256],
  22.     Rang4[256],
  23.     Rang5[256],
  24.     Rang6[256],
  25.     Rang7[256],
  26.     Rang8[256],
  27.     Rang9[256],
  28.     Rang10[256],
  29.     MaxRang
  30. }
  31. new GangInfo[MAX_GANGS][gang];
  32.  
  33. stock LoadGangs()
  34. {
  35.     for(new i=1;i<MAX_GANGS;i++)
  36.     {
  37.         format(str,sizeof(str),"/Gangs/%d.ini",i);
  38.         if(fexist(str))
  39.         {
  40.             GangInfo[i][ID] = i;
  41.             GangInfo[i][Nev] = dini_Get(str,"Nev");
  42.             GangInfo[i][Rang1] = dini_Get(str,"Rang1");
  43.             GangInfo[i][Rang2] = dini_Get(str,"Rang2");
  44.             GangInfo[i][Rang3] = dini_Get(str,"Rang3");
  45.             GangInfo[i][Rang4] = dini_Get(str,"Rang4");
  46.             GangInfo[i][Rang5] = dini_Get(str,"Rang5");
  47.             GangInfo[i][Rang6] = dini_Get(str,"Rang6");
  48.             GangInfo[i][Rang7] = dini_Get(str,"Rang7");
  49.             GangInfo[i][Rang8] = dini_Get(str,"Rang8");
  50.             GangInfo[i][Rang9] = dini_Get(str,"Rang9");
  51.             GangInfo[i][Rang10] = dini_Get(str,"Rang10");
  52.             GangInfo[i][MaxRang] = dini_Int(str,"MaxRang");
  53.         }
  54.     }
  55.     printf("Gangek betoltve!");
  56. }
  57. stock SaveGang(id)
  58. {
  59.     format(str,sizeof(str),"/Gangs/%d.ini",id);
  60.     dini_Set(str,"Nev",GangInfo[id][Nev]);
  61.     dini_Set(str,"Rang1",GangInfo[id][Rang1]);
  62.     dini_Set(str,"Rang2",GangInfo[id][Rang2]);
  63.     dini_Set(str,"Rang3",GangInfo[id][Rang3]);
  64.     dini_Set(str,"Rang4",GangInfo[id][Rang4]);
  65.     dini_Set(str,"Rang5",GangInfo[id][Rang5]);
  66.     dini_Set(str,"Rang6",GangInfo[id][Rang6]);
  67.     dini_Set(str,"Rang7",GangInfo[id][Rang7]);
  68.     dini_Set(str,"Rang8",GangInfo[id][Rang8]);
  69.     dini_Set(str,"Rang9",GangInfo[id][Rang9]);
  70.     dini_Set(str,"Rang10",GangInfo[id][Rang10]);
  71.     dini_IntSet(str,"MaxRang",GangInfo[id][MaxRang]);
  72.     printf("A(z) %d-as/es ID-ju gang mentve lett!",id);
  73. }
  74. stock BiggestGangID()
  75. {
  76.     new num;
  77.     for(new i=1;i<MAX_GANGS;i++)
  78.     {
  79.         format(str,sizeof(str),"/Gangs/%d.ini",i);
  80.         if(fexist(str)) num = i;
  81.     }
  82.     return num;
  83. }
  84.  
  85. main(){}
  86.  
  87. public OnPlayerConnect(playerid)
  88. {
  89.     pRang[playerid] = 1;
  90.     return 1;
  91. }
  92. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  93. {
  94.     if(dialogid == GANG_NAME)
  95.     {
  96.         if(response)
  97.         {
  98.             if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,"Gang készítés","Min. 3 karakter hosszúságú kell hogy legyen a név.","Tovább","Mégse");
  99.             format(str,sizeof(str),"/Gangs/%d.ini",BiggestGangID()+1);
  100.             dini_Create(str);
  101.             format(GangInfo[BiggestGangID()][Nev],64,"%s",inputtext);
  102.             ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,"Gang készítés","Írd be a gang maximum elérhető rangját.(Min.3 Max.10)","Kész","Mégse");
  103.         }
  104.     }
  105.     if(dialogid == GANG_RANG)
  106.     {
  107.         if(response)
  108.         {
  109.             if(strval(inputtext) < 3 || strval(inputtext) > 10) return ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,"Gang készítés","Minimum 3 és maximum 10 lehet!","Kész","Mégse");
  110.             format(str,sizeof(str),"/Gangs/%d.ini",BiggestGangID()-1);
  111.             GangInfo[BiggestGangID()][MaxRang] = strval(inputtext);
  112.             SaveGang(BiggestGangID());
  113.             LoadGangs();
  114.         }
  115.         else dini_Remove(str);
  116.     }
  117.     return 0;
  118. }
  119.  
  120. CMD:creategang(playerid)
  121. {
  122.     ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,"Gang készítés","Írd be a gang nevét!","Tovább","Mégse");
  123.     return 1;
  124. }
  125. CMD:gangs(playerid)
  126. {
  127.     for(new i=1;i<MAX_GANGS;i++)
  128.     {
  129.         format(str,sizeof(str),"ID %d: %s",i,GangInfo[i][Nev]);
  130.         SendClientMessage(playerid,-1,str);
  131.     }
  132.     return 1;
  133. }
  134. CMD:gangbe(playerid,params[])
  135. {
  136.     new fk;
  137.     if(sscanf(params,"d",fk))return SendClientMessage(playerid,-1,"HASZNÁLAT: /gangbe [ID]");
  138.     pGang[playerid] = fk;
  139.     return 1;
  140. }
  141. CMD:rang(playerid,params[])
  142. {
  143.     new rang;
  144.     if(sscanf(params,"d",rang))return SendClientMessage(playerid,-1,"HASZNÁLAT: /rang [ID]");
  145.     if(rang > GangInfo[pGang[playerid]][MaxRang])return SendClientMessage(playerid,-1,"A rang amit beírtál magasabb mint a maximum elérhető rang!");
  146.     pRang[playerid] = rang;
  147.     return 1;
  148. }
  149. CMD:myganginfo(playerid)
  150. {
  151.     if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,"Te nem vagy gangben!");
  152.    
  153.     format(str,sizeof(str),"[ID %d] %s",pGang[playerid],GangInfo[pGang[playerid]][Nev]);
  154.     SendClientMessage(playerid,-1,str);
  155.    
  156.     if(pRang[playerid] == 1) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang1]);
  157.     if(pRang[playerid] == 2) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang2]);
  158.     if(pRang[playerid] == 3) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang3]);
  159.     if(pRang[playerid] == 4) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang4]);
  160.     if(pRang[playerid] == 5) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang5]);
  161.     if(pRang[playerid] == 6) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang6]);
  162.     if(pRang[playerid] == 7) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang7]);
  163.     if(pRang[playerid] == 8) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang8]);
  164.     if(pRang[playerid] == 9) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang9]);
  165.     if(pRang[playerid] == 10) format(str,sizeof(str),"Rang: %s",GangInfo[pGang[playerid]][Rang10]);
  166.     SendClientMessage(playerid,-1,str);
  167.     return 1;
  168. }
  169. CMD:gangrangs(playerid)
  170. {
  171.     if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,"Te nem vagy gangben!");
  172.    
  173.     format(str,sizeof(str),"Rang 1: %s",GangInfo[pGang[playerid]][Rang1]);
  174.     SendClientMessage(playerid,-1,str);
  175.    
  176.     format(str,sizeof(str),"Rang 2: %s",GangInfo[pGang[playerid]][Rang2]);
  177.     SendClientMessage(playerid,-1,str);
  178.    
  179.     if(GangInfo[pGang[playerid]][MaxRang] >= 3)
  180.     {
  181.         format(str,sizeof(str),"Rang 3: %s",GangInfo[pGang[playerid]][Rang3]);
  182.         SendClientMessage(playerid,-1,str);
  183.     }
  184.    
  185.     if(GangInfo[pGang[playerid]][MaxRang] >= 4)
  186.     {
  187.         format(str,sizeof(str),"Rang 4: %s",GangInfo[pGang[playerid]][Rang4]);
  188.         SendClientMessage(playerid,-1,str);
  189.     }
  190.    
  191.     if(GangInfo[pGang[playerid]][MaxRang] >= 5)
  192.     {
  193.         format(str,sizeof(str),"Rang 5: %s",GangInfo[pGang[playerid]][Rang5]);
  194.         SendClientMessage(playerid,-1,str);
  195.     }
  196.    
  197.     if(GangInfo[pGang[playerid]][MaxRang] >= 6)
  198.     {
  199.         format(str,sizeof(str),"Rang 6: %s",GangInfo[pGang[playerid]][Rang6]);
  200.         SendClientMessage(playerid,-1,str);
  201.     }
  202.    
  203.     if(GangInfo[pGang[playerid]][MaxRang] >= 7)
  204.     {
  205.         format(str,sizeof(str),"Rang 7: %s",GangInfo[pGang[playerid]][Rang7]);
  206.         SendClientMessage(playerid,-1,str);
  207.     }
  208.    
  209.     if(GangInfo[pGang[playerid]][MaxRang] >= 8)
  210.     {
  211.         format(str,sizeof(str),"Rang 8: %s",GangInfo[pGang[playerid]][Rang8]);
  212.         SendClientMessage(playerid,-1,str);
  213.     }
  214.    
  215.     if(GangInfo[pGang[playerid]][MaxRang] >= 9)
  216.     {
  217.         format(str,sizeof(str),"Rang 9: %s",GangInfo[pGang[playerid]][Rang9]);
  218.         SendClientMessage(playerid,-1,str);
  219.     }
  220.    
  221.     if(GangInfo[pGang[playerid]][MaxRang] == 10)
  222.     {
  223.         format(str,sizeof(str),"Rang 10: %s",GangInfo[pGang[playerid]][Rang10]);
  224.         SendClientMessage(playerid,-1,str);
  225.     }
  226.     return 1;
  227. }
  228. CMD:gangrang(playerid,params[])
  229. {
  230.     if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,"Te nem vagy gangben!");
  231.     new rang,neve[256];
  232.     if(sscanf(params,"ds[256]",rang,neve))return SendClientMessage(playerid,-1,"/gangrang [RANG] [NEVE]");
  233.  
  234.     if(rang == 1)GangInfo[pGang[playerid]][Rang1] = neve;
  235.     if(rang == 2)GangInfo[pGang[playerid]][Rang2] = neve;
  236.     if(rang == 3)GangInfo[pGang[playerid]][Rang3] = neve;
  237.     if(rang == 4)GangInfo[pGang[playerid]][Rang4] = neve;
  238.     if(rang == 5)GangInfo[pGang[playerid]][Rang5] = neve;
  239.     if(rang == 6)GangInfo[pGang[playerid]][Rang6] = neve;
  240.     if(rang == 7)GangInfo[pGang[playerid]][Rang7] = neve;
  241.     if(rang == 8)GangInfo[pGang[playerid]][Rang8] = neve;
  242.     if(rang == 9)GangInfo[pGang[playerid]][Rang9] = neve;
  243.     if(rang == 10)GangInfo[pGang[playerid]][Rang10] = neve;
  244.    
  245.     SaveGang(pGang[playerid]);
  246.     return 1;
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement