Advertisement
Guest User

Haussystem von Vincent Petritz

a guest
Apr 13th, 2012
490
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 16.76 KB | None | 0 0
  1. /*
  2.     Vincent Petritz, 13.04.2012
  3.    
  4.     Danke an:
  5.         - Maddin (für die in deinem Tutorial stehenden Funktionen)
  6.         - Kleiner Opa (für OCMD)
  7.         - G-Stylezzz (für das MySQL Plugin)
  8.         - Y_Less (für sscanf2)
  9.  
  10. */
  11.  
  12. #include <a_samp>
  13. #include <ocmd>
  14. #include <sscanf2>
  15. #include <a_mysql>
  16.  
  17. #define Host                "127.0.0.1"
  18. #define Benutzer            "root"
  19. #define Datenbank           "samp"
  20. #define Passwort            ""
  21.  
  22. #define MinHausPreis        1 // Minimaler Hauspreis den ein Haus haben kann
  23. #define MaxHausPreis        99999 // Maximaler Hauspreis den ein Haus haben kann
  24. #define MinHausZimmer       1 // Minimale Zimmer pro Haus
  25. #define MaxHausZimmer       50 // Maximale Zimmer pro Haus
  26. #define MinHausBeschreibung 5 // Mindestlaenge der Hausbeschreibung
  27. #define MaxHausBeschreibung 50 // Maximallaenge der Hausbeschreibung
  28. #define MinHausLevel        7 // Mindestlevel für jenes Haus
  29. #define MaxHausLevel        99 // Maximallevel für jenes Haus
  30. #define MaxHaus             2 // Maximale Häuser, man sollte hier nicht übertreiben!
  31. #define MaxHausTextSehbar   50 // Haus-3DText-Sichtweite
  32. #define HausPickupModel     1272 // PickupModel (siehe: http://weedarr.wikidot.com/pickups)
  33.  
  34. #define Rot                 0xEB0000FF
  35. #define Grun                0x23FF00FF
  36. #define Weiss               0xF0FFFFFF
  37.  
  38. enum Hauser {
  39.     Float:hX, //Haus-X Koordinate
  40.     Float:hY, //Haus-Y Koordinate
  41.     Float:hZ, //Haus-Z Koordinate
  42.     hBesitzer[MAX_PLAYER_NAME], //Besitzer
  43.     hBeschreibung[MaxHausBeschreibung], //Beschreibung
  44.     hLevel, //Hauslevel
  45.     hZimmerA, //Aktuelle Zimmer
  46.     hZimmerM, //Maximale Zimmer
  47.     hPreis, //Hauspreis
  48.     hID, //HausID
  49.     hPickup, //HausPickup
  50.     Text3D:hText //Haus3D-Text
  51. };
  52.  
  53. new Haus[MaxHaus][Hauser], //Enum definiert
  54.     KriegtGeldHausSell = 0; // Kriegt der Spieler den Kaufpreis wieder, wenn er das Haus verkauft?
  55.  
  56. /*
  57.     Als erstes die stock's von Maddin's Tutoral, dann meine stock's & dann die CMD's. ;)
  58.                                                                                             */
  59.                                                                                            
  60. // ========================= Maddin stock's, danke Maddin. ;) =========================
  61. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  62. {
  63.     new query[128];
  64.     mysql_real_escape_string(Table, Table);
  65.     mysql_real_escape_string(Field, Field);
  66.     mysql_real_escape_string(Where, Where);
  67.     mysql_real_escape_string(Is, Is);
  68.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  69.     mysql_query(query);
  70.     mysql_store_result();
  71.     new sqlint = mysql_fetch_int();
  72.     mysql_free_result();
  73.     return sqlint;
  74. }
  75.  
  76. stock mysql_GetString(Table[], Field[], Where[], Is[])
  77. {
  78.     new query[128], Get[128];
  79.     mysql_real_escape_string(Table, Table);
  80.     mysql_real_escape_string(Field, Field);
  81.     mysql_real_escape_string(Where, Where);
  82.     mysql_real_escape_string(Is, Is);
  83.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  84.     mysql_query(query);
  85.     mysql_store_result();
  86.     mysql_fetch_row(Get);
  87.     mysql_free_result();
  88.     return Get;
  89. }
  90.  
  91. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  92. {
  93.     new query[128], Float:sqlfloat;
  94.     mysql_real_escape_string(Table, Table);
  95.     mysql_real_escape_string(Field, Field);
  96.     mysql_real_escape_string(Where, Where);
  97.     mysql_real_escape_string(Is, Is);
  98.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  99.     mysql_query(query);
  100.     mysql_store_result();
  101.     mysql_fetch_float(sqlfloat);
  102.     mysql_free_result();
  103.     return sqlfloat;
  104. }
  105.  
  106. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  107. {
  108.     new query[128];
  109.     mysql_real_escape_string(Table, Table);
  110.     mysql_real_escape_string(Field, Field);
  111.     mysql_real_escape_string(Where, Where);
  112.     mysql_real_escape_string(Where2, Where2);
  113.     format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  114.     mysql_query(query);
  115.     return true;
  116. }
  117.  
  118. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  119. {
  120.     new query[128];
  121.     mysql_real_escape_string(Table, Table);
  122.     mysql_real_escape_string(Field, Field);
  123.     mysql_real_escape_string(To, To);
  124.     mysql_real_escape_string(Where, Where);
  125.     mysql_real_escape_string(Where2, Where2);
  126.     format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  127.     mysql_query(query);
  128.     return true;
  129. }
  130.  
  131. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  132. {
  133.     new query[128];
  134.     mysql_real_escape_string(Table, Table);
  135.     mysql_real_escape_string(Field, Field);
  136.     mysql_real_escape_string(Where, Where);
  137.     mysql_real_escape_string(Where2, Where2);
  138.     format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  139.     mysql_query(query);
  140.     return true;
  141. }
  142.  
  143. // ========================= Vincent's stock's =========================
  144.  
  145. stock GetNearHausID(playerid)
  146. {
  147.     for(new hWhich; hWhich != MaxHaus; hWhich++)
  148.     {
  149.         if(IsPlayerInRangeOfPoint(playerid, 3.0, Haus[hWhich][hX], Haus[hWhich][hY], Haus[hWhich][hZ])) return hWhich;
  150.     }
  151.     return -1;
  152. }
  153.  
  154. stock LoadHouse(ID)
  155. {
  156.     new String[5],
  157.         Text[150];
  158.     format(String, sizeof(String), "%d", ID);
  159.     Haus[ID][hZimmerA] = mysql_GetInt("hauser", "Zimmer", "ID", String);
  160.     Haus[ID][hZimmerM] = mysql_GetInt("hauser", "ZimmerMax", "ID", String);
  161.     Haus[ID][hLevel] = mysql_GetInt("hauser", "Level", "ID", String);
  162.     Haus[ID][hPreis] = mysql_GetInt("hauser", "Preis", "ID", String);
  163.     Haus[ID][hX] = mysql_GetFloat("hauser", "HausX", "ID", String);
  164.     Haus[ID][hY] = mysql_GetFloat("hauser", "HausY", "ID", String);
  165.     Haus[ID][hZ] = mysql_GetFloat("hauser", "HausZ", "ID", String);
  166.     Haus[ID][hID] = mysql_GetInt("hauser", "ID", "ID", String);
  167.     format(Haus[ID][hBesitzer], MAX_PLAYER_NAME, mysql_GetString("hauser", "Besitzer", "ID", String));
  168.     format(Haus[ID][hBeschreibung], MaxHausBeschreibung, mysql_GetString("hauser", "Besitzer", "ID", String));
  169.     if(strlen(Haus[ID][hBesitzer]) < 2) { //Wenn die Länge des Hausbesitzers < 2 (sprich unter 2) ist, mache folgendes ...
  170.         format(Text, sizeof(Text), "Haus '%s' zu verkaufen!\nPreis: $%d\nLevel: %d\nZimmer: %d/%d", Haus[ID][hBeschreibung], Haus[ID][hPreis], Haus[ID][hLevel], Haus[ID][hZimmerA], Haus[ID][hZimmerM]); //definiere den String "Text" so
  171.     }
  172.     else { //wenn der aber länger ist, dann ...
  173.         format(Text, sizeof(Text), "Haus '%s'\nBesitzer: %s\nZimmer %d/%d", Haus[ID][hBeschreibung], Haus[ID][hBesitzer], Haus[ID][hZimmerA], Haus[ID][hZimmerM]); //definiere ihn so ...
  174.     }
  175.     Update3DTextLabelText(Haus[ID][hText], Weiss, Text); //ändere/update den TextLabel mit dem formatieren String
  176.     return 1;
  177. }
  178.  
  179. stock SaveHouse()
  180. {
  181.     for(new Haeuser; Haeuser < MaxHaus; Haeuser++) {
  182.         mysql_SetInt("hauser", "Zimmer", Haus[Haeuser][hZimmerA], "ID", Haus[Haeuser][hID]);
  183.         mysql_SetString("hauser", "Besitzer", Haus[Haeuser][hBesitzer], "ID", Haus[Haeuser][hID]);
  184.     }
  185.     return 1;
  186. }
  187.  
  188. stock GetName(playerid)
  189. {
  190.     new Name[MAX_PLAYER_NAME];
  191.     GetPlayerName(playerid, Name, sizeof(Name));
  192.     return Name;
  193. }
  194.  
  195. stock DestroyHouse(ID)
  196. {
  197.     DestroyPickup(Haus[ID][hPickup]);
  198.     Delete3DTextLabel(Haus[ID][hText]);
  199.     return 1;
  200. }
  201.  
  202. stock LoadHouses()
  203. {
  204.     new Schleife = 1,
  205.         String[5],
  206.         Text[150];
  207.     while(Schleife < MaxHaus) {
  208.         format(String, sizeof(String), "%d", Schleife);
  209.         Haus[Schleife][hZimmerA] = mysql_GetInt("hauser", "Zimmer", "ID", String);
  210.         Haus[Schleife][hZimmerM] = mysql_GetInt("hauser", "ZimmerMax", "ID", String);
  211.         Haus[Schleife][hLevel] = mysql_GetInt("hauser", "Level", "ID", String);
  212.         Haus[Schleife][hPreis] = mysql_GetInt("hauser", "Level", "ID", String);
  213.         Haus[Schleife][hX] = mysql_GetFloat("hauser", "HausX", "ID", String);
  214.         Haus[Schleife][hY] = mysql_GetFloat("hauser", "HausY", "ID", String);
  215.         Haus[Schleife][hZ] = mysql_GetFloat("hauser", "HausZ", "ID", String);
  216.         Haus[Schleife][hID] = mysql_GetInt("hauser", "ID", "ID", String);
  217.         format(Haus[Schleife][hBesitzer], MAX_PLAYER_NAME, mysql_GetString("hauser", "Besitzer", "ID", String));
  218.         format(Haus[Schleife][hBeschreibung], MaxHausBeschreibung, mysql_GetString("hauser", "Beschreibung", "ID", String));
  219.         if(strlen(Haus[Schleife][hBesitzer]) < 2) { // das gleiche wie oben ...
  220.             format(Text, sizeof(Text), "Haus '%s' zu verkaufen!\nPreis: $%d\nLevel: %d\nZimmer: %d/%d", Haus[Schleife][hBeschreibung], Haus[Schleife][hPreis], Haus[Schleife][hLevel], Haus[Schleife][hZimmerA], Haus[Schleife][hZimmerM]);
  221.         }
  222.         else {
  223.             format(Text, sizeof(Text), "Haus '%s'\nBesitzer: %s\nZimmer %d/%d", Haus[Schleife][hBeschreibung], Haus[Schleife][hBesitzer], Haus[Schleife][hZimmerA], Haus[Schleife][hZimmerM]);
  224.         }
  225.         Haus[Schleife][hText] = Create3DTextLabel(Text, Weiss, Haus[Schleife][hX], Haus[Schleife][hY], Haus[Schleife][hZ], MaxHausTextSehbar, 0);
  226.         Haus[Schleife][hPickup] = CreatePickup(HausPickupModel, 23, Haus[Schleife][hX], Haus[Schleife][hY], Haus[Schleife][hZ], -1);
  227.         Update3DTextLabelText(Haus[Schleife][hText], Weiss, Text);
  228.         Schleife++;
  229.     }
  230.     return 1;
  231. }
  232.  
  233. ocmd:hcreate(playerid, params[])
  234. {
  235.     new Preis,
  236.         Level,
  237.         Zimmeranzahl,
  238.         Beschreibung[MaxHausBeschreibung];
  239.     if(sscanf(params, "ddds[100]", Preis, Level, Zimmeranzahl, Beschreibung)) //siehe: http://easy-scripting.net/index.php?page=Thread&threadID=28
  240.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: /hcreate [Preis] [Level] [Zimmeranzahl] [Beschreibung (max. 50 Zeichen)]");
  241.     if(strlen(Beschreibung) < MinHausBeschreibung || strlen(Beschreibung) > MaxHausBeschreibung) //wenn die Zeichenlänge der Beschreibung zu tief bzw. zu hoch ist, dann ...
  242.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: Beschreibung zu kurz/lang!");//sende diese Nachricht
  243.     if(Preis < MinHausPreis || Preis > MaxHausPreis) //wenn der angegebene Preis zu hoch bzw. zu tief ist, dann ...
  244.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: Preis zu tief/hoch!"); //sende diese Nachricht
  245.     if(Zimmeranzahl < MinHausZimmer || Zimmeranzahl > MaxHausZimmer) //wenn die angegebene Zimmeranzahl zu hoch/tief ist ...
  246.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: Zimmer zu wenig/viel!"); //sende diese Nachricht
  247.     if(Level < MinHausLevel || Level > MaxHausLevel) // wenn das angegebene Hauslevel zu hoch bzw. zu tief ist ...
  248.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: Level zu tief/hoch!"); //sende diese Nachricht
  249.     if(IsPlayerAdmin(playerid)) { //wenn der Spieler ein RCON-Admin ist
  250.         new Float:x,
  251.             Float:y,
  252.             Float:z,
  253.             SQL[300];
  254.         GetPlayerPos(playerid, x, y, z); //gette die Position des Spielers
  255.         format(SQL, sizeof(SQL), "INSERT INTO hauser (Beschreibung, Preis, ZimmerMax, Level, HausX, HausY, HausZ) VALUES ('%s', '%d', '%d', '%d', '%f', '%f', '%f')", Beschreibung, Preis, Zimmeranzahl, Level, x, y, z);
  256.         mysql_query(SQL); //führe den mit "SQL" formatierten String aus
  257.         SendClientMessage(playerid, Rot, "Ein Haus wurde erstellt!"); //sende dann eine Nachricht
  258.         for(new Var; Var < MaxHaus; Var++) { //durchlaufe alle Häuser
  259.             DestroyHouse(Var); //zerstöre deren 3DText & Pickup
  260.         }
  261.         LoadHouses(); // und lade sie neu
  262.     }
  263.     return 1;
  264. }
  265.  
  266. // ========================= Vincent's Befehle =========================
  267.  
  268. /*ocmd:hrent(playerid, params[])
  269. {
  270.     #pragma unused params
  271.     new HausID = GetNearHausID(playerid);
  272.     if(Haus[HausID][hZimmerA] < Haus[HausID][hZimmerM]) {
  273.         mysql_SetInt("...", "SpielerInHaus", ..., "Name", ...);
  274.         Haus[HausID][hZimmerA]++;
  275.         SaveHouse();
  276.         LoadHouse(HausID);
  277.     }
  278.     return 1;
  279. }
  280.  
  281. ocmd:unrent(playerid, params[])
  282. {
  283.     #pragma unused params
  284.     new HausID = ...[playerid][Miethaus];
  285.     mysql_SetInt("...", "SpielerInHaus", ..., "Name", ...);
  286.     Haus[HausID][hZimmerA]--;
  287.     SaveHouse();
  288.     LoadHouse(HausID);
  289.     return 1;
  290. }
  291. */
  292.  
  293. ocmd:hdelete(playerid, params[])
  294. {
  295.     #pragma unused params
  296.     if(IsPlayerAdmin(playerid)) { //wenn der Spieler (playerid) ein RCON-Admin ist
  297.         new HausID = GetNearHausID(playerid), //gette die HausID des in der Nähe befindlichen Hauses
  298.             SQL[100];
  299.         DestroyPickup(Haus[HausID][hPickup]); //Zerstöre dessen Pickup
  300.         Delete3DTextLabel(Haus[HausID][hText]); // & 3D-Text
  301.         format(SQL, sizeof(SQL), "DELETE FROM hauser WHERE ID = '%d'", HausID);
  302.         mysql_query(SQL); //sende den mit SQL formatierten Query
  303.         SendClientMessage(playerid, Grun, "Ein Haus wurde gelöscht!"); //und sende dann diese Nachricht
  304.     }
  305.     return 1;
  306. }
  307.  
  308. ocmd:hbuy(playerid, params[])
  309. {
  310.     #pragma unused params
  311.     new HausID = GetNearHausID(playerid), //gette die HausID des in der Nähe befindlichen Hauses
  312.         Text[200],
  313.         SQL[200];
  314.     //wenn die HausID über 0 ist & die länge des Hausbesitzers unter 2 & der Spielerscore gleich oder höher dem gefordertem ist & der Spieler gleich oder mehr Geld hat, als das Haus kostet, dann ...
  315.     if(HausID > 0 && strlen(Haus[HausID][hBesitzer]) < 2 && GetPlayerScore(playerid) >= Haus[HausID][hLevel] && GetPlayerMoney(playerid) >= Haus[HausID][hPreis]) {
  316.         format(Haus[HausID][hBesitzer], MAX_PLAYER_NAME, GetName(playerid)); //setze den Namen des Spielers als Hausbesitzer
  317.         GivePlayerMoney(playerid, -Haus[HausID][hPreis]); //Ziehe dem Spieler das Geld ab
  318.         format(Text, sizeof(Text), "Haus '%s'\nBesitzer: %s\nZimmer %d/%d", Haus[HausID][hBeschreibung], Haus[HausID][hBesitzer], Haus[HausID][hZimmerA], Haus[HausID][hZimmerM]); //formatiere den Text-String
  319.         Update3DTextLabelText(Haus[HausID][hText], Weiss, Text);// und ändere ihn in den formatierten
  320.         format(SQL, sizeof(SQL), "UPDATE hauser SET Besitzer = '%s' WHERE ID = '%d'", Haus[HausID][hBesitzer], HausID);
  321.         mysql_query(SQL); //sende den mit SQL definierten & formatierten Query
  322.     }
  323.     else {
  324.         SendClientMessage(playerid, Rot, "Das Haus ist bereits vergeben/du hast zu wenig Geld/dein Level ist zu niedrig!");
  325.     }
  326.     return 1;
  327. }
  328.  
  329. ocmd:hedit(playerid, params[])
  330. {
  331.     new What[50],
  332.         HowMuch,
  333.         HausID = GetNearHausID(playerid),
  334.         Text[200];
  335.     if(sscanf(params, "s[50]d", What, HowMuch)) // siehe: http://easy-scripting.net/index.php?page=Thread&threadID=28
  336.         return SendClientMessage(playerid, Rot, "Falsche Benutzung: /hedit [Preis/Zimmerzahl/Level] [Neu]");
  337.     if(IsPlayerAdmin(playerid)) { //wenn der Spieler ein RCON-Admin ist
  338.         if(!strcmp(What, "Preis", true)) { //und der Spieler auf den Parameter "What" "Preis" eingegeben hat
  339.             Haus[HausID][hPreis] = HowMuch; // ändere den Preis in den 3. Parameter (HowMuch)
  340.         }
  341.         if(!strcmp(What, "Zimmerzahl", true)) { // das gleiche mit Zimmerzahl
  342.             Haus[HausID][hZimmerM] = HowMuch;
  343.         }
  344.         if(!strcmp(What, "Level", true)) { // das gleiche mit Level
  345.             Haus[HausID][hLevel] = HowMuch;
  346.         }
  347.         if(strlen(Haus[HausID][hBesitzer]) < 2) { //siehe oben
  348.             format(Text, sizeof(Text), "Haus '%s' zu verkaufen!\nPreis: $%d\nLevel: %d\nZimmer: %d/%d", Haus[HausID][hBeschreibung], Haus[HausID][hPreis], Haus[HausID][hLevel], Haus[HausID][hZimmerA], Haus[HausID][hZimmerM]);
  349.         }
  350.         else {
  351.             format(Text, sizeof(Text), "Haus '%s'\nBesitzer: %s\nZimmer %d/%d", Haus[HausID][hBeschreibung], Haus[HausID][hBesitzer], Haus[HausID][hZimmerA], Haus[HausID][hZimmerM]);
  352.         }
  353.         Update3DTextLabelText(Haus[HausID][hText], Weiss, Text);
  354.     }
  355.     return 1;
  356. }
  357.  
  358. ocmd:hsell(playerid, params[])
  359. {
  360.     #pragma unused params
  361.     new HausID = GetNearHausID(playerid), //gette die HausID des in der Nähe befindlichen Hauses
  362.         Text[200],
  363.         SQL[200];
  364.     if(!strcmp(Haus[HausID][hBesitzer], GetName(playerid), true)) { //wenn der eintragene Besitzer ganz genau der ist, der dem Namen des Spielers entspricht
  365.         format(Haus[HausID][hBesitzer], 0, ""); //setze den Hausbesitzer auf "nichts"
  366.         format(SQL, sizeof(SQL), "UPDATE hauser SET Besitzer = ' ' WHERE ID = '%d'", HausID);
  367.         mysql_query(SQL); // sende den SQL-formatierten Query
  368.         format(Text, sizeof(Text), "Haus '%s' zu verkaufen!\nPreis: $%d\nLevel: %d\nZimmer: %d/%d", Haus[HausID][hBeschreibung], Haus[HausID][hPreis], Haus[HausID][hLevel], Haus[HausID][hZimmerA], Haus[HausID][hZimmerM]);
  369.         Update3DTextLabelText(Haus[HausID][hText], Weiss, Text); //update den 3DText
  370.         if(KriegtGeldHausSell != 0) { //wenn "KriegtGeldHausSell" auf alles außer 0 steht, dann ...
  371.             GivePlayerMoney(playerid, Haus[HausID][hPreis]); //gib ihm den Kaufpreis zurück
  372.         }
  373.     }
  374.     return 1;
  375. }
  376.  
  377. // ========================= Wichtige Callbacks =========================
  378.  
  379. public OnFilterScriptInit()
  380. {
  381.     new Hausx;
  382.     mysql_debug(1);
  383.     print(" MySQL-Haussystem von Vincent Petritz (easy-scripting.net)");
  384.     mysql_connect(Host, Benutzer, Datenbank, Passwort);
  385.     print(" Verbindung hergestellt!");
  386.     while(Hausx < MaxHaus) {
  387.         LoadHouse(Hausx);
  388.         Hausx++;
  389.     }
  390.     return 1;
  391. }
  392.  
  393. public OnFilterScriptExit()
  394. {
  395.     new Hausy;
  396.     while(Hausy < MaxHaus) {
  397.         DestroyHouse(Hausy);
  398.         Hausy++;
  399.     }
  400.     return 1;
  401. }
  402.  
  403. public OnPlayerSpawn(playerid)
  404. {
  405.     /*
  406.     if(...[playerid][Miethaus] > 0) {
  407.         SetPlayerPos(playerid, Haus[Miethaus][hX]);
  408.         SetPlayerPos(playerid, Haus[Miethaus][hY]);
  409.         SetPlayerPos(playerid, Haus[Miethaus][hZ]);
  410.     }
  411.     */
  412.     return 1;
  413. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement