Advertisement
markoff

fGang

Jul 9th, 2012
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.86 KB | None | 0 0
  1. /*
  2. fGang
  3. by Dominik "fabbeN" Fábry
  4. UPDATE: Tento script je už zastaralý, odporúčam nepoužívať. Možno sa dočkáte aj novej verzie!
  5. */
  6.  
  7. #if defined _fGang_included
  8. #endinput
  9. #endif
  10.  
  11. #define _fGang_included
  12. #pragma library fGang
  13.  
  14.  
  15. #include <a_samp>
  16. #include <dini>
  17.  
  18. #define MAX_GANG      100
  19. #define MAX_GANG_NAME 50
  20. #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3)
  21.  
  22.  
  23. enum GENG_INFO
  24. {
  25.     Ne_Cena,
  26.     Float:Ne_X,
  27.     Float:Ne_Y,
  28.     Float:Ne_Z,
  29.     Ne_Majitel[MAX_GANG_NAME],
  30.     Ne_gDialog,
  31.     Ne_Majitela,
  32.     Plat,
  33.     Text3D:Text,
  34.     Ne_Pickup
  35. };
  36.  
  37. new GangInfo[MAX_GANG][GENG_INFO];
  38. new CountGang = 0;
  39.  
  40.  
  41. forward OnGangDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  42. forward CreateGang(const Ga_Name[], Float:Ga_X, Float:Ga_Y, Float:Ga_Z, Ga_Cena, Ga_gDialog);
  43. forward OnGangPickUpPickup(playerid, pickupid);
  44.  
  45.  
  46. stock PlayerName(playerid){
  47. new name[MAX_PLAYER_NAME];
  48. GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  49. return name;
  50. }
  51.  
  52. stock IsGangForSale(Count_Gang){
  53. new cesta[50];
  54. format(cesta,150,"%d.txt",Count_Gang);
  55. if(strcmp("none",dini_Get(cesta,"Owner"), false) == 0) return true;
  56. return false;
  57. }
  58.  
  59. stock IsPlayerGangOwner(playerid,Count_Gang)
  60. {
  61. new cesta[50];
  62. format(cesta,150,"%d.txt",Count_Gang);
  63. if(strcmp(PlayerName(playerid),dini_Get(cesta,"Owner"), false) == 0) return true;
  64. return false;
  65. }
  66.  
  67.  
  68. public CreateGang(const Ga_Name[], Float:Ga_X, Float:Ga_Y, Float:Ga_Z, Ga_Cena, Ga_gDialog)
  69. {
  70.     if(CountGang < MAX_GANG)
  71.         {
  72.             format(GangInfo[CountGang][Ne_Majitel], MAX_GANG_NAME, "%s", Ga_Name);
  73.             GangInfo[CountGang][Ne_Cena]     = Ga_Cena;
  74.             GangInfo[CountGang][Ne_X]        = Ga_X;
  75.             GangInfo[CountGang][Ne_Y]        = Ga_Y;
  76.             GangInfo[CountGang][Ne_Z]        = Ga_Z;
  77.             GangInfo[CountGang][Ne_gDialog]  = Ga_gDialog;
  78.             GangInfo[CountGang][Ne_Majitela] = 0;
  79.             GangInfo[CountGang][Plat] = 0;
  80.             GangInfo[CountGang][Ne_Pickup] = CreatePickup(1313,1,Ga_X,Ga_Y,Ga_Z);
  81.             new s[128];
  82.             format(s,128,"%d.txt",CountGang);
  83.             if(!fexist(s)){
  84.             dini_Create(s);
  85.             dini_Set(s,"Owner","Na Predaj");
  86.             }
  87.             CountGang ++;
  88.             new sx[100];
  89.             format(sx,100,"Gang ,,%s´´\r\nMajiteľ: %s",Ga_Name,dini_Get(s,"Owner"));
  90.             GangInfo[CountGang][Text] = Create3DTextLabel(sx,0xFF0000FF,Ga_X,Ga_Y,Ga_Z+1,50,0);
  91.             } else {
  92.         printf("Bola prekročená hranica gangu %d, a max gangu može byť %d !", CountGang, MAX_GANG);
  93.     }
  94. }
  95.  
  96. public OnGangPickUpPickup(playerid, pickupid)
  97. {
  98. for(new g=0;g<CountGang+1;g++)
  99. {
  100. if(IsPlayerInSphere(playerid,GangInfo[g][Ne_X],GangInfo[g][Ne_Y],GangInfo[g][Ne_Z],2))
  101. {
  102. ShowPlayerDialog(playerid,GangInfo[g][Ne_gDialog],DIALOG_STYLE_LIST,"Gang","Kúpiť gang\nPredať\n","Použít","Nic");
  103. }
  104. }
  105. return 1;
  106. }
  107.  
  108. public OnGangDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  109. {
  110. for(new h=0;h<CountGang+1;h++)
  111. {
  112. if(dialogid == GangInfo[h][Ne_gDialog])
  113. {
  114. if(response == 1)
  115. {
  116. if(listitem == 0)
  117. {
  118. if(GetPlayerMoney(playerid) < GangInfo[h][Ne_Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, "Máš málo peněz !");
  119. if(!IsGangForSale(h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento gang už nekto vlastní!");
  120. new s[128];
  121. format(s,128,"%d.txt",h);
  122. dini_Set(s,"Owner",PlayerName(playerid));
  123. GivePlayerMoney(playerid, -GangInfo[h][Ne_Cena]);
  124. SendClientMessage(playerid, 0xFFFFFFFF, "Kúpil si si gang!");
  125. new sx[100];
  126. format(sx,100,"Gang ,,%d´´\r\nMajiteľ: %s",CountGang,dini_Get(s,"Owner"));
  127. Update3DTextLabelText(GangInfo[h][Text],0xFF0000FF,sx);
  128. }
  129. else if(listitem == 1)
  130. {
  131. if(!IsPlayerGangOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento gang není tvůj !");
  132. new g[128];
  133. format(g,128,"%d.txt",g);
  134. dini_Set(g,"Owner","none");
  135. GivePlayerMoney(playerid, GangInfo[h][Ne_Cena]/2);
  136. SendClientMessage(playerid, 0xFFFFFFFF, "Gang bol predaný! Bola ti vrátená čiastka");
  137. }
  138. }
  139. }
  140. }
  141. return 1;
  142. }
  143. //The end :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement