Talavander

Plavsa bot xD

Jan 14th, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.22 KB | None | 0 0
  1.  
  2. #include <a_samp>
  3. #include <YSI\y_ini>
  4. #include <dudb>
  5. #include <zcmd>
  6. #include <sscanf2>
  7. #include <foreach>
  8.  
  9.  
  10.  
  11. #define PATH "/Igraci/%s.ini"
  12.  
  13. #define PLAYER_MUST_REGISTER
  14. #define REGISTERED_MONEY 5000
  15.  
  16. #define Bela 0xFFFFFFA
  17. #define Crvena 0xFF0000AA
  18. #define Zuta 0xFFFF00FF
  19.  
  20. #define DIALOG_REGISTER 999
  21. #define DIALOG_LOGIN 998
  22.  
  23. #define PAY_TIME (15) // PAYDAY SVAKIH 15 minuta
  24. #define RESPECTS_LEVEL (1) // KOLIKO CE RESPECTA DOBITI NA JEDNOJ PLACI
  25. #define LEVELEXP (4) // level * 4 = 1 lvl = 4 respekta, za lvl 2, 8
  26.  
  27. main()
  28. {
  29. }
  30.  
  31. #pragma unused ret_memcpy
  32. #pragma unused PayDay
  33. enum pInfo
  34. {
  35. Sifra,
  36. Hash,
  37. Pare,
  38. Level,
  39. Admin,
  40. GameMaster,
  41. Respect,
  42. PayDayTime,
  43. OnlineMin,
  44. OnlineHours,
  45. Smrti,
  46. Ubistava
  47. };
  48. new PVar[MAX_PLAYERS][pInfo];
  49.  
  50. /*#if defined AUTOLOGIN
  51. new pIP[MAX_PLAYERS][16];
  52. #endif*/
  53.  
  54. new onlinesec[MAX_PLAYERS];
  55. new pLogged[MAX_PLAYERS];
  56. new LOCAL_TIMER;
  57.  
  58. stock ImeIgraca(playerid)
  59. {
  60. new Ime[256],name[MAX_PLAYER_NAME];
  61. GetPlayerName(playerid,name,sizeof(name));
  62. format(Ime,sizeof(Ime),PATH,name);
  63. return Ime;
  64. }
  65.  
  66. public OnGameModeInit()
  67. {
  68. print("\n--------------------------------------");
  69. print(" Ping Gaming RP mod. by Plavsa. ");
  70. print("--------------------------------------\n");
  71. SetGameModeText("PG RP By Plavsa");
  72. // TIMER's
  73. LOCAL_TIMER = SetTimer("LokalniTimer",1000,true);
  74. return 1;
  75. }
  76.  
  77. public OnGameModeExit()
  78. {
  79. KillTimer(LOCAL_TIMER);
  80. return (true);
  81. }
  82.  
  83. public OnPlayerConnect(playerid)
  84. {
  85. if(fexist(ImeIgraca(playerid))) {
  86. INI_ParseFile(ImeIgraca(playerid), "UserDataLoad_%s", .bExtra = true, .extra = playerid);
  87. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","Nick je registrovan, ukucajte svoju sifru da se logujete! ","Login","Izlaz");
  88. }
  89. else {
  90. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"{33BBFF} Registracija","Dobrodosli na Ping Gaming RP, Molimo registrujte se, ukucajte svoju sifru!","Registracija","Izlaz");
  91. }
  92. if(!IsRolePlayName(playerid)) {
  93. SendClientMessage(playerid, Bela, "[PG AC] - [KICKOVAN]: Molimo koristite RolePlay ime. (Primer: Petar_Petrovic)");
  94. Kick(playerid);
  95. return 1;
  96. }
  97.  
  98. return 1;
  99. }
  100.  
  101.  
  102. public OnPlayerDisconnect(playerid, reason)
  103. {
  104. UpdatePlayer(playerid);
  105. pLogged[playerid] = 0;
  106. return 1;
  107. }
  108.  
  109. public OnPlayerRequestSpawn(playerid)
  110. {
  111. if(pLogged[playerid] == 0) return SendClientMessage(playerid,Zuta,"Morate se prvo registrovati ili ulogovati pre spawnanja.!");
  112. return 1;
  113. }
  114.  
  115. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  116. {
  117. switch( dialogid ) {
  118. case DIALOG_REGISTER:
  119. {
  120. if (!response) return Kick(playerid);
  121. if(response) {
  122. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""Bela"Registracija...",""Bela"Ukucali ste pogresnu sifru.\n"Bela"Ukucajte vasu sifru.","Registracija","Izlaz");
  123. new INI:File = INI_Open(UserPath(playerid));
  124. new INI:IGRAC = INI_Open(iData);
  125. PVar[playerid][Hash] = (udb_hash(inputtext));
  126. INI_WriteInt(IGRAC, "Sifra", PVar[playerid][Hash]);
  127. INI_WriteInt(IGRAC, "Pare", REGISTERED_MONEY);
  128. INI_WriteInt(IGRAC, "Admin", PVar[playerid][Admin]);
  129. INI_WriteInt(IGRAC, "GameMaster", PVar[playerid][GameMaster]);
  130. INI_WriteInt(IGRAC, "Respect", PVar[playerid][Respect]);
  131. INI_WriteInt(IGRAC, "PayDayTime", PVar[playerid][PayDayTime]);
  132. INI_WriteInt(IGRAC, "OnlineMin", PVar[playerid][OnlineMin]);
  133. INI_WriteInt(IGRAC, "OnlineHours", PVar[playerid][OnlineHours]);
  134. INI_WriteInt(IGRAC, "Level", PVar[playerid][Level]);
  135. INI_WriteInt(IGRAC, "Smrti", PVar[playerid][Smrti]);
  136. INI_WriteInt(IGRAC, "Ubistava", PVar[playerid][Ubistava]);
  137. INI_Close(IGRAC);
  138. PlayerSpectatePlayer(playerid,0);
  139. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  140. pLogged{playerid} = true;
  141.  
  142. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  143. SpawnPlayer(playerid);
  144. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Cestitamo!",""COL_WHITE"Uspesno ste se registrovali! ","Ok","");
  145. }
  146. }
  147.  
  148. case DIALOG_LOGIN:
  149. {
  150. if ( !response ) return Kick ( playerid );
  151. if( response ) {
  152. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass]) {
  153. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  154. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  155. /*ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Log-in!",""COL_WHITE"Uspesno ste se logovali!","Ok","");
  156. SpawnPlayer(playerid);
  157. SetPlayerColor(playerid, COLOR_WHITE);*/
  158. }
  159. else {
  160. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Ukucali ste pogresnu sifru.\n"COL_WHITE"Ukucajte svoju sifru da se logujete.","Login","Izlaz");
  161. }
  162. return 1;
  163. }
  164. }
  165. }
  166. return 0;
  167. }
  168.  
  169. stock PayDay(playerid)
  170. {
  171. new string[128];
  172. new varCheck[2] = (0);
  173. if(pLogged{playerid} == 1)
  174. {
  175. PVar[playerid][Respect] += (RESPECTS_LEVEL);
  176. varCheck[0] = PVar[playerid][Level] + 1;
  177. varCheck[1] = varCheck[0]*LEVELEXP;
  178. if(PVar[playerid][Respect] >= varCheck[1])
  179. {
  180. // LEVEL UP
  181. PVar[playerid][Level] += (1);
  182. format(string, sizeof(string), "Cestitamo sada si lvl %d.",PVar[playerid][Level]);
  183. SendClientMessage(playerid, Crvena, string);
  184. UpdatePlayer(playerid);
  185. }
  186. }
  187. else
  188. {
  189. Kick(playerid);
  190. }
  191. return (true);
  192. }
  193. stock UpdatePlayer(playerid)
  194. {
  195. new iData[128];
  196. format(iData, sizeof iData, PATH, ImeIgraca(playerid));
  197. if(fexist(iData))
  198. {
  199. if(pLogged{playerid} == 1)
  200. {
  201. new INI:IGRAC = INI_Open(iData);
  202. INI_WriteInt(IGRAC, "Sifra", PVar[playerid][Hash]);
  203. INI_WriteInt(IGRAC, "Pare", PVar[playerid][Pare]);
  204. INI_WriteInt(IGRAC, "Admin", PVar[playerid][Admin]);
  205. INI_WriteInt(IGRAC, "GameMaster", PVar[playerid][GameMaster]);
  206. INI_WriteInt(IGRAC, "Respect", PVar[playerid][Respect]);
  207. INI_WriteInt(IGRAC, "PayDayTime", PVar[playerid][PayDayTime]);
  208. INI_WriteInt(IGRAC, "OnlineMin", PVar[playerid][OnlineMin]);
  209. INI_WriteInt(IGRAC, "OnlineHours", PVar[playerid][OnlineHours]);
  210. INI_WriteInt(IGRAC, "Level", PVar[playerid][Level]);
  211. INI_WriteInt(IGRAC, "Smrti", PVar[playerid][Smrti]);
  212. INI_WriteInt(IGRAC, "Ubistava", PVar[playerid][Ubistava]);
  213. INI_Close(IGRAC);
  214. }
  215. }
  216. return (true);
  217. }
  218. forward GetPlayerData(playerid,name[],value[]);
  219. public GetPlayerData(playerid,name[],value[])
  220. {
  221. /*#if defined AUTOLOGIN
  222. INI_String("IP",pIP[playerid],16);
  223. #endif*/
  224. INI_Int("Sifra", PVar[playerid][Sifra]);
  225. INI_Int("Pare", PVar[playerid][Pare]);
  226. INI_Int("Level", PVar[playerid][Level]);
  227. INI_Int("Admin", PVar[playerid][Admin]);
  228. INI_Int("Ubistava", PVar[playerid][Ubistava]);
  229. INI_Int("Smrti", PVar[playerid][Smrti]);
  230. INI_Int("PayDayTime", PVar[playerid][PayDayTime]);
  231. INI_Int("OnlineMin", PVar[playerid][OnlineMin]);
  232. INI_Int("OnlineHours", PVar[playerid][OnlineHours]);
  233. INI_Int("Respect", PVar[playerid][Respect]);
  234. INI_Int("GameMaster", PVar[playerid][GameMaster]);
  235. return (true);
  236. }
  237.  
  238. forward LokalniTimer();
  239. public LokalniTimer()
  240. {
  241. foreach(Player, i)
  242. {
  243. onlinesec[i] += 1;
  244. if(onlinesec[i] >= 60)
  245. {
  246. PVar[i][PayDayTime] += 1;
  247. PVar[i][OnlineMin] += 1;
  248. onlinesec[i] = 0;
  249. }
  250. if(PVar[i][OnlineMin] >= 60)
  251. {
  252. PVar[i][OnlineHours] += 1;
  253. PVar[i][OnlineMin] = 0;
  254. }
  255. if(PVar[i][PayDayTime] == PAY_TIME)
  256. {
  257. PVar[i][PayDayTime] = 0;
  258. PayDay(i);
  259. }
  260. if(PVar[i][Level] < 1 || GetPlayerScore(i) < 1)
  261. {
  262. PVar[i][Level] = (1);
  263. }
  264. if(PVar[i][Level] != GetPlayerScore(i))
  265. {
  266. SetPlayerScore(i, PVar[i][Level]);
  267. }
  268. }
  269. return (true);
  270. }
  271. stock IsRolePlayName(playerid, bool:alphaonly = true)
  272. {
  273. new trpn[MAX_PLAYER_NAME];
  274. if(GetPlayerName(playerid,trpn,sizeof(trpn))) {
  275. new strd = strfind(trpn, "_", false);
  276.  
  277. if(strfind(trpn,"_",false,strd+1) == -1) {
  278. if(strd > 0) {
  279. if(trpn[strd-1] && trpn[strd+1]) {
  280. if(alphaonly) {
  281. for(new a = 0, l = strlen(trpn); a < l; a++) {
  282. switch(trpn[a]) {
  283. case '0' .. '9': return 0;
  284.  
  285. case 'a' .. 'z': continue;
  286. case 'A' .. 'Z': continue;
  287. // easier than specifying every invalid char
  288. case '_': continue;
  289.  
  290. default: return 0;
  291. }
  292. }
  293. }
  294. return 1;
  295. }
  296. }
  297. }
  298. }
  299. return 0;
  300. }
Advertisement
Add Comment
Please, Sign In to add comment