Advertisement
Guest User

Mietsystem by YizOP_

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