Guest User

Ho_Business v.1.0 ©

a guest
Aug 31st, 2011
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.73 KB | None | 0 0
  1. // Ho_Business v1.0
  2.  
  3. // Credits to |GSR|Honig
  4. // Credits to Haxler für das entbuggen des Gametextes
  5.  
  6. //
  7. #include <a_samp>
  8. #include <sscanf>
  9. //
  10. #define FILTERSCRIPT
  11. #define MAX_BUSINESSES 100
  12. #define PayoutTimer 600*1000
  13. #define COLOR_RED 0xFF0000FF
  14. #define COLOR_BLUE 0x0000FFFF
  15. #define COLOR_YELLOW 0xFFFF00FF
  16. #define COLOR_GREEN 0x00FF00FF
  17. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  18. //
  19. new BusinessPickup[MAX_BUSINESSES];
  20. new BusinessCount = -1;
  21. //
  22.  
  23. //
  24. enum BusInfo
  25. {
  26. Float:BusX,
  27. Float:BusY,
  28. Float:BusZ,
  29. Preis,
  30. Verkaufspreis,
  31. Gehalt,
  32. Besitzer,
  33. Name[60],
  34. Aktiv
  35. };
  36. new BusinessInfo[MAX_BUSINESSES][BusInfo];
  37. //
  38.  
  39. public OnFilterScriptInit()
  40. {
  41. print("\n--------------------------------------------------");
  42. print(" Biz System © by |GSR|Honig erfolgreich geladen!");
  43. print("-------------------------------------------------\n");
  44. SetTimer("Payouttimer", PayoutTimer, true);
  45. CreateBusiness("Ammunation", 2351.23, -646.66, 128.06, 11500, 5700, 544);
  46. new File:fhnd;
  47. if(!fexist("SavedBusiness.txt"))
  48. {
  49. fhnd=fopen("SavedBusiness.txt",io_write);
  50. fclose(fhnd);
  51. }
  52. return 1;
  53. }
  54.  
  55. public OnFilterScriptExit()
  56. {
  57. return 1;
  58. }
  59.  
  60. public OnPlayerRequestClass(playerid, classid)
  61. {
  62. return 1;
  63. }
  64.  
  65. public OnPlayerConnect(playerid)
  66. {
  67. SendClientMessage(playerid,COLOR_BLUE,".: Dieser Server benutzt das Bizsystem Ho_Business v.1.0! :. ");
  68. return 1;
  69. }
  70.  
  71. public OnPlayerDisconnect(playerid)
  72. {
  73. for(new C; C<BusinessCount+1; C++)
  74. {
  75. if(BusinessInfo[C][Besitzer] == playerid) BusinessInfo[C][Besitzer] = -1;
  76. }
  77. return 1;
  78. }
  79.  
  80. public OnPlayerSpawn(playerid)
  81. {
  82. return 1;
  83. }
  84.  
  85. public OnPlayerDeath(playerid, killerid, reason)
  86. {
  87. return 1;
  88. }
  89.  
  90. public OnVehicleSpawn(vehicleid)
  91. {
  92. return 1;
  93. }
  94.  
  95. public OnVehicleDeath(vehicleid, killerid)
  96. {
  97. return 1;
  98. }
  99.  
  100. public OnPlayerText(playerid, text[])
  101. {
  102. return 1;
  103. }
  104.  
  105. public OnPlayerCommandText(playerid, cmdtext[])
  106. {
  107. dcmd(cbiz,4,cmdtext);
  108.  
  109. if(!strcmp(cmdtext, "/buybiz", true))
  110. {
  111. if(IsPlayerCloseEnoughToBis(playerid) == -1) return SendClientMessage(playerid,COLOR_RED, "Du bist nicht an einer Firma!");
  112. new buss = IsPlayerCloseEnoughToBis(playerid);
  113. if(BusinessInfo[buss][Aktiv] == 1) return SendClientMessage(playerid, COLOR_RED, "Diese Firma steht momentan nicht zum Verkauf!");
  114. if(GetPlayerMoney(playerid) < BusinessInfo[buss][Preis]) return SendClientMessage(playerid, COLOR_RED, "Du hast nicht genug Geld um diese Firma zu kaufen!");
  115. if(BusinessInfo[buss][Besitzer] != -1) return SendClientMessage(playerid, COLOR_RED, "Diese Firma gehört schon jemandem!");
  116. BusinessInfo[buss][Besitzer] = playerid;
  117. SetPVarInt(playerid, "Einnahmen" , GetPVarInt(playerid, "Einnahmen") + BusinessInfo[buss][Gehalt]);
  118. SendClientMessage(playerid,COLOR_GREEN,"Herzlichen Glückwunsch zu deiner neuen Firma!");
  119. SendClientMessage(playerid,COLOR_GREEN,"Du wirst nun pünktlich alle 10 Minuten die Biz-Einnahmen ausgezahlt bekommen!");
  120. GivePlayerMoney(playerid, -BusinessInfo[buss][Preis]);
  121. return 1;
  122. }
  123. if(!strcmp(cmdtext, "/sellbiz", true))
  124. {
  125. if(IsPlayerCloseEnoughToBis(playerid) == -1) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht an einer Firma!");
  126. new buss = IsPlayerCloseEnoughToBis(playerid);
  127. if(BusinessInfo[buss][Besitzer] != playerid) return SendClientMessage(playerid, COLOR_RED, "Diese Firma gehört dir nicht!");
  128. BusinessInfo[buss][Besitzer] = -1;
  129. SetPVarInt(playerid, "Einnahmen", GetPVarInt(playerid, "Einnahmen") - BusinessInfo[buss][Gehalt]);
  130. SendClientMessage(playerid,COLOR_GREEN,"Du hast deine Firma erfolgreich verkauft!");
  131. GivePlayerMoney(playerid, BusinessInfo[buss][Verkaufspreis]);
  132. }
  133. return 0;
  134. }
  135.  
  136. /*CreateBusiness(BusinessName[], Float:XPos, Float:YPos, Float:ZPos, Kaufpreis, Sellpreis, Verdienst)
  137. {*/
  138. dcmd_cbiz(playerid,params[])
  139. {
  140. new bizname[56],kaufen,verkaufen,gehalt;
  141. if(sscanf(params,"siii",bizname,kaufen,verkaufen,gehalt)) return SendClientMessage(playerid,COLOR_BLUE,"Benutze: /cbiz (Name) (Kaufpreis) (Verkaufspreis) (Einnahmen)");
  142. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"Du bist kein RCON-Admin!");
  143.  
  144. new entry[128];
  145. new Float:BX,Float:BY,Float:BZ;
  146. GetPlayerPos(playerid, BX, BY, BZ);
  147. new File:hFile;
  148. format(entry, 128, "CreateBusiness(\"%s\", %.2f, %.2f, %.2f, %d, %d, %d);",bizname,BX,BY,BZ,kaufen,verkaufen,gehalt);
  149. hFile = fopen("SavedBusiness.txt", io_append);
  150. fwrite(hFile, entry);
  151. fclose(hFile);
  152. AddStaticPickup(1272,1, BX, BY, BZ, 0);
  153. SendClientMessage(playerid,COLOR_BLUE,"Firma wurde in die Datei 'SavedBusiness.txt' eingetragen!");
  154. return 1;
  155. }
  156.  
  157.  
  158.  
  159. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  160. {
  161. return 1;
  162. }
  163.  
  164. public OnPlayerExitVehicle(playerid, vehicleid)
  165. {
  166. return 1;
  167. }
  168.  
  169. public OnPlayerStateChange(playerid, newstate, oldstate)
  170. {
  171. return 1;
  172. }
  173.  
  174. public OnPlayerEnterCheckpoint(playerid)
  175. {
  176. return 1;
  177. }
  178.  
  179. public OnPlayerLeaveCheckpoint(playerid)
  180. {
  181. return 1;
  182. }
  183.  
  184. public OnPlayerEnterRaceCheckpoint(playerid)
  185. {
  186. return 1;
  187. }
  188.  
  189. public OnPlayerLeaveRaceCheckpoint(playerid)
  190. {
  191. return 1;
  192. }
  193.  
  194. public OnRconCommand(cmd[])
  195. {
  196. return 1;
  197. }
  198.  
  199. public OnPlayerRequestSpawn(playerid)
  200. {
  201. return 1;
  202. }
  203.  
  204. public OnObjectMoved(objectid)
  205. {
  206. return 1;
  207. }
  208.  
  209. public OnPlayerObjectMoved(playerid, objectid)
  210. {
  211. return 1;
  212. }
  213.  
  214. public OnPlayerPickUpPickup(playerid,pickupid)
  215. {
  216. new C = IsABusinessPickup(pickupid);
  217. if(C != -1)
  218. {
  219. new ownername[MAX_PLAYER_NAME];
  220. GetPlayerName(BusinessInfo[C][Besitzer], ownername, 24);
  221. new str[150];
  222. if(BusinessInfo[C][Besitzer] == -1) format(str, 150, "~w~''%s''~n~~r~Preis: ~w~$%d~n~~r~Verkaufspreis: ~w~$%d~n~~r~Einnahmen: ~w~$%d", BusinessInfo[C][Name], BusinessInfo[C][Preis], BusinessInfo[C][Verkaufspreis], BusinessInfo[C][Gehalt]);
  223. else format(str, 150, "~w~''%s''~n~~r~Preis: ~w~$%d~n~~r~Verkaufspreis: ~w~$%d~n~~r~Einnahmen: ~w~$%d~n~~r~Besitzer: ~w~%s", BusinessInfo[C][Name], BusinessInfo[C][Preis], BusinessInfo[C][Verkaufspreis], BusinessInfo[C][Gehalt], ownername);
  224. return GameTextForPlayer(playerid, str, 3000, 3);
  225. }
  226. return 1;
  227. }
  228.  
  229.  
  230.  
  231. public OnVehicleMod(playerid, vehicleid, componentid)
  232. {
  233. return 1;
  234. }
  235.  
  236. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerSelectedMenuRow(playerid, row)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerExitedMenu(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnRconLoginAttempt(ip[], password[], success)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnPlayerUpdate(playerid)
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnPlayerStreamIn(playerid, forplayerid)
  277. {
  278. return 1;
  279. }
  280.  
  281. public OnPlayerStreamOut(playerid, forplayerid)
  282. {
  283. return 1;
  284. }
  285.  
  286. public OnVehicleStreamIn(vehicleid, forplayerid)
  287. {
  288. return 1;
  289. }
  290.  
  291. public OnVehicleStreamOut(vehicleid, forplayerid)
  292. {
  293. return 1;
  294. }
  295.  
  296. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  297. {
  298. return 1;
  299. }
  300.  
  301. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  302. {
  303. return 1;
  304. }
  305. CreateBusiness(BusinessName[], Float:XPos, Float:YPos, Float:ZPos, Kaufpreis, Sellpreis, Verdienst)
  306. {
  307. if(!strlen(BusinessName)) return 0;
  308. BusinessCount ++;
  309. BusinessInfo[BusinessCount][BusX] = XPos;
  310. BusinessInfo[BusinessCount][BusY] = YPos;
  311. BusinessInfo[BusinessCount][BusZ] = ZPos;
  312. BusinessInfo[BusinessCount][Preis] = Kaufpreis;
  313. BusinessInfo[BusinessCount][Verkaufspreis] = Sellpreis;
  314. BusinessInfo[BusinessCount][Gehalt] = Verdienst;
  315. BusinessInfo[BusinessCount][Besitzer] = -1;
  316. BusinessPickup[BusinessCount] = CreatePickup(1274,1,XPos, YPos, ZPos);
  317. format(BusinessInfo[BusinessCount][Name], 60, "%s", BusinessName);
  318. return BusinessCount;
  319. }
  320. forward Payouttimer();
  321. public Payouttimer()
  322. {
  323. for(new i; i<GetMaxPlayers(); i++)
  324. {
  325. if(GetPVarInt(i, "Einnahmen") != 0)
  326. {
  327. new Str[100];
  328. format(Str, sizeof(Str), "** INFO: Bizeinnahmen: +$%d **", GetPVarInt(i, "Einnahmen"));
  329. SendClientMessage(i, COLOR_GREEN, Str);
  330. GivePlayerMoney(i, GetPVarInt(i, "Einnahmen"));
  331. }
  332. }
  333. return 1;
  334. }
  335. stock IsPlayerCloseEnoughToBis(playerid)
  336. {
  337. for(new C; C<BusinessCount+1; C++)
  338. {
  339. if(IsPlayerInRangeOfPoint(playerid, 3, BusinessInfo[C][BusX], BusinessInfo[C][BusY], BusinessInfo[C][BusZ])) return C;
  340. }
  341. return -1;
  342. }
  343. stock IsABusinessPickup(pickupid)
  344. {
  345. for(new i;i<=BusinessCount;i++)
  346. {
  347. if(pickupid == BusinessPickup[i])return i;
  348. }
  349. return -1;
  350. }
Advertisement
Add Comment
Please, Sign In to add comment