Advertisement
Guest User

Mau5_Haus

a guest
Feb 24th, 2012
423
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3.  
  4. #define ORDNERNAME "Häuser"
  5.  
  6. #define MAX_HAUS 50
  7.  
  8. enum hausEnum
  9. {
  10. Float:AussenX,
  11. Float:AussenY,
  12. Float:AussenZ,
  13. Float:InnenX,
  14. Float:InnenY,
  15. Float:InnenZ,
  16.  
  17. Kaufpreis,
  18. Interior,
  19.  
  20. Text3D:HausLabel,
  21. HausPickup,
  22.  
  23. Besitzer[24]
  24. };
  25. new Haus[MAX_HAUS][hausEnum];
  26.  
  27. new hstring[64];
  28. new unusedstring[64];
  29.  
  30.  
  31. public OnFilterScriptInit()
  32. {
  33. new h;
  34. for(;h!=MAX_HAUS;h++)
  35. {
  36. format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
  37. if(dini_Exists(hstring))
  38. {
  39. Haus[h][AussenX] = dini_Float(hstring,"Aussen_X");
  40. Haus[h][AussenY] = dini_Float(hstring,"Aussen_Y");
  41. Haus[h][AussenZ] = dini_Float(hstring,"Aussen_Z");
  42.  
  43. Haus[h][InnenX] = dini_Float(hstring,"Innen_X");
  44. Haus[h][InnenY] = dini_Float(hstring,"Innen_Y");
  45. Haus[h][InnenZ] = dini_Float(hstring,"Innen_Z");
  46.  
  47. Haus[h][Kaufpreis] = dini_Int(hstring,"Kaufpreis");
  48. Haus[h][Interior] = dini_Int(hstring,"Interior");
  49.  
  50. format(Haus[h][Besitzer],24,"%s",dini_Get(hstring,"Besitzer"));
  51. if(!strcmp(Haus[h][Besitzer],"Niemand",true))
  52. {
  53. format(unusedstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
  54. Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
  55. Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
  56. }
  57. else
  58. {
  59. format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
  60. Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
  61. Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
  62. }
  63. }
  64. }
  65. return 1;
  66. }
  67.  
  68.  
  69. stock HausErstellen(Float:Aussen_X,Float:Aussen_Y,Float:Aussen_Z,Float:Innen_X,Float:Innen_Y,Float:Innen_Z,Kaufpreis_,Interior_)
  70. {
  71. new h;
  72. for(;h!=MAX_HAUS;h++)
  73. if(Haus[h][Interior] != 0)
  74. {
  75. Haus[h][AussenX] = Aussen_X;
  76. Haus[h][AussenY] = Aussen_Y;
  77. Haus[h][AussenZ] = Aussen_Z;
  78. Haus[h][InnenX] = Innen_X;
  79. Haus[h][InnenY] = Innen_Y;
  80. Haus[h][InnenZ] = Innen_Z;
  81.  
  82. Haus[h][Kaufpreis] = Kaufpreis_;
  83. Haus[h][Interior] = Interior_;
  84.  
  85. format(hstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
  86. Haus[h][HausLabel] = Create3DTextLabel(hstring,0xFFFFFFFF,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]+1.7,20.0,-1);
  87. Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
  88. format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
  89. dini_Create(hstring);
  90. dini_IntSet(hstring,"Aussen_X",Aussen_X);
  91. dini_IntSet(hstring,"Aussen_Y",Aussen_Y);
  92. dini_IntSet(hstring,"Aussen_Z",Aussen_Z);
  93.  
  94. dini_IntSet(hstring,"Innen_X",Innen_X);
  95. dini_IntSet(hstring,"Innen_Y",Innen_Y);
  96. dini_IntSet(hstring,"Innen_Z",Innen_Z);
  97.  
  98. dini_IntSet(hstring,"Kaufpreis",Kaufpreis_);
  99. dini_IntSet(hstring,"Interior",Interior_);
  100. return 1;
  101. }
  102. return 0;
  103. }
  104.  
  105. stock RemoveHaus(playerid)
  106. {
  107. if(IsPlayerInRangeOfAnyHaus(playerid))
  108. {
  109. new h = IsPlayerInRangeOfAnyHaus(playerid);
  110. Haus[h][AussenX] = 0;
  111. Haus[h][AussenY] = 0;
  112. Haus[h][AussenZ] = 0;
  113. Haus[h][InnenX] = 0;
  114. Haus[h][InnenY] = 0;
  115. Haus[h][InnenZ] = 0;
  116. Haus[h][Kaufpreis] = 0;
  117. Haus[h][Interior] = 0;
  118.  
  119. format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
  120. dini_Remove(hstring);
  121. return 1;
  122. }
  123. return 0;
  124. }
  125.  
  126. stock HausKaufen(playerid)
  127. {
  128. new CurrMoney = Mau5_GetPlayerMoney(playerid);
  129. if(IsPlayerInRangeOfAnyHaus(playerid))
  130. {
  131. new h = IsPlayerInRangeOfAnyHaus(playerid);
  132. if(!strcmp(Haus[h][Besitzer],"Niemand",true))
  133. {
  134. if(CurrMoney >= Haus[h][Kaufpreis])
  135. {
  136. new name[24];
  137. GetPlayerName(playerid,name,24);
  138. format(Haus[h][Besitzer],64,"%s",name);
  139. format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
  140. dini_Set(hstring,"Besitzer",name);
  141.  
  142. format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
  143. DestroyPickup(Haus[h][HausPickup]);
  144. Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
  145. Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
  146. return 1;
  147. }
  148. }
  149. }
  150. return 0;
  151. }
  152.  
  153. stock HausVerkaufen(playerid)
  154. {
  155. new h;
  156. for(;h!=MAX_HAUS;h++)
  157. if(Haus[h][Interior] != 0)
  158. {
  159. if(!strcmp(Haus[h][Besitzer],name,true))
  160. {
  161. format(unusedstring,64,"Dieses Haus ist zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
  162. DestroyPickup(Haus[h][HausPickup]);
  163. Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
  164. Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
  165.  
  166. format(Haus[h][Besitzer],64,"Niemand");
  167. return 1;
  168. }
  169. }
  170. return 0;
  171. }
  172.  
  173. stock IsPlayerInRangeOfAnyHaus(playerid)
  174. {
  175. new h;
  176. for(;h!=MAX_HAUS;h++)
  177. if(Haus[h][Interior] != 0)
  178. {
  179. if(IsPlayerInRangeOfPoint(playerid,2.5,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]))
  180. {
  181. return h;
  182. }
  183. }
  184. return -1;
  185. }
  186.  
  187. Mau5_OnPlayerSpawn(playerid)
  188. {
  189. new h,name[24];
  190. GetPlayerName(playerid,name,24);
  191. for(;h!=MAX_HAUS;h++)
  192. if(Haus[h][Interior] != 0)
  193. {
  194. if(!strcmp(Haus[h][Besitzer],name,true))
  195. {
  196. SetPlayerPos(playerid,Haus[h][InnenX],Haus[h][InnenY],Haus[h][InnenZ]);
  197. SetPlayerInterior(playerid,Haus[h][Interior]);
  198. return 1;
  199. }
  200. }
  201. return 0;
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement