Advertisement
Guest User

Sandra

a guest
Mar 19th, 2008
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.82 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dudb>
  3.  
  4. #define COLOR_RED 0xFF0000AA
  5. #define COLOR_YELLOW 0xFFFF00AA
  6. #define COLOR_GREEN 0x00FF00AA
  7.  
  8. forward StoleCar(playerid, vehicleid);
  9.  
  10. new StoleCarTimer[MAX_PLAYERS];
  11. new logged[MAX_PLAYERS];
  12. new adminlevel[MAX_PLAYERS];
  13. new money[MAX_PLAYERS];
  14. new license[MAX_PLAYERS];
  15. new playername[MAX_PLAYER_NAME];
  16. new IsCarStolen[MAX_VEHICLES];
  17. new LastCar[MAX_PLAYERS];
  18.  
  19. main()
  20. {
  21. print("===============================");
  22. print(" LicenseSystem by WackoX ");
  23. print(" AccountSystem by Sandra18[NL] ");
  24. print("===============================");
  25. }
  26.  
  27. public OnPlayerConnect(playerid)
  28. {
  29. license[playerid] = 0;
  30. logged[playerid] = 0;
  31. LastCar[playerid] = 0;
  32. return 1;
  33. }
  34.  
  35. public OnPlayerSpawn(playerid)
  36. {
  37. if(logged[playerid] == 0)
  38. {
  39. SendClientMessage(playerid, COLOR_RED, "Je bent nog niet ingelogd! Gebruik /login [wachtwoord]!");
  40. }
  41. return 1;
  42. }
  43.  
  44. public OnPlayerCommandText(playerid, cmdtext[])
  45. {
  46. new cmd[256],tmp[256], tmp2[256];
  47. new idx;
  48. new string[256];
  49. cmd = strtok(cmdtext, idx);
  50. GetPlayerName(playerid, playername, sizeof(playername));
  51. if(strcmp(cmd, "/register", true) == 0)
  52. {
  53. tmp = strtok(cmdtext, idx);
  54. if(!strlen(tmp))
  55. {
  56. SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /register (password)");
  57. }
  58. else
  59. {
  60. if (!dini_Exists(udb_encode(playername)))
  61. {
  62. dini_Create(udb_encode(playername));
  63. dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
  64. dini_IntSet(udb_encode(playername), "adminlevel", 0);
  65. dini_IntSet(udb_encode(playername), "money", 0);
  66. dini_IntSet(udb_encode(playername), "license", 0);
  67. format(string, sizeof(string), "Account %s aangemaakt! Je kunt nu inloggen met het wachtwoord: %s.", playername, tmp);
  68. SendClientMessage(playerid, COLOR_YELLOW, string);
  69. }
  70. else
  71. {
  72. format(string, sizeof(string), "%s already registered.", playername,tmp);
  73. SendClientMessage(playerid, COLOR_RED, string);
  74. }
  75. }
  76. return 1;
  77. }
  78.  
  79.  
  80. if(strcmp(cmd, "/login", true) == 0)
  81. {
  82. GetPlayerName(playerid, playername, sizeof(playername));
  83. if(logged[playerid] == 1)
  84. {
  85. SendClientMessage(playerid, COLOR_RED, "Je bent al ingelogd");
  86. return 1;
  87. }
  88. tmp = strtok(cmdtext, idx);
  89. if(!strlen(tmp))
  90. {
  91. SendClientMessage(playerid, COLOR_YELLOW, "Gebruik: /login (wachtwoord)");
  92. }
  93. else
  94. {
  95. if (dini_Exists(udb_encode(playername)))
  96. {
  97. tmp2 = dini_Get(udb_encode(playername), "password");
  98. if (udb_hash(tmp) != strval(tmp2))
  99. {
  100. SendClientMessage(playerid, COLOR_RED, "Verkeerd wachtwoord!.");
  101. }
  102. else
  103. {
  104. logged[playerid] = 1;
  105. license[playerid] = dini_Int(udb_encode(playername), "license");
  106. money[playerid] = dini_Int(udb_encode(playername), "money");
  107. adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");
  108. format(string, sizeof(string), "%s, Je bent nu ingelogd. Je hebt (Admin)Level %d, $%d Dollar, en %d License(s)", playername, adminlevel[playerid], money[playerid], license[playerid]);
  109. SendClientMessage(playerid, COLOR_GREEN, string);
  110. GivePlayerMoney(playerid, money[playerid]);
  111. }
  112. }
  113. else
  114. {
  115. format(string, sizeof(string), "Het account %s, bestaat nog niet. Typ /register [wachtwoord] om een account te maken.", playername);
  116. SendClientMessage(playerid, COLOR_RED, string);
  117. }
  118. }
  119. return 1;
  120. }
  121.  
  122. if(strcmp(cmd, "/BuyLicense", true) == 0)
  123. {
  124. if(logged[playerid] == 1)
  125. {
  126. if(license[playerid] == 0)
  127. {
  128. if(GetPlayerMoney(playerid) >= 1000)
  129. {
  130. license[playerid] = 1;
  131. GivePlayerMoney(playerid, - 1000);
  132. SendClientMessage(playerid, COLOR_GREEN, "Je hebt $1000 betaald om een License te kopen!");
  133. return 1;
  134. }
  135. else
  136. {
  137. SendClientMessage(playerid, COLOR_RED, "Je hebt niet genoeg geld! (Je hebt $1000 nodig!)");
  138. }
  139. }
  140. else
  141. {
  142. SendClientMessage(playerid, COLOR_RED, "Je hebt al een License!");
  143. }
  144. }
  145. else
  146. {
  147. SendClientMessage(playerid, COLOR_RED, "Je moet je eerst inloggen /login [wachtwoord]");
  148. }
  149. return 1;
  150. }
  151.  
  152. if(strcmp(cmd, "/maakmijadmin", true) == 0)
  153. {
  154. if(IsPlayerAdmin(playerid))
  155. {
  156. if(logged[playerid] == 1)
  157. {
  158. if(adminlevel[playerid] != 3)
  159. {
  160. adminlevel[playerid] = 3;
  161. SendClientMessage(playerid, COLOR_GREEN, "Je bent nu hoofdadmin! Gefeliciteerd!");
  162. }
  163. else
  164. {
  165. SendClientMessage(playerid, COLOR_RED, "Je bent al hoofdadmin!");
  166. }
  167. }
  168. else
  169. {
  170. SendClientMessage(playerid, COLOR_RED, "Je moet je eerst inloggen /login [wachtwoord]");
  171. }
  172. }
  173. else
  174. {
  175. SendClientMessage(playerid, COLOR_RED, "Je moet je eerst met rcon inloggen! (/rcon login [rcon-pass])");
  176. }
  177. return 1;
  178. }
  179. return 0;
  180. }
  181.  
  182. public StoleCar(playerid, vehicleid)
  183. {
  184. new Float:X, Float:Y, Float:Z;
  185. if(IsCarStolen[vehicleid] == 1)
  186. {
  187. GetVehiclePos(vehicleid, X, Y, Z);
  188. for(new i; i<MAX_PLAYERS; i++)
  189. {
  190. if(IsPlayerConnected(i))
  191. {
  192. if(PlayerToPoint(100.0, i, X, Y, Z))
  193. {
  194. PlayerPlaySound(playerid,1147,0.0,0.0,0.0);
  195. }
  196. }
  197. }
  198. }
  199. }
  200.  
  201. public OnPlayerStateChange(playerid, newstate, oldstate)
  202. {
  203. new Vid = GetPlayerVehicleID(playerid);
  204. if(newstate == 2)
  205. {
  206. LastCar[playerid] = Vid;
  207. if(license[playerid] == 0)
  208. {
  209. IsCarStolen[Vid] = 1;
  210. KillTimer(StoleCarTimer[playerid]);
  211. StoleCarTimer[playerid] = SetTimerEx("StoleCar", 1000, 1, "id", playerid, Vid);
  212. SendClientMessage(playerid, COLOR_RED, "Je hebt nog geen License (/buylicense), Of je bent nog niet ingelogd!");
  213. }
  214. else if(license[playerid] == 1)
  215. {
  216. KillTimer(StoleCarTimer[playerid]);
  217. SendClientMessage(playerid, COLOR_GREEN, "Je hebt een License! Rijd goed!");
  218. }
  219. }
  220. if(oldstate == 2)
  221. {
  222. KillTimer(StoleCarTimer[playerid]);
  223. IsCarStolen[LastCar[playerid]] = 0;
  224. }
  225. return 1;
  226. }
  227.  
  228. public OnVehicleDeath(vehicleid, killerid)
  229. {
  230. IsCarStolen[vehicleid] = 0;
  231. return 1;
  232. }
  233.  
  234. public OnPlayerDisconnect(playerid, reason)
  235. {
  236. if(logged[playerid] == 1)
  237. {
  238. GetPlayerName(playerid, playername, sizeof(playername));
  239. money[playerid] = GetPlayerMoney(playerid);
  240. dini_IntSet(udb_encode(playername), "license", license[playerid]);
  241. dini_IntSet(udb_encode(playername), "money", money[playerid]);
  242. dini_IntSet(udb_encode(playername), "adminlevel", adminlevel[playerid]);
  243. logged[playerid] = 0;
  244. }
  245. KillTimer(StoleCarTimer[playerid]);
  246. return 1;
  247. }
  248.  
  249. PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
  250. {
  251. new Float:oldposx, Float:oldposy, Float:oldposz;
  252. new Float:tempposx, Float:tempposy, Float:tempposz;
  253. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  254. tempposx = (oldposx -x);
  255. tempposy = (oldposy -y);
  256. tempposz = (oldposz -z);
  257. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  258. {
  259. return 1;
  260. }
  261. return 0;
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement