Advertisement
Guest User

Bug systeme de maison

a guest
Jun 13th, 2012
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.86 KB | None | 0 0
  1. #include <a_samp>
  2. #include <SII>
  3. #include <sscanf2>
  4. #include <zcmd>
  5.  
  6. enum Maison
  7. {
  8. Float:MEntrerX,
  9. Float:MEntrerY,
  10. Float:MEntrerZ,
  11. Float:MSortieX,
  12. Float:MSortieY,
  13. Float:MSortieZ,
  14. MPorte,
  15. MProprio[MAX_PLAYER_NAME],
  16. MPrix,
  17. MInt,
  18. MWorld,
  19. MAcheter,
  20. MPickup
  21. }
  22. new InfosMaison[50][Maison];
  23.  
  24.  
  25. //Maison
  26. new Maison_Creer;
  27. new Text3D:MText[50];
  28.  
  29. public OnGameModeInit()
  30. {
  31. ChargeMaison();
  32. SetGameModeText("Blank Script");
  33. return 1;
  34. }
  35.  
  36.  
  37. CMD:mcreer(playerid, params[])
  38. {
  39. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Rouge, "Vous devez être un admin pour utilisez cette commande!");
  40.  
  41. new Float:Pos[3], iPrix, string[148];
  42.  
  43. if(sscanf(params, "iiii", iPrix)) return SendClientMessage(playerid, -1, "Usage: /vcreer <Prix>");
  44.  
  45. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  46.  
  47. ++ Maison_Creer;
  48.  
  49. InfosMaison[Maison_Creer][MEntrerX] = Pos[0];
  50. InfosMaison[Maison_Creer][MEntrerY] = Pos[1];
  51. InfosMaison[Maison_Creer][MEntrerZ] = Pos[2];
  52. InfosMaison[Maison_Creer][MSortieX] = 244.411987;
  53. InfosMaison[Maison_Creer][MSortieY] = 305.032989;
  54. InfosMaison[Maison_Creer][MSortieZ] = 999.148437;
  55. InfosMaison[Maison_Creer][MPorte] = 1;
  56. strmid(InfosMaison[Maison_Creer][MProprio], "Personne", 0, 20, 20);
  57. InfosMaison[Maison_Creer][MPrix] = iPrix;
  58. InfosMaison[Maison_Creer][MInt] = 1;
  59. InfosMaison[Maison_Creer][MWorld] = Maison_Creer;
  60. InfosMaison[Maison_Creer][MAcheter] = 0;
  61. new vFile[15];
  62. format(vFile, sizeof(vFile), "Maison/%d.ini", Veh_Creer);
  63.  
  64. INI_Open(vFile);
  65.  
  66. INI_WriteFloat("MEntrerX", Pos[0]);
  67. INI_WriteFloat("MEntrerY", Pos[1]);
  68. INI_WriteFloat("MEntrerZ", Pos[2]);
  69. INI_WriteFloat("MSortieX", 244.411987);
  70. INI_WriteFloat("MSortieY", 305.032989);
  71. INI_WriteFloat("MSortieZ", 999.148437);
  72. INI_WriteInt("MPorte", 0);
  73. INI_WriteString("MProprio", "Etat");
  74. INI_WriteInt("MPrix", iPrix);
  75. INI_WriteInt("MWorld", Maison_Creer);
  76. INI_WriteInt("MAcheter", 0);
  77.  
  78. INI_Save();
  79. INI_Close();
  80.  
  81. format(string, sizeof(string), "[Maison a Vendre a %d livre]", InfosMaison[Maison_Creer][MPrix]);
  82. CreateObject(19470, InfosMaison[Maison_Creer][MEntrerX],InfosMaison[Maison_Creer][MEntrerY],InfosMaison[Maison_Creer][MEntrerZ], 0.0, 0.0, 0.0);
  83. InfosMaison[Maison_Creer][MPickup] = CreatePickup(1273, 2, InfosMaison[Maison_Creer][MEntrerX],InfosMaison[Maison_Creer][MEntrerY],InfosMaison[Maison_Creer][MEntrerZ], -1);
  84. MText[Maison_Creer] = Create3DTextLabel(string,0x00FF00FF, InfosMaison[Maison_Creer][MEntrerX],InfosMaison[Maison_Creer][MEntrerY],InfosMaison[Maison_Creer][MEntrerZ],40.0,0, 1);
  85.  
  86. EnregMaison(Maison_Creer);
  87.  
  88. format(string, sizeof(string), "Maison: Etat (MAISONID: %d) à été creer. Prix: %d livre", Maison_Creer, iPrix);
  89. SendClientMessage(playerid, Rouge, string);
  90. return 1;
  91. }
  92.  
  93. CMD:entrer(playerid, params[])
  94. {
  95. if(IsPlayerConnected(playerid))
  96. {
  97. for(new maisonid = 0; maisonid < sizeof(InfosMaison); maisonid++)
  98. {
  99. if(InfosJoueur[playerid][DansMaison] == -1)
  100. {
  101. if(IsPlayerInRangeOfPoint(playerid, 5 ,InfosMaison[maisonid][MEntrerX], InfosMaison[maisonid][MEntrerY], InfosMaison[maisonid][MEntrerZ]))
  102. {
  103. SetPlayerInterior(playerid,InfosMaison[maisonid][MInt]);
  104. SetPlayerVirtualWorld(playerid,InfosMaison[maisonid][MWorld]);
  105. SetPlayerPos(playerid,InfosMaison[maisonid][MSortieX],InfosMaison[maisonid][MSortieY],InfosMaison[maisonid][MSortieZ]);
  106. InfosJoueur[playerid][DansMaison] = maisonid;
  107. }
  108. }
  109. }
  110. }
  111. return 1;
  112. }
  113.  
  114. CMD:sortir(playerid, params[])
  115. {
  116. if(InfosJoueur[playerid][DansMaison] != -1)
  117. {
  118. for(new maisonid = 0; maisonid < sizeof(InfosMaison); maisonid++)
  119. {
  120. if(IsPlayerInRangeOfPoint(playerid, 5, InfosMaison[maisonid][MSortieX], InfosMaison[maisonid][MSortieY], InfosMaison[maisonid][MSortieZ]))
  121. {
  122. SetPlayerInterior(playerid,0);
  123. SetPlayerVirtualWorld(playerid,0);
  124. SetPlayerPos(playerid,InfosMaison[maisonid][MEntrerX],InfosMaison[maisonid][MEntrerY],InfosMaison[maisonid][MEntrerZ]);
  125. InfosJoueur[playerid][DansMaison] = -1;
  126. }
  127. }
  128. }
  129. return 1;
  130. }
  131.  
  132.  
  133.  
  134.  
  135. stock EnregMaison(mid)
  136. {
  137. new iStr[15];
  138.  
  139. format(iStr, sizeof(iStr), "Maison/%d.ini", mid);
  140. if(INI_Open(iStr))
  141. {
  142. INI_WriteFloat("MEntrerX", InfosMaison[mid][MEntrerX]);
  143. INI_WriteFloat("MEntrerY", InfosMaison[mid][MEntrerY]);
  144. INI_WriteFloat("MEntrerZ", InfosMaison[mid][MEntrerZ]);
  145. INI_WriteFloat("MSortieX", InfosMaison[mid][MSortieX]);
  146. INI_WriteFloat("MSortieY", InfosMaison[mid][MSortieY]);
  147. INI_WriteFloat("MSortieZ", InfosMaison[mid][MSortieZ]);
  148. INI_WriteInt("MPorte", InfosMaison[mid][MPorte]);
  149. INI_WriteString("MProprio", InfosMaison[mid][MProprio]);
  150. INI_WriteInt("MPrix", InfosMaison[mid][MPrix]);
  151. INI_WriteInt("MWorld", InfosMaison[mid][MWorld]);
  152. INI_WriteInt("MAcheter", InfosMaison[mid][MAcheter]);
  153. INI_WriteInt("MPickup", InfosMaison[mid][MPickup]);
  154.  
  155. INI_Save();
  156. INI_Close();
  157. }
  158. return 1;
  159. }
  160.  
  161. stock ChargeMaison()
  162. {
  163. for(new i = 0; i < sizeof(InfosMaison); i++)
  164. {
  165. new vFile[15],string[258];
  166.  
  167. format(vFile, sizeof(vFile), "Maison/%d.ini", i);
  168.  
  169. if(INI_Exist(vFile))
  170. {
  171. INI_Open(vFile);
  172.  
  173. InfosMaison[i][MEntrerX] = INI_ReadInt("MEntrerX");
  174. InfosMaison[i][MEntrerY] = INI_ReadInt("MEntrerY");
  175. InfosMaison[i][MEntrerZ] = INI_ReadInt("MEntrerZ");
  176. InfosMaison[i][MSortieX] = INI_ReadInt("MSortieX");
  177. InfosMaison[i][MSortieY] = INI_ReadFloat("MSortieY");
  178. InfosMaison[i][MSortieZ] = INI_ReadFloat("MSortieZ");
  179. InfosMaison[i][MPorte] = INI_ReadInt("MPorte");
  180. INI_ReadString(InfosMaison[i][MProprio], "MProprio", 24);
  181. InfosMaison[i][MPrix] = INI_ReadInt("MPrix");
  182. InfosMaison[i][MWorld] = INI_ReadInt("MWorld");
  183. InfosMaison[i][MAcheter] = INI_ReadInt("MAcheter");
  184. InfosMaison[i][MPickup] = INI_ReadInt("MPickup");
  185. if(InfosMaison[i][MAcheter] == 0)
  186. {
  187. format(string, sizeof(string), "[Maison a Vendre a %d livre]", InfosMaison[i][MPrix]);
  188. CreateObject(19470, InfosMaison[i][MEntrerX],InfosMaison[i][MEntrerY],InfosMaison[i][MEntrerZ], 0.0, 0.0, 0.0);
  189. InfosMaison[i][MPickup] = CreatePickup(1273, 2, InfosMaison[i][MEntrerX],InfosMaison[i][MEntrerY],InfosMaison[i][MEntrerZ], -1);
  190. MText[i] = Create3DTextLabel(string,0x00FF00FF, InfosMaison[i][MEntrerX],InfosMaison[i][MEntrerY],InfosMaison[i][MEntrerZ],40.0,0, 1);
  191. }
  192. else if(InfosMaison[i][MAcheter] == 1)
  193. {
  194. InfosMaison[i][MPickup] = CreatePickup(1318, 2, InfosMaison[i][MEntrerX],InfosMaison[i][MEntrerY],InfosMaison[i][MEntrerZ], -1);
  195. format(string, sizeof(string), "[Maison] Propriétaire : %s", InfosMaison[i][MProprio]);
  196. MText[i] = Create3DTextLabel(string,0x00FF00FF, InfosMaison[i][MEntrerX],InfosMaison[i][MEntrerY],InfosMaison[i][MEntrerZ],40.0,0, 1);
  197. }
  198. ++ Maison_Creer;
  199.  
  200. INI_Close();
  201. }
  202. }
  203.  
  204. return 1;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement