Advertisement
Guest User

Mietcarsystem by YizOP_

a guest
Feb 5th, 2013
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 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. VMietungOrt[28],
  13. Float:VX,
  14. Float:VY,
  15. Float:VZ,
  16. Preis,
  17. Text3D:Label,
  18. Pickup,
  19. VMietungObject,
  20. Erstellt
  21. }
  22. new VermietungInfo[MAX_VERMIETUNG][VermietungInformation];
  23.  
  24. forward RollerTime(playerid);
  25.  
  26. main()
  27. {
  28. print("\n----------------------------------");
  29. print(" Blank Gamemode by your name here");
  30. print("----------------------------------\n");
  31. }
  32.  
  33. public OnGameModeInit()
  34. {
  35. SetGameModeText("Blank Script");
  36. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  37.  
  38. for(new i = 1; i <MAX_VERMIETUNG; i++){
  39. LadeVermietung(i);
  40. printf("Erstellt: %i - PosX: %f - PosY: %f - PosZ: %f - Preis: %i",VermietungInfo[i][Erstellt],VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ],VermietungInfo[i][Preis]);
  41. }
  42. return 1;
  43. }
  44.  
  45. public RollerTime(playerid)
  46. {
  47. SendClientMessage(playerid,ROT,"[VERMIETUNG:]Deine Zeit ist vorbei, dein Mitfahrzeug wird nun gelöscht!");
  48. new KillRoller;
  49. KillRoller = GetPlayerVehicleID(playerid);
  50. DestroyVehicle(KillRoller);
  51. SetPVarInt(playerid,"RollerGemietet",0);
  52. return 1;
  53. }
  54.  
  55. ocmd:createvmietung(playerid,params[])
  56. {
  57. new Float:vx,Float:vy,Float:vz,preis,vmietungort[28];
  58. GetPlayerPos(playerid,vx,vy,vz);
  59. if(sscanf(params,"ds",preis,vmietungort))return SendClientMessage(playerid,ROT,"FEHLER:/createvmietung [PREIS] [ORT]");
  60. ErstelleVermietung(vx,vy,vz,preis,vmietungort);
  61. return 1;
  62. }
  63.  
  64. ocmd:rentveh(playerid,params[])
  65. {
  66. for(new i = 1; i <MAX_VERMIETUNG; i++){
  67. if(IsPlayerInRangeOfPoint(playerid,5.0,VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ])){
  68. if(GetPVarInt(playerid,"RollerGemietet")==0){
  69. if(GetPlayerMoney(playerid) >= VermietungInfo[i][Preis]){
  70. new Roller = CreateVehicle(462,VermietungInfo[i][VX],VermietungInfo[i][VY]+2,VermietungInfo[i][VZ],0.000,-1,-1,-1);
  71. GivePlayerMoney(playerid,-VermietungInfo[i][Preis]);
  72. PutPlayerInVehicle(playerid,Roller,0);
  73. SetPVarInt(playerid,"RollerGemietet",1);
  74. SetPVarInt(playerid,"RollerBesitzer",1);
  75. SetTimer("RollerTime",1800000,false);
  76. GameTextForPlayer(playerid,"~y~Roller gemietet!",3000,1);
  77. SendClientMessage(playerid,WEISS,"[VERMIETUNG:]Dein Mietfahrzeug wird automatisch in 30 Minuten gelöscht.");
  78. }
  79. else return SendClientMessage(playerid,ROT,"ERROR: Du hast nicht genügend Geld dabei.");
  80. }
  81. else return SendClientMessage(playerid,ROT,"ERROR: Du hast bereits ein Fahrzeug gemietet.");
  82. }
  83. }
  84. return 1;
  85. }
  86.  
  87. ocmd:delvmietung(playerid,params[])
  88. {
  89. for(new i = 1; i <MAX_VERMIETUNG; i++){
  90. if(IsPlayerInRangeOfPoint(playerid,5,VermietungInfo[i][VX],VermietungInfo[i][VY],VermietungInfo[i][VZ])){
  91. new VermietungDatei[64];
  92. format(VermietungDatei,64,"/Autovermietung/%d.txt",i);
  93. if(dini_Exists(VermietungDatei)){
  94. dini_Remove(VermietungDatei);
  95. LoescheVermietung(i);
  96. LadeVermietung(i);
  97. }
  98. }
  99. }
  100. return 1;
  101. }
  102.  
  103. stock ErstelleVermietung(Float:vx,Float:vy,Float:vz,preis,vmietungort[28])
  104. {
  105. new VermietungDatei[64];
  106. for(new i = 1; i <MAX_VERMIETUNG; i++){
  107. format(VermietungDatei,64,"/Autovermietung/%d.txt",i);
  108. if(!fexist(VermietungDatei)){
  109. dini_Create(VermietungDatei);
  110. dini_Set(VermietungDatei,"Vermietungsort",vmietungort);
  111. dini_FloatSet(VermietungDatei,"Position:X",vx);
  112. dini_FloatSet(VermietungDatei,"Position:Y",vy);
  113. dini_FloatSet(VermietungDatei,"Position:Z",vz);
  114. dini_IntSet(VermietungDatei,"Preis",preis);
  115. dini_IntSet(VermietungDatei,"Erstellt",1);
  116. return LadeVermietung(i);
  117. }
  118. }
  119. return 1;
  120. }
  121.  
  122. stock LadeVermietung(VermietungID)
  123. {
  124. new VermietungDatei[64];
  125. format(VermietungDatei,64,"/Autovermietung/%d.txt",VermietungID);
  126. if(!fexist(VermietungDatei))return 0;
  127. VermietungInfo[VermietungID][VX] = dini_Float(VermietungDatei,"Position:X");
  128. VermietungInfo[VermietungID][VY] = dini_Float(VermietungDatei,"Position:Y");
  129. VermietungInfo[VermietungID][VZ] = dini_Float(VermietungDatei,"Position:Z");
  130. VermietungInfo[VermietungID][Preis] = dini_Int(VermietungDatei,"Preis");
  131. VermietungInfo[VermietungID][Erstellt] = dini_Int(VermietungDatei,"Erstellt");
  132. format(VermietungInfo[VermietungID][VMietungOrt],28,"%s",dini_Get(VermietungDatei,"Vermietungsort"));
  133. if(VermietungInfo[VermietungID][Erstellt] == 1){
  134. new string[256];
  135. format(string,sizeof(string),"|| Rollervermietung ||\n|| Ort: %s ||\n|| Preis: $%d ||",VermietungInfo[VermietungID][VMietungOrt],VermietungInfo[VermietungID][Preis]);
  136. VermietungInfo[VermietungID][Label] = Create3DTextLabel(string,WEISS,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],25.0,0);
  137. VermietungInfo[VermietungID][Pickup] = CreatePickup(1239,23,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY],VermietungInfo[VermietungID][VZ],0);
  138. VermietungInfo[VermietungID][VMietungObject] = CreateObject(4641,VermietungInfo[VermietungID][VX],VermietungInfo[VermietungID][VY]+2,VermietungInfo[VermietungID][VZ]+0.35,0.00, 0.00, 0.00);
  139. }
  140. else{
  141. }
  142. return 1;
  143. }
  144.  
  145. stock LoescheVermietung(VermietungID)
  146. {
  147. Delete3DTextLabel(VermietungInfo[VermietungID][Label]);
  148. return DestroyDynamicObject(VermietungInfo[VermietungID][VMietungObject]);
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement