Advertisement
Guest User

BVANA Oglasnik by FyoDoR

a guest
Oct 22nd, 2013
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.01 KB | None | 0 0
  1. /*
  2. SKRIPTU IZRADIO : FyoDoR (Bvana iz Lagune ili CYX) hahahah xD
  3. Iime skripte: BVANA Oglasnik
  4.  
  5. Jebes ime, svakako ce te pokrast i creditse i ime i sve hahaha
  6. Nema veze, napravio sam ovo iz dobre volje, vidite dole da nisam nigdje svoje ime stavio, samo ovdje.
  7. A i nije vam neka satisfakcije uzeti ovu FS i predstaviti kao svoju :D
  8. I hajd sve to, ovo je prelagano napraviti..
  9. Vrijeme izrade ove skripte sve ukupno nije preko 2 sata :$
  10.  
  11.  
  12. NE TRAZI JE SINEEEEEEEEE, REČEEEEEE MAJKA NJENAAAAAAAAAAAAA NE DIRAJ U NJENUUUU ZAPOČETU SRECUUUUUUU
  13.  
  14. */
  15.  
  16. #include <a_samp>
  17. #include <sscanf2>
  18. #include <zcmd>
  19. #include < YSI\y_ini >
  20. #include < foreach >
  21.  
  22. //Textdraw oglasa
  23. new Text:bvana0;
  24. new Text:bvana1;
  25. new Text:bvana2;
  26. new Text:bvana3;
  27.  
  28. //Skracenice
  29. #define SCM SendClientMessage
  30. #define SCMTA SendClientMessageToAll
  31.  
  32. //definicije dialog
  33. #define GLAVNI_DIALOG 2
  34. #define CIJENA_DIALOG 3
  35. #define VRIJEME_DIALOG 4
  36. #define INFO_DIALOG 5
  37.  
  38. //boje
  39. #define SPLAVA "{0535F7}"
  40. #define CRVENA "{F81414}"
  41. #define SZELENA "{C9FFAB}"
  42. #define ZUTA "{F3FF02}"
  43. #define BILB "{CC00FF}"
  44. #define SIVA "{9E9E9E}"
  45.  
  46. //zabranjene riječi dodajete pod navodnike, prije toga zarez, na zadnju riječ ne ide zarez
  47. new ZabranjeneReci[][] =
  48. {
  49. "jebem","picka","pi.cko","je.bem",
  50. "majmun","jebe","pizdo"
  51. };
  52.  
  53. #define OGLAS_FILE "BVANA/Oglasnik.ini"
  54. enum oinfo
  55. {
  56. Ukljucen,
  57. Cijena,
  58. Vrijeme,
  59. Boja1,
  60. Boja2
  61. }
  62. new Oglasnik[oinfo];
  63. ///Tajmer za oglase
  64. forward OglasTimer();
  65. new OGVrijeme;
  66.  
  67.  
  68.  
  69. public OnFilterScriptInit()
  70. {
  71.  
  72. printf("Ucitano ADFS");
  73. //Vrijeme za oglas svake sekunde OGVrijeme varijabla se smanjuje za 1
  74. SetTimer("OglasTimer", 1000, true); // Set a timer of 1000 miliseconds (1 second)
  75. OGVrijeme = 0;
  76. #pragma tabsize 0
  77. // In OnGameModeInit prefferably, we procced to create our textdraws:
  78. bvana0 = TextDrawCreate(650.000000, 428.000000, "__");
  79. TextDrawBackgroundColor(bvana0, 255);
  80. TextDrawFont(bvana0, 1);
  81. TextDrawLetterSize(bvana0, 0.539999, 1.500000);
  82. TextDrawColor(bvana0, -1);
  83. TextDrawSetOutline(bvana0, 0);
  84. TextDrawSetProportional(bvana0, 1);
  85. TextDrawSetShadow(bvana0, 1);
  86. TextDrawUseBox(bvana0, 1);
  87. TextDrawBoxColor(bvana0, 150);
  88. TextDrawTextSize(bvana0, -20.000000, 70.000000);
  89. TextDrawSetSelectable(bvana0, 0);
  90.  
  91. bvana1 = TextDrawCreate(2.000000, 430.000000, "OGLAS :");
  92. TextDrawBackgroundColor(bvana1, 255);
  93. TextDrawFont(bvana1, 1);
  94. TextDrawLetterSize(bvana1, 0.310000, 1.000000);
  95. TextDrawColor(bvana1, 16711935);
  96. TextDrawSetOutline(bvana1, 0);
  97. TextDrawSetProportional(bvana1, 1);
  98. TextDrawSetShadow(bvana1, 1);
  99. TextDrawSetSelectable(bvana1, 0);
  100.  
  101. //78 max string
  102. bvana2 = TextDrawCreate(46.000000, 430.000000, " ");
  103. TextDrawBackgroundColor(bvana2, 255);
  104. TextDrawFont(bvana2, 1);
  105. TextDrawLetterSize(bvana2, 0.310000, 1.000000);
  106. TextDrawColor(bvana2, -1);
  107. TextDrawSetOutline(bvana2, 0);
  108. TextDrawSetProportional(bvana2, 1);
  109. TextDrawSetShadow(bvana2, 1);
  110. TextDrawSetSelectable(bvana2, 0);
  111.  
  112. //21max string
  113. bvana3 = TextDrawCreate(512.000000, 430.000000, " ");
  114. TextDrawBackgroundColor(bvana3, -1);
  115. TextDrawFont(bvana3, 1);
  116. TextDrawLetterSize(bvana3, 0.310000, 1.000000);
  117. TextDrawColor(bvana3, 7012351);
  118. TextDrawSetOutline(bvana3, 0);
  119. TextDrawSetProportional(bvana3, 1);
  120. TextDrawSetShadow(bvana3, 0);
  121. TextDrawSetSelectable(bvana3, 0);
  122.  
  123. //Ucitavanja postavki iz fajla
  124. new srvFile[80]; format(srvFile,sizeof(srvFile),OGLAS_FILE);
  125. if(fexist(srvFile))
  126. {
  127. INI_ParseFile(srvFile, "UcitajOglasP");
  128. print("Ucitana podesavanja oglasa.");
  129. }
  130. return 1;
  131. }
  132.  
  133. public OnFilterScriptExit()
  134. {
  135. SacuvajOglasP();
  136. TextDrawDestroy(bvana0);
  137. TextDrawDestroy(bvana1);
  138. TextDrawDestroy(bvana2);
  139. TextDrawDestroy(bvana3);
  140. return 1;
  141. }
  142.  
  143.  
  144. public OnPlayerRequestClass(playerid, classid)
  145. {
  146. return 1;
  147. }
  148.  
  149. public OnPlayerConnect(playerid)
  150. {
  151. if(Oglasnik[Ukljucen] == 1)
  152. {
  153. TextDrawShowForPlayer(playerid, bvana0);
  154. TextDrawShowForPlayer(playerid, bvana1);
  155. TextDrawShowForPlayer(playerid, bvana2);
  156. TextDrawShowForPlayer(playerid, bvana3);
  157. }
  158.  
  159. return 1;
  160. }
  161.  
  162. public OnPlayerDisconnect(playerid, reason)
  163. {
  164. if(Oglasnik[Ukljucen] == 1)
  165. {
  166. TextDrawHideForPlayer(playerid, bvana0);
  167. TextDrawHideForPlayer(playerid, bvana1);
  168. TextDrawHideForPlayer(playerid, bvana2);
  169. TextDrawHideForPlayer(playerid, bvana3);
  170. }
  171. return 1;
  172. }
  173.  
  174.  
  175. CMD:postavkeoglasa(playerid, params[])
  176. {
  177. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, ""CRVENA" Postavke BVANA Oglasnika mogu mjenjati samo RCON administratori.");
  178. ShowPlayerDialog(playerid, GLAVNI_DIALOG, DIALOG_STYLE_LIST, ""SPLAVA"Podesavanje oglasa", ""CRVENA"1 "SZELENA"-Informacije\n"CRVENA"2 "SZELENA"-Ukljuci/Iskljuci\n"CRVENA"3 "SZELENA"-Cijena oglasa\n"CRVENA"4 "SZELENA"-Vrijeme izmedju oglasa", "Ok", "Izlaz");
  179. return 1;
  180. }
  181.  
  182. COMMAND:pogl(playerid, params[])
  183. {
  184. return cmd_postavkeoglasa(playerid, params);
  185. }
  186.  
  187.  
  188. CMD:oglas(playerid, params[])
  189. {
  190. //#pragma unused help
  191. //#pragma unused params
  192. new result[80],string[21], string2[83], logg[106];
  193. if(Oglasnik[Ukljucen] == 0) return SendClientMessage(playerid,-1, ""BILB" BVANA Oglasnik | "SIVA"Oglasavanje je trenutno iskljuceno.");
  194. if(sscanf(params, "s[78]", result)) return SendClientMessage(playerid,-1, ""BILB" BVANA Oglasnik | "SIVA"Pomoc | /oglas [tekst]");
  195. ProvjeraOglasa(result);
  196. new cijena = Oglasnik[Cijena];
  197. if(OGVrijeme > 0) return SCMF(playerid, -1, ""BILB" BVANA Oglasnik | "SIVA"Oglas izlazi svakih %d sekundi, do sljedeceg oglasa %d sekunda", Oglasnik[Vrijeme], OGVrijeme);
  198. if(cijena > GetPlayerMoney(playerid)) return SCMF(playerid, -1, ""BILB" BVANA Oglasnik | "SIVA"Nemate dovoljno novca da objavite oglas! Cijena:%d$", cijena);
  199. for(new words; words < sizeof(ZabranjeneReci); words++)
  200. if(strfind(result,ZabranjeneReci[words],true) != -1 ) return SendClientMessage(playerid,-1, ""BILB" BVANA Oglasnik | "SIVA"Upisali ste zabranjenu rijec, oglas odbijen !");
  201. OGVrijeme = Oglasnik[Vrijeme];
  202. GivePlayerMoney(playerid, -cijena);
  203. format(string, sizeof(string), "%s", ImeIgraca(playerid));
  204. format(string2, sizeof(string2), "%s.", result);
  205. TextDrawSetString(bvana2, string2);
  206. TextDrawSetString(bvana3, string);
  207. format(logg, sizeof(logg), ""BILB" BVANA Oglasnik | "SPLAVA"Autor: %s ", ImeIgraca(playerid));
  208. SCMTA(-1,logg);
  209. format(logg, sizeof(logg), "{FFFFFF}- %s.", result);
  210. SCMTA(-1,logg);
  211. format(logg, sizeof(logg), "[OGLAS] %s : %s.",ImeIgraca(playerid), result);
  212. OglasLog(logg);
  213. new gtst[100];
  214. format(gtst, sizeof(gtst), "~w~Uspjesno ste dali oglas za %d $!", cijena);
  215. GameTextForPlayer(playerid, gtst, 3000,3);
  216.  
  217. return 1;
  218. }
  219.  
  220. CMD:ad(playerid, params[])
  221. {
  222. return cmd_oglas(playerid, params);
  223. }
  224.  
  225.  
  226. ///////////////////////FUNKCIJE/////////////////
  227.  
  228. forward UcitajOglasP(name[],value[]);
  229. public UcitajOglasP(name[],value[])
  230. {
  231. INI_Int("Ukljucen",Oglasnik[Ukljucen]);
  232. INI_Int("Cijena",Oglasnik[Cijena]);
  233. INI_Int("Vrijeme",Oglasnik[Vrijeme]);
  234. return 1;
  235. }
  236.  
  237. stock SacuvajOglasP()
  238. {
  239. new sFile[80];
  240. format(sFile,sizeof(sFile),OGLAS_FILE);
  241. new INI:File = INI_Open(sFile);
  242. INI_WriteInt(File,"Ukljucen",Oglasnik[Ukljucen]);
  243. INI_WriteInt(File,"Cijena",Oglasnik[Cijena]);
  244. INI_WriteInt(File,"Vrijeme",Oglasnik[Vrijeme]);
  245. INI_Close(File);
  246. return 1;
  247. }
  248.  
  249. stock OglasLog(string[])
  250. {
  251. new entry[256];
  252. format(entry, sizeof(entry), "%s\r\n",string);
  253. new File:hFile;
  254. hFile = fopen("BVANA/OglasLog.log", io_append);
  255. fwrite(hFile, entry);
  256. fclose(hFile);
  257. }
  258.  
  259. stock ImeIgraca(playerid)
  260. {
  261. new ime[MAX_PLAYER_NAME];
  262. GetPlayerName(playerid, ime, sizeof(ime));
  263. return ime;
  264. }
  265. stock ProvjeraOglasa(string[], s_size = sizeof(string))
  266. {
  267. new brojevi[] = { '1','2','3','4','5','6','7','8','9'};
  268. for(new b = 0; b < sizeof brojevi; b++)
  269. {
  270. strlen(string);
  271. for(new i = 0; i< s_size-1; i++)
  272. {
  273. if(string[i] == brojevi[b])
  274. string[i] = 'x' ;
  275. }
  276. }
  277. return 1;
  278. }
  279.  
  280. public OglasTimer()
  281. {
  282. if(OGVrijeme > 0) return OGVrijeme -= 1;
  283. return 1;
  284. }
  285.  
  286. stock SCMF(playerid,color,fstring[],{Float, _}:...)
  287. {
  288. new n=(numargs()-3)*4;
  289. if(n)
  290. {
  291. new message[128],arg_start,arg_end;
  292. #emit CONST.alt fstring
  293. #emit LCTRL 5
  294. #emit ADD
  295. #emit STOR.S.pri arg_start
  296. #emit LOAD.S.alt n
  297. #emit ADD
  298. #emit STOR.S.pri arg_end
  299. do
  300. {
  301. #emit LOAD.I
  302. #emit PUSH.pri
  303. arg_end-=4;
  304. #emit LOAD.S.pri arg_end
  305. }
  306. while(arg_end>arg_start);
  307. #emit PUSH.S fstring
  308. #emit PUSH.C 255
  309. #emit PUSH.ADR message
  310. n+=4*3;
  311. #emit PUSH.S n
  312. #emit SYSREQ.C format
  313. n+=4;
  314. #emit LCTRL 4
  315. #emit LOAD.S.alt n
  316. #emit ADD
  317. #emit SCTRL 4
  318. return SCM(playerid,color,message);
  319. }
  320. else return SCM(playerid,color,fstring);
  321. }
  322.  
  323.  
  324. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  325. {
  326. if(dialogid == GLAVNI_DIALOG)
  327. {
  328. if(!response) return 1;
  329. switch(listitem)
  330. {
  331. case 0:
  332. {
  333. new string[128], ukisk[11];
  334. if(Oglasnik[Ukljucen] == 1) ukisk = "Ukljuceno";
  335. else if(Oglasnik[Ukljucen] == 0) ukisk = "Iskljuceno";
  336. format(string,sizeof string, ""SZELENA"Oglasavanje : %s\n"ZUTA"Cijena oglasa : %d\n"SZELENA"Vrijeme izmedju oglasa : %d",ukisk, Oglasnik[Cijena],Oglasnik[Vrijeme]);
  337. ShowPlayerDialog(playerid, INFO_DIALOG, DIALOG_STYLE_MSGBOX, ""SPLAVA"Informacije o oglasima", string, "Zatvori", "");
  338. }
  339. case 1:
  340. {
  341. if(Oglasnik[Ukljucen] == 1)
  342. {
  343. Oglasnik[Ukljucen] = 0;
  344. SendClientMessage(playerid,-1,""BILB" BVANA Oglasnik | "SIVA"Uspjesno ste iskljucili oglasavanje.");
  345. TextDrawHideForAll(bvana0);
  346. TextDrawHideForAll(bvana1);
  347. TextDrawHideForAll(bvana2);
  348. TextDrawHideForAll(bvana3);
  349. }
  350. else
  351. {
  352. Oglasnik[Ukljucen] = 1;
  353. SendClientMessage(playerid,-1,""BILB" BVANA Oglasnik | "SIVA"Uspjesno ste ukljucili oglasavanje.");
  354. TextDrawShowForAll(bvana0);
  355. TextDrawShowForAll(bvana1);
  356. TextDrawShowForAll(bvana2);
  357. TextDrawShowForAll(bvana3);
  358. }
  359. SacuvajOglasP();
  360. }
  361. case 2:
  362. {
  363. ShowPlayerDialog(playerid, CIJENA_DIALOG, DIALOG_STYLE_INPUT, ""SPLAVA"Cijena oglasa", ""SZELENA"Unesite cijenu oglasa", "Promjeni", "Izlaz");
  364. }
  365. case 3:
  366. {
  367. ShowPlayerDialog(playerid, VRIJEME_DIALOG, DIALOG_STYLE_INPUT, ""SPLAVA"Vrijeme izmedju oglasa", ""SZELENA"Unesite vrijeme izmedju oglasa.(u sekundama).", "Promjeni", "Izlaz");
  368. }
  369. }
  370. }
  371. if(dialogid == CIJENA_DIALOG)
  372. {
  373. if(response)
  374. {
  375. new cijena;
  376. if(sscanf(inputtext, "i", cijena)) return ShowPlayerDialog(playerid, CIJENA_DIALOG, DIALOG_STYLE_INPUT, ""SPLAVA"Cijena oglasa", ""SZELENA"Unesite novu cijenu oglasa, i nemoj se zajebavat! "ZUTA":P", "Promjeni", "Izlaz");
  377. if(cijena < 1 || cijena > 1000) return SCM(playerid,-1,""BILB" BVANA Oglasnik | "SIVA"Cijena ne moze biti manja od 1$ niti veca od 1000$");
  378. SCMF(playerid, -1, ""BILB" BVANA Oglasnik | "SIVA"Uspjesno si promjenio cijenu oglasa. Nova cijena:%d$ || Stara cijena: %d$ ", cijena,Oglasnik[Cijena]);
  379. Oglasnik[Cijena] = cijena;
  380. SacuvajOglasP();
  381. }
  382. }
  383.  
  384. if(dialogid == VRIJEME_DIALOG)
  385. {
  386. if(response)
  387. {
  388. new vrijeme;
  389. if(sscanf(inputtext, "i", vrijeme)) return ShowPlayerDialog(playerid, VRIJEME_DIALOG, DIALOG_STYLE_INPUT, ""SPLAVA"Vrijeme izmedju oglasa", ""SZELENA"Unesite novo vrijeme izmedju oglasa.(u sekundama).", "Promjeni", "Izlaz");
  390. if(vrijeme < 1 || vrijeme > 1000) return SCM(playerid,-1,""BILB" BVANA Oglasnik | "SIVA"Vrijeme izmedju oglasa, ne moze biti manja od 1 niti vise od 1000 sekundi.");
  391. SCMF(playerid, -1, ""BILB" BVANA Oglasnik | "SIVA"Uspjesno si promjenio vrijeme izmedju oglasa. Nova vrijeme:%d || Staro vrijeme: %d", vrijeme,Oglasnik[Vrijeme]);
  392. Oglasnik[Vrijeme] = vrijeme;
  393. SacuvajOglasP();
  394. }
  395. }
  396.  
  397. return 1;
  398. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement