Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
649
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.59 KB | None | 0 0
  1. #if defined XScript2k19
  2. DINAMICNO KREIRANJE TRAFIKE
  3. IZRADIO: XALAZY SCRIPT
  4. VREME IZRADE: OKO POLA SATA
  5. CREDITS: //
  6. LINIJA: 153
  7. //XScript2k19
  8. #endif
  9. //================================[ INCLUDE ]=================================//
  10. #include < a_samp >
  11. #include < YSI\y_ini >
  12. #include < Pawn.CMD >
  13. //=================================[ DEFINE ]=================================//
  14. #define MAX_TRAFIKA 50
  15. #define TRAFIKE_FILE "/Trafike/Trafika_%d.ini"
  16. #undef MAX_PLAYERS
  17. #define MAX_PLAYERS 50 //edit
  18. #define SCM SendClientMessage
  19.  
  20. enum { dialog_TRAFIKA }
  21. //============================================================================//
  22. enum trafikaInfo {
  23.  
  24. Float:PosX,
  25. Float:PosY,
  26. Float:PosZ,
  27. Float:RotX,
  28. Float:RotY,
  29. Float:RotZ
  30. }
  31. //============================================================================//
  32. new TrafikaInfo[ MAX_TRAFIKA ][ trafikaInfo ], trafika_object[ sizeof(TrafikaInfo) ],
  33. Text3D:TrafikaLabel[ sizeof(TrafikaInfo) ], KreiraTrafiku[ MAX_PLAYERS ];
  34. //============================================================================//
  35. forward ucitaj_trafiku(id, name[], value[]);
  36. public ucitaj_trafiku(id, name[], value[]) {
  37.  
  38. INI_Float("X", TrafikaInfo[ id ][ PosX ]);
  39. INI_Float("Y", TrafikaInfo[ id ][ PosY ]);
  40. INI_Float("Z", TrafikaInfo[ id ][ PosZ ]);
  41. INI_Float("X", TrafikaInfo[ id ][ RotX ]);
  42. INI_Float("Y", TrafikaInfo[ id ][ RotY ]);
  43. INI_Float("Z", TrafikaInfo[ id ][ RotZ ]);
  44. return true;
  45. }
  46. //============================================================================//
  47. stock next_trafika_ID(const len) {
  48. new trafika_ID = (-1);
  49. for( new loop = ( 0 ), store_check = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  50. store_check = ( loop+1 );
  51. format( Data_, ( sizeof Data_ ), TRAFIKE_FILE, store_check );
  52. if(!fexist(Data_)) {
  53. trafika_ID = ( store_check );
  54. break;
  55. }
  56. }
  57. return ( trafika_ID );
  58. }
  59. //============================================================================//
  60. stock sacuvaj_trafiku(id) {
  61.  
  62. new trafika_File[ 60 ];
  63. format(trafika_File, sizeof(trafika_File), TRAFIKE_FILE, id);
  64. new INI:File = INI_Open(trafika_File);
  65. INI_WriteFloat(File, "X", TrafikaInfo[ id ][ PosX ]);
  66. INI_WriteFloat(File, "Y", TrafikaInfo[ id ][ PosY ]);
  67. INI_WriteFloat(File, "Z", TrafikaInfo[ id ][ PosZ ]);
  68. INI_WriteFloat(File, "X", TrafikaInfo[ id ][ RotX ]);
  69. INI_WriteFloat(File, "Y", TrafikaInfo[ id ][ RotY ]);
  70. INI_WriteFloat(File, "Z", TrafikaInfo[ id ][ RotZ ]);
  71. INI_Close(File);
  72. }
  73. //============================================================================//
  74. main () {
  75. print("//========================[ TRAFIKE ]========================//" );
  76. print(" FILTERSKRIPTA BY XALAZY SCRIPT" );
  77. print(" #XScript2k19" );
  78. print("//========================[ TRAFIKE ]========================//" );
  79. }
  80. public OnFilterScriptInit() {
  81. for(new i; i < MAX_TRAFIKA; i++) {
  82. new trafike_File[ 50 ];
  83. format(trafike_File, sizeof(trafike_File), TRAFIKE_FILE, i);
  84. if(fexist(trafike_File)) {
  85. INI_ParseFile(trafike_File, "ucitaj_trafiku", .bExtra = true, .extra = i);
  86. trafika_object[ i ] = CreateObject(1571, TrafikaInfo[ i ][ PosX ], TrafikaInfo[ i ][ PosY ], TrafikaInfo[ i ][ PosZ ], TrafikaInfo[ i ][ RotX ], TrafikaInfo[ i ][ RotY ], TrafikaInfo[ i ][ RotZ ], 300.0);
  87. TrafikaLabel[ i ] = Create3DTextLabel("{008467}[ TRAFIKA ]\n{FFFFFF}- {008467}/trafika {FFFFFF}-", 0xFFFFFFFF, TrafikaInfo[ i ][ PosX ], TrafikaInfo[ i ][ PosY ], TrafikaInfo[ i ][ PosZ ], 10.0, 0, 0);
  88. }
  89. }
  90. return true;
  91. }
  92. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
  93.  
  94. if(response == EDIT_RESPONSE_FINAL) {
  95. if(KreiraTrafiku[ playerid ] != 0) {
  96. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ PosX ] = fX;
  97. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ PosY ] = fY;
  98. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ PosZ ] = fZ;
  99. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ RotX ] = fRotX;
  100. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ RotY ] = fRotY;
  101. TrafikaInfo[ KreiraTrafiku[ playerid ] ][ RotZ ] = fRotZ;
  102. DestroyObject(trafika_object[ KreiraTrafiku[ playerid ] ]);
  103. trafika_object[ KreiraTrafiku[ playerid ] ] = CreateObject(1571, fX,fY,fZ, fRotX,fRotY,fRotZ, 300.0);
  104. TrafikaLabel[ KreiraTrafiku[ playerid ] ] = Create3DTextLabel("{008467}[ TRAFIKA ]\n{FFFFFF}- {008467}/trafika {FFFFFF}-", 0x008080FF, fX,fY,fZ, 10.0, 0, 0);
  105. sacuvaj_trafiku(KreiraTrafiku[ playerid ]);
  106. SCM(playerid, -1, "{008467}[ TRAFIKA ]: {FFFFFF}Zavrsili ste kreiranje trafike.");
  107. }
  108. }
  109. return true;
  110. }
  111. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[] ) {
  112. if( dialogid == dialog_TRAFIKA ) {
  113. if( !response ) return true;
  114. switch( listitem ) {
  115. case 0: {
  116. if( GetPlayerMoney( playerid ) < 50 ) return SCM( playerid, -1, "{008467}[ {FFFFFF}TRAFIKA {008467}]: {FFFFFF}Nemas dovoljno novca." );
  117. SCM( playerid, -1, "{008467}[ {FFFFFF}TRAFIKA {008467}]: {FFFFFF}Kupili ste cokoladicu." );
  118. SetPlayerHealth( playerid, 50.0 );
  119. GivePlayerMoney( playerid, -50 );
  120. }
  121. case 1: {
  122. if( GetPlayerMoney( playerid ) < 500 ) return SCM( playerid, -1, "{008467}[ {FFFFFF}TRAFIKA {008467}]: {FFFFFF}Nemas dovoljno novca." );
  123. SCM( playerid, -1, "{008467}[ {FFFFFF}TRAFIKA {008467}]: {FFFFFF}Kupili ste pomfrit." );
  124. SetPlayerHealth( playerid, 99.0 );
  125. GivePlayerMoney( playerid, -500 );
  126. }
  127. }
  128. }
  129. return true;
  130. }
  131. CMD:kreirajtrafiku( playerid, params[] ) {
  132. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "{008467}[ TRAFIKA ]: {FFFFFF}Morate se ulogovati na rcon.");
  133. new Float:X,Float:Y,Float:Z, i = next_trafika_ID( MAX_TRAFIKA );
  134. GetPlayerPos(playerid, X,Y,Z);
  135. trafika_object[ i ] = CreateObject(1571, X,Y,Z, 0.0,0.0,0.0, 300.0);
  136. EditObject(playerid, trafika_object[ i ]);
  137. KreiraTrafiku[ playerid ] = i;
  138. SendClientMessage(playerid, -1, "{008467}[ TRAFIKA ]: {FFFFFF}Uspesno ste poceli kreiranje trafike.");
  139. return true;
  140. }
  141. CMD:trafika( playerid, params[] ) {
  142. for( new i; i < MAX_TRAFIKA; i++ ) {
  143. if( IsPlayerInRangeOfPoint( playerid, 3.0, TrafikaInfo[ i ][ PosX ], TrafikaInfo[ i ][ PosY ], TrafikaInfo[ i ][ PosZ ] )) {
  144. ShowPlayerDialog(playerid, dialog_TRAFIKA, DIALOG_STYLE_TABLIST_HEADERS, "{008467}- {FFFFFF}TRAFIKA {008467}-",
  145. "Vrsta\tKolicina\tCena\n\
  146. Cokoladica\t1 cokoladica\t$50\n\
  147. Pomrfit\t1 pomfrit\t$500",
  148. "{008467}Potvrdi", "Izlaz");
  149. }
  150. }
  151. return true;
  152. }
  153. CMD:dajnovac( playerid, params[] ) return GivePlayerMoney( playerid, 5000 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement