Advertisement
Guest User

diler sys

a guest
Feb 7th, 2019
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.87 KB | None | 0 0
  1. /*
  2. Filetscript:
  3. - Dinamicno kreiranje dilera
  4. Author:
  5. - Xalazy
  6. Credits:
  7. - #XScript2k19
  8.  
  9. ** VAZNO **
  10. Ovo dole PlayerInfo[ playerid ][ x.... ], prebacite u vas GMod ono pod enum, za ucitavanje, cuvanje itd..
  11. Ovo sam izvadio iz svog moda od 0, #AddidasCommunity
  12. */
  13.  
  14. #include "a_samp"
  15. #include "streamer"
  16. #include "sscanf2"
  17. #include "Pawn.CMD"
  18. #include "YSI\y_INI"
  19. //===============================[ DILER SYSTEM ]=============================//
  20. #define MAX_DILERA 50
  21. #define DILERI_FILE "/Dileri/lerDi_%d.ini"
  22.  
  23. enum lerDiInfo {
  24. Float:dX,
  25. Float:dY,
  26. Float:dZ,
  27. Float:dA,
  28. DilerIme[30]
  29. };
  30. new DilerInfo[ MAX_DILERA ][ lerDiInfo ], Text3D:DilerLabel[ MAX_DILERA ],
  31. DilerActor;
  32.  
  33. forward LoadujSamperskeNarkomane( dilerid, name[], value[] );
  34. public LoadujSamperskeNarkomane( dilerid, name[], value[] ) {
  35. INI_Float( "X", DilerInfo[ dilerid ][ dX ] );
  36. INI_Float( "Y", DilerInfo[ dilerid ][ dY ] );
  37. INI_Float( "Z", DilerInfo[ dilerid ][ dZ ] );
  38. INI_Float( "A", DilerInfo[ dilerid ][ dA ] );
  39. INI_String( "DilerIme", DilerInfo[ dilerid ][ DilerIme ], 30 );
  40. return true;
  41. }
  42.  
  43. stock SacuvajDilere( dilerid ) {
  44. new dFile[50];
  45. format(dFile, sizeof(dFile), DILERI_FILE, dilerid);
  46. new INI:File = INI_Open(dFile);
  47. INI_WriteFloat( File, "X", DilerInfo[ dilerid ][ dX ] );
  48. INI_WriteFloat( File, "Y", DilerInfo[ dilerid ][ dY ] );
  49. INI_WriteFloat( File, "Z", DilerInfo[ dilerid ][ dZ ] );
  50. INI_WriteFloat( File, "A", DilerInfo[ dilerid ][ dA ] );
  51. INI_WriteInt( File, "DilerIme", DilerInfo[ dilerid ][ DilerIme ] );
  52. INI_Close(File);
  53. return true;
  54. }
  55. forward DileriLabel( );
  56. public DileriLabel( ) {
  57. for(new id = 0; id < MAX_DILERA; id++) {
  58. new dilerfajl[50];
  59. format(dilerfajl, sizeof(dilerfajl), DILERI_FILE, id);
  60. if(fexist(dilerfajl)) {
  61. new string[75];
  62. format(string, sizeof(string), "{0070D0}|| {FFFFFF}DILER %s {0070D0}||\n{FFFFFF}- /diler -", DilerInfo[id][DilerIme]);
  63. DilerLabel[id] = Create3DTextLabel(string, -1, DilerInfo[id][dX], DilerInfo[id][dY], DilerInfo[id][dZ]+1, 10, 0, 1);
  64. }
  65. }
  66. return true;
  67. }
  68. stock player_close_dealer( playerid ) {
  69. new lerDi = 0;
  70. while(lerDi != MAX_DILERA) {
  71. if(IsPlayerInRangeOfPoint( playerid, 4.0, DilerInfo[lerDi][dX], DilerInfo[lerDi][dY], DilerInfo[lerDi][dZ])) {
  72. return lerDi;
  73. }
  74. lerDi++;
  75. }
  76. return -1;
  77. }
  78. enum {
  79. dialog_DILER,
  80. dialog_KREIRAJDILERA
  81. }
  82.  
  83. public OnFilterScriptInit() {
  84. //= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = //
  85. for(new id = 0; id < MAX_DILERA; id++) {
  86. new lerDi_File[50];
  87. format(lerDi_File, sizeof(lerDi_File), DILERI_FILE, id);
  88. if(fexist(lerDi_File)) {
  89. INI_ParseFile(lerDi_File, "LoadujSamperskeNarkomane", .bExtra = true, .extra = id);
  90. DilerActor = CreateActor(29, DilerInfo[id][dX], DilerInfo[id][dY], DilerInfo[id][dZ], DilerInfo[id][dA]);
  91. ApplyActorAnimation(DilerActor, "PED", "IDLE_CHAT", 4.1, 1, 0, 0, 0, 0);
  92. SetActorInvulnerable(id, true);
  93. DileriLabel();
  94. }
  95. }
  96. //= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = //
  97. return true;
  98. }
  99.  
  100. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[] ) {
  101. //= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = //
  102. if( dialogid == dialog_DILER ) {
  103. if( !response ) return TogglePlayerControllable( playerid, 1 );
  104. switch(listitem) {
  105. case 0: {
  106. GivePlayerMoney(playerid, -50000);
  107. PlayerInfo[ playerid ][ xNovac ] -=50000; SavePlayer( playerid );
  108. GivePlayerWeapon(playerid, 30, 90);
  109. SendClientMessage( playerid, -1, "{0070D0}|| INFO ||: {FFFFFF}Uzeo si od dilera ak47 90ammo za 50.000$ !");
  110. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Buraz, nikome ni reci o ovome jel ti to jasno ??");
  111. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Ako nekome kazes, najebao sam..");
  112. TogglePlayerControllable( playerid, 1 );
  113. }
  114. case 1: {
  115. PlayerInfo[playerid][xDroga]++;
  116. GivePlayerMoney(playerid, -500);
  117. PlayerInfo[ playerid ][ xNovac ] -=500;
  118. SendClientMessage( playerid, -1, "{0070D0}|| INFO ||: {FFFFFF}Uzeo si od dilera 1g droge i platio 500$ !");
  119. SavePlayer(playerid);
  120. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Buraz, nikome ni reci o ovome jel ti to jasno ??");
  121. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Ako nekome kazes, najebao sam..");
  122. TogglePlayerControllable( playerid, 1 );
  123. }
  124. case 2: {
  125. PlayerInfo[playerid][xDzoint]++;
  126. GivePlayerMoney(playerid, -700);
  127. PlayerInfo[ playerid ][ xNovac ] -=700;
  128. SendClientMessage( playerid, -1, "{0070D0}|| INFO ||: {FFFFFF}Uzeo si od dilera dzoint i platio 700$ ! (/smotajdzoint)");
  129. SavePlayer(playerid);
  130. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Buraz, nikome ni reci o ovome jel ti to jasno ??");
  131. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Ako nekome kazes, najebao sam..");
  132. TogglePlayerControllable( playerid, 1 );
  133. }
  134. case 3: {
  135. GivePlayerMoney(playerid, -5000);
  136. GivePlayerWeapon(playerid, 24, 50);
  137. PlayerInfo[ playerid ][ xNovac ] -=50; SavePlayer( playerid );
  138. SendClientMessage( playerid, -1, "{0070D0}|| INFO ||: {FFFFFF}Uzeo si od dilera deagle 50ammo za 5.000$ !");
  139. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Buraz, nikome ni reci o ovome jel ti to jasno ??");
  140. SendClientMessage(playerid, 0xC2A2DAAA, "Diler: Ako nekome kazes, najebao sam..");
  141. TogglePlayerControllable( playerid, 1 );
  142. }
  143. }
  144. return true;
  145. }
  146. //= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = //
  147. if(dialogid == dialog_KREIRAJDILERA) {
  148. if(!response) return true;
  149. if(response) {
  150. for(new id = 0; id < MAX_DILERA; id++) {
  151. new dilerfajl[50];
  152. format(dilerfajl, sizeof(dilerfajl), DILERI_FILE, id);
  153. if(!fexist(dilerfajl)) {
  154. new Float:x, Float:y, Float:z, Float:rot;
  155. GetPlayerPos(playerid, x, y, z);
  156. GetPlayerFacingAngle(playerid, rot);
  157. DilerInfo[id][dX] = x; DilerInfo[id][dY] = y; DilerInfo[id][dZ] = z; DilerInfo[id][dA] = rot;
  158. new dilerimelabel[30];
  159. if(sscanf(inputtext, "s[30]", dilerimelabel)) return SendClientMesasge( playerid, -1, "Greska: Upisite ime dilera !" );
  160. strmid(DilerInfo[id][DilerIme], dilerimelabel, 0, strlen(dilerimelabel), 50);
  161. SendClientMessage(playerid, -1, "Završili ste kreiranje Actor-a.");
  162. DilerActor = CreateActor(29, DilerInfo[id][dX], DilerInfo[id][dY], DilerInfo[id][dZ], DilerInfo[id][dA]);
  163. SacuvajDilere(id);
  164. SetActorInvulnerable(id, true);
  165. DileriLabel();
  166. break;
  167. }
  168. }
  169. }
  170. }
  171. //= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = //
  172. return true;
  173. }
  174.  
  175. CMD:kreirajdilera( playerid, params[] ) {
  176. if( !IsPlayerAdmin( playerid )) return SendClientMessage( playerid, -1, "{0070D0}|| GRESKA ||: {FFFFFF}Moras biti RCON Admin !" );
  177. SPD( playerid, dialog_KREIRAJDILERA, DSI, "{0070D0}Diler - {FFFFFF}Kreiranje Dilera", "{0070D0}- {FFFFFF}U prazno polje ispod unesite ime za dilera.", "{0070D0}Potvrdi", "Izlaz" );
  178. return true;
  179. }
  180.  
  181. CMD:diler( playerid, params[] ) {
  182. if( player_close_dealer( playerid ) == -1 ) return SendClientMessage( playerid, -1, "{0070D0}|| GRESKA ||: {FFFFFF}Niste u blizini ni jednog dilera." );
  183. SPD( playerid, dialog_DILER, DSL, "{0070D0}Diler - {FFFFFF}Dilujte sa dilerom", "{0070D0}- {FFFFFF}Ak47 (50.000$) (90ammo)\n{0070D0}- {FFFFFF}Droga (500$) (1)\n{0070D0}- {FFFFFF}Dzoint\n{0070D0}- {FFFFFF}Desert Eagle (5.000$) (50ammo)", "{0070D0}Potvrdi", "Izlaz" );
  184. TogglePlayerControllable( playerid, 0 );
  185. return true;
  186. }
  187.  
  188. CMD:smotajdzoint( playerid, params[] ) {
  189. if( PlayerInfo[ playerid ][ xDzoint ] == 0 ) return SendClientMessage( playerid, -1, "{0070D0}|| GRESKA ||: {FFFFFF}Nemas dzoint." );
  190. SendClientMessage( playerid, -1, "Uspesno motas dzoint, sacekaj par sekundi." );
  191. return true;
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement