Advertisement
Guest User

Mietsystem Update by YizOP

a guest
Feb 6th, 2013
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ocmd>
  3. #include <dini>
  4. #include <sscanf>
  5. #include <streamer>
  6.  
  7. #define WEISS 0xFFFFFFFF
  8. #define ROT 0xFF0000FF
  9.  
  10. #define MAX_VERMIETUNG 15
  11. enum VermietungInformation{
  12. Besitzer[64],
  13. VMietungOrt[28],
  14. Float:VX,
  15. Float:VY,
  16. Float:VZ,
  17. Level,
  18. BusinessPreis,
  19. Preis,
  20. Text3D:Label,
  21. Pickup,
  22. VMietungObject,
  23. Besetzt
  24. }
  25. new VermietungInfo[MAX_VERMIETUNG][VermietungInformation];
  26.  
  27. forward RollerTime(playerid);
  28.  
  29. main()
  30. {
  31. print("\n----------------------------------");
  32. print(" Blank Gamemode by your name here");
  33. print("----------------------------------\n");
  34. }
  35.  
  36. public OnGameModeInit()
  37. {
  38. SetGameModeText("Blank Script");
  39. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  40.  
  41. for(new i = 1; i <MAX_VERMIETUNG; i++){
  42. LadeVermietung(i);
  43. }
  44. return 1;
  45. }
  46.  
  47. public OnGameModeExit()
  48. {
  49. return 1;
  50. }
  51.  
  52. public RollerTime(playerid)
  53. {
  54. SendClientMessage(playerid,ROT,"[VERMIETUNG:]Deine Zeit ist vorbei, dein Mitfahrzeug wird nun gelöscht!");
  55. new KillRoller;
  56. KillRoller = GetPlayerVehicleID(playerid);
  57. DestroyVehicle(KillRoller);
  58. SetPVarInt(playerid,"RollerGemietet",0);
  59. return 1;
  60. }
  61.  
  62. ocmd:createvmietung(playerid,params[])
  63. {
  64. new Float:vx,Float:vy,Float:vz,preis,vmietungort[28],level,businesspreis;
  65. GetPlayerPos(playerid,vx,vy,vz);
  66. if(sscanf(params,"dsdd",preis,vmietungort,level,businesspreis))return SendClientMessage(playerid,ROT,"FEHLER:/createvmietung [PREIS] [ORT] [LEVEL] [KAUFPREIS]");
  67. ErstelleVermietung(vx,vy,vz,preis,vmietungort,"Keiner",level,businesspreis);
  68. return 1;
  69. }
  70.  
  71. ocmd:rentveh(playerid,params[])
  72. {
  73. for(new i = 1; i <MAX_VERMIETUNG; i++){
  74. if(IsPlayerInRangeOfPoint(playerid,5.0,VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ])){
  75. if(GetPVarInt(playerid,"RollerGemietet")==0){
  76. if(GetPlayerMoney(playerid) >= VermietungInfo[i][Preis]){
  77. new Roller = CreateVehicle(462,VermietungInfo[i][VX],VermietungInfo[i][VY]+2,VermietungInfo[i][VZ],0.000,-1,-1,-1);
  78. GivePlayerMoney(playerid,-VermietungInfo[i][Preis]);
  79. PutPlayerInVehicle(playerid,Roller,0);
  80. SetPVarInt(playerid,"RollerGemietet",1);
  81. SetPVarInt(playerid,"RollerBesitzer",1);
  82. SetTimerEx("RollerTime",1800000,false,"d",playerid);
  83. GameTextForPlayer(playerid,"~y~Roller gemietet!",3000,1);
  84. SendClientMessage(playerid,WEISS,"[VERMIETUNG:]Dein Mietfahrzeug wird automatisch in 30 Minuten gelöscht.");
  85. }
  86. else return SendClientMessage(playerid,ROT,"ERROR: Du hast nicht genügend Geld dabei.");
  87. }
  88. else return SendClientMessage(playerid,ROT,"ERROR: Du hast bereits ein Fahrzeug gemietet.");
  89. }
  90. }
  91. return 1;
  92. }
  93.  
  94. ocmd:delvmietung(playerid,params[])
  95. {
  96. for(new i = 1; i <MAX_VERMIETUNG; i++){
  97. if(IsPlayerInRangeOfPoint(playerid,5,VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ])){
  98. new VermietungDatei[64];
  99. format(VermietungDatei,64,"/Autovermietung/%d.txt",i);
  100. if(dini_Exists(VermietungDatei)){
  101. dini_Remove(VermietungDatei);
  102. LoescheVermietung(i);
  103. LadeVermietung(i);
  104. }
  105. }
  106. }
  107. return 1;
  108. }
  109.  
  110. ocmd:vkaufen(playerid,params[])
  111. {
  112. for(new i = 1; i <MAX_VERMIETUNG; i++){
  113. if(IsPlayerInRangeOfPoint(playerid,5,VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ])){
  114. if(VermietungInfo[i][Besetzt] == 0){
  115. if(strcmp(VermietungInfo[i][Besitzer],SName(playerid),false) == 0){
  116. if(GetPlayerMoney(playerid) >= VermietungInfo[i][BusinessPreis]){
  117. if(GetPlayerScore(playerid) >= VermietungInfo[i][Level]){
  118. GivePlayerMoney(playerid,-VermietungInfo[i][BusinessPreis]);
  119. new VermietungDatei[64];
  120. format(VermietungDatei,64,"/Autovermietung/%d.txt",i);
  121. dini_IntSet(VermietungDatei,"Besetzt",1);
  122. dini_Set(VermietungDatei,"Besitzer",SName(playerid));
  123. SendClientMessage(playerid,ROT,"[VMIETUNG:]Du bist nun der neue Besitzer von der Autovermietung.");
  124. LoescheVermietung(i);
  125. LadeVermietung(i);
  126. }
  127. else return SendClientMessage(playerid,ROT,"ERROR:Dein Level ist nicht hoch genug.");
  128. }
  129. else return SendClientMessage(playerid,ROT,"ERROR:Du hast nicht genügend Geld dabei.");
  130. }
  131. }
  132. else return SendClientMessage(playerid,ROT,"ERROR:Diese Vermietung besitzt schon bereits einen Besitzer.");
  133. }
  134. }
  135. return 1;
  136. }
  137.  
  138. stock ErstelleVermietung(Float:vx,Float:vy,Float:vz,preis,vmietungort[28],besitzer[64],level,businesspreis)
  139. {
  140. new VermietungDatei[64];
  141. for(new i = 1; i <MAX_VERMIETUNG; i++){
  142. format(VermietungDatei,64,"/Autovermietung/%d.txt",i);
  143. if(!fexist(VermietungDatei)){
  144. dini_Create(VermietungDatei);
  145. dini_Set(VermietungDatei,"Besitzer",besitzer);
  146. dini_Set(VermietungDatei,"Vermietungsort",vmietungort);
  147. dini_FloatSet(VermietungDatei,"Position:X",vx);
  148. dini_FloatSet(VermietungDatei,"Position:Y",vy);
  149. dini_FloatSet(VermietungDatei,"Position:Z",vz);
  150. dini_IntSet(VermietungDatei,"Preis",preis);
  151. dini_IntSet(VermietungDatei,"BusinessPreis",businesspreis);
  152. dini_IntSet(VermietungDatei,"Level",level);
  153. dini_IntSet(VermietungDatei,"Besetzt",0);
  154. return LadeVermietung(i);
  155. }
  156. }
  157. return 1;
  158. }
  159.  
  160. stock LadeVermietung(VermietungID)
  161. {
  162. new VermietungDatei[64];
  163. format(VermietungDatei,64,"/Autovermietung/%d.txt",VermietungID);
  164. if(!fexist(VermietungDatei))return 0;
  165. VermietungInfo[VermietungID][VX] = dini_Float(VermietungDatei,"Position:X");
  166. VermietungInfo[VermietungID][VY] = dini_Float(VermietungDatei,"Position:Y");
  167. VermietungInfo[VermietungID][VZ] = dini_Float(VermietungDatei,"Position:Z");
  168. VermietungInfo[VermietungID][Preis] = dini_Int(VermietungDatei,"Preis");
  169. VermietungInfo[VermietungID][BusinessPreis] = dini_Int(VermietungDatei,"BusinessPreis");
  170. VermietungInfo[VermietungID][Level] = dini_Int(VermietungDatei,"Level");
  171. VermietungInfo[VermietungID][Besetzt] = dini_Int(VermietungDatei,"Besetzt");
  172. format(VermietungInfo[VermietungID][VMietungOrt],28,"%s",dini_Get(VermietungDatei,"Vermietungsort"));
  173. format(VermietungInfo[VermietungID][Besitzer],64,"%s",dini_Get(VermietungDatei,"Besitzer"));
  174. if(VermietungInfo[VermietungID][Besetzt] == 0){
  175. new string[512];
  176. format(string,sizeof(string),"|| Rollervermietung ||\n|| Ort: %s ||\n|| Preis: $%d ||\n|| Besitzer: Keiner ||\n|| Kaufpreis: %d ||",VermietungInfo[VermietungID][VMietungOrt],VermietungInfo[VermietungID][Preis],VermietungInfo[VermietungID][BusinessPreis]);
  177. VermietungInfo[VermietungID][Label] = Create3DTextLabel(string,WEISS,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],25.0,0);
  178. VermietungInfo[VermietungID][Pickup] = CreatePickup(1239,23,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],0);
  179. VermietungInfo[VermietungID][VMietungObject] = CreateObject(4641,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY]+2,VermietungInfo[VermietungID][VZ]+0.35,0.00, 0.00, 0.00);
  180. }
  181. else{
  182. new string[512];
  183. format(string,sizeof(string),"|| Besitzer: %s ||\n|| Ort: %s ||\n|| Rollervermietung ||\n|| Preis: $%d ||",VermietungInfo[VermietungID][Besitzer],VermietungInfo[VermietungID][VMietungOrt],VermietungInfo[VermietungID][Preis]);
  184. VermietungInfo[VermietungID][Label] = Create3DTextLabel(string,WEISS,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],25.0,0);
  185. VermietungInfo[VermietungID][Pickup] = CreatePickup(1239,23,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],0);
  186. VermietungInfo[VermietungID][VMietungObject] = CreateObject(4641,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY]+2,VermietungInfo[VermietungID][VZ]+0.35,0.00, 0.00, 0.00);
  187. }
  188. return 1;
  189. }
  190.  
  191. stock LoescheVermietung(VermietungID)
  192. {
  193. Delete3DTextLabel(VermietungInfo[VermietungID][Label]);
  194. return DestroyDynamicObject(VermietungInfo[VermietungID][VMietungObject]);
  195. }
  196.  
  197. stock SName(playerid)
  198. {
  199. new name[MAX_PLAYER_NAME];
  200. GetPlayerName(playerid,name,sizeof(name));
  201. return name;
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement