Guest User

Test Script

a guest
Jun 22nd, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.77 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sql>
  3. #include <ocmd>
  4.  
  5. #define MYSQL_HOST      "127.0.0.1"
  6. #define MYSQL_USER      "root"
  7. #define MYSQL_PASS      ""
  8. #define MYSQL_DB        "testgm"
  9.  
  10. #define IsPlayerConnected _IsPlayerConnected
  11.  
  12. #define DIALOG_REGISTER 1
  13. #define DIALOG_LOGIN 2
  14.  
  15. enum playerdata
  16. {
  17.     pMySQLID,
  18.     pName[MAX_PLAYER_NAME],
  19.     pPasswort[128],
  20.     pLevel,
  21.     pMoney,
  22.     pAntiCheatCar,
  23.     bool:pLoggedIn
  24. }
  25. enum cars
  26. {
  27.     cID,
  28.     cModel,
  29.     cColors[2],
  30.     Float:cPos[4],
  31.     bool:cErstellt
  32. }
  33. new Spieler[MAX_PLAYERS][playerdata], Cars[MAX_VEHICLES][cars];
  34. new SQL:shandle;
  35.  
  36. main()
  37. {
  38.     print("\n----------------------------------");
  39.     print(" Test Gamemode");
  40.     print("----------------------------------\n");
  41. }
  42.  
  43. public OnSQLError(SQL:handle, errorid, error[], query[], callback[])
  44. {
  45.     return 1;
  46. }
  47.  
  48. public OnGameModeInit()
  49. {
  50.     shandle = sql_connect(SQL_HANDLER_MYSQL, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB);
  51.     sql_debug();
  52.     CreateTables();
  53.     LoadCars();
  54.     SetGameModeText("Blank Script");
  55.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  56.     return 1;
  57. }
  58.  
  59. public OnGameModeExit()
  60. {
  61.     sql_disconnect(shandle);
  62.     return 1;
  63. }
  64.  
  65. public OnPlayerRequestClass(playerid, classid)
  66. {
  67.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  68.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  69.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  70.     return 1;
  71. }
  72.  
  73. public OnPlayerConnect(playerid)
  74. {
  75.     new string[256];
  76.     TogglePlayerSpectating(playerid, 1);
  77.     format(string, sizeof(string), "SELECT `ID` FROM `Accounts` WHERE `Name`='%s' LIMIT 1", SpielerName(playerid));
  78.     sql_query(shandle, string, QUERY_THREADED, "OnCheckAccount", "ri", playerid);
  79.     Check_s0beit(playerid);
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerDisconnect(playerid, reason)
  84. {
  85.     SavePlayer(playerid);
  86.     return 1;
  87. }
  88.  
  89. public OnPlayerSpawn(playerid)
  90. {
  91.     return 1;
  92. }
  93.  
  94. public OnPlayerDeath(playerid, killerid, reason)
  95. {
  96.     return 1;
  97. }
  98.  
  99. public OnVehicleSpawn(vehicleid)
  100. {
  101.     return 1;
  102. }
  103.  
  104. public OnVehicleDeath(vehicleid, killerid)
  105. {
  106.     return 1;
  107. }
  108.  
  109. public OnPlayerText(playerid, text[])
  110. {
  111.     return 1;
  112. }
  113.  
  114. public OnPlayerCommandText(playerid, cmdtext[])
  115. {
  116.     return SendClientMessage(playerid, -1, "[SERVER] Unbekannter Befehl.");
  117. }
  118.  
  119. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  120. {
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerExitVehicle(playerid, vehicleid)
  125. {
  126.     return 1;
  127. }
  128.  
  129. public OnPlayerStateChange(playerid, newstate, oldstate)
  130. {
  131.     return 1;
  132. }
  133.  
  134. public OnPlayerEnterCheckpoint(playerid)
  135. {
  136.     return 1;
  137. }
  138.  
  139. public OnPlayerLeaveCheckpoint(playerid)
  140. {
  141.     return 1;
  142. }
  143.  
  144. public OnPlayerEnterRaceCheckpoint(playerid)
  145. {
  146.     return 1;
  147. }
  148.  
  149. public OnPlayerLeaveRaceCheckpoint(playerid)
  150. {
  151.     return 1;
  152. }
  153.  
  154. public OnRconCommand(cmd[])
  155. {
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerRequestSpawn(playerid)
  160. {
  161.     return 1;
  162. }
  163.  
  164. public OnObjectMoved(objectid)
  165. {
  166.     return 1;
  167. }
  168.  
  169. public OnPlayerObjectMoved(playerid, objectid)
  170. {
  171.     return 1;
  172. }
  173.  
  174. public OnPlayerPickUpPickup(playerid, pickupid)
  175. {
  176.     return 1;
  177. }
  178.  
  179. public OnVehicleMod(playerid, vehicleid, componentid)
  180. {
  181.     return 1;
  182. }
  183.  
  184. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  185. {
  186.     return 1;
  187. }
  188.  
  189. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  190. {
  191.     return 1;
  192. }
  193.  
  194. public OnPlayerSelectedMenuRow(playerid, row)
  195. {
  196.     return 1;
  197. }
  198.  
  199. public OnPlayerExitedMenu(playerid)
  200. {
  201.     return 1;
  202. }
  203.  
  204. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  205. {
  206.     return 1;
  207. }
  208.  
  209. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  210. {
  211.     return 1;
  212. }
  213.  
  214. public OnRconLoginAttempt(ip[], password[], success)
  215. {
  216.     return 1;
  217. }
  218.  
  219. public OnPlayerUpdate(playerid)
  220. {
  221.     return 1;
  222. }
  223.  
  224. public OnPlayerStreamIn(playerid, forplayerid)
  225. {
  226.     return 1;
  227. }
  228.  
  229. public OnPlayerStreamOut(playerid, forplayerid)
  230. {
  231.     return 1;
  232. }
  233.  
  234. public OnVehicleStreamIn(vehicleid, forplayerid)
  235. {
  236.     return 1;
  237. }
  238.  
  239. public OnVehicleStreamOut(vehicleid, forplayerid)
  240. {
  241.     return 1;
  242. }
  243.  
  244. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  245. {
  246.     switch(dialogid)
  247.     {
  248.         case DIALOG_REGISTER:
  249.         {
  250.             if(response)
  251.             {
  252.                 if(!strlen(inputtext) || strlen(inputtext) > 128) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Test - Register", "Ungültiges Passwort! (1-128 Zeichen)\n\nRegistriere dich jetzt! \nGebe dein Passwort an.", "Bestätigen", "Abbrechen");
  253.                 new string[256];
  254.                 sql_escape_string(shandle, inputtext, string);
  255.                 format(string, sizeof(string), "INSERT INTO `Accounts` (`Name`, `Passwort`, `Level`, `Money`) VALUES ('%s', '%s', '1', '500');", SpielerName(playerid), string);
  256.                 sql_query(shandle, string, QUERY_THREADED, "OnPlayerRegistred", "ri", playerid);
  257.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Test - Login", "Logge dich jetzt ein! \nGebe dein Passwort ein.", "Bestätigen", "Abbrechen");
  258.             }
  259.             return 1;
  260.         }
  261.         case DIALOG_LOGIN:
  262.         {
  263.             if(response)
  264.             {
  265.                 if(!strlen(inputtext) || strlen(inputtext) > 128) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Test - Login", "Ungültiges Passwort! (1-128 Zeichen)\n\nLogge dich jetzt ein! \nGebe dein Passwort ein.", "Bestätigen", "Abbrechen");
  266.                 new string[256];
  267.                 sql_escape_string(shandle, inputtext, string);
  268.                 format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `ID`='%i' AND `Passwort`='%s' LIMIT 1", Spieler[playerid][pMySQLID], string);
  269.                 sql_query(shandle, string, QUERY_THREADED | QUERY_CACHED, "OnPlayerLoaded", "ri", playerid);
  270.                 Spieler[playerid][pLoggedIn] = true;
  271.                 SetSpawnInfo(playerid,0,0,1958.3783, 1343.1572, 15.3746,0,0,0,0,0,0,0);
  272.                 TogglePlayerSpectating(playerid, 0);
  273.             }
  274.             return 1;
  275.         }
  276.     }
  277.     return 1;
  278. }
  279.  
  280. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  281. {
  282.     return 1;
  283. }
  284.  
  285. /*forward BanEx(playerid);
  286. public BanEx(playerid)
  287. {
  288.     Ban(playerid);
  289.     return 1;
  290. }*/
  291. forward AntiCheatTest(playerid);
  292. public AntiCheatTest(playerid)
  293. {
  294.     if(GetPlayerMoney(playerid)==0)
  295.     {
  296.         DestroyVehicle(Spieler[playerid][pAntiCheatCar]);
  297.         GivePlayerMoney(playerid, Spieler[playerid][pMoney]);
  298.     }
  299.     else
  300.     {
  301.         DestroyVehicle(Spieler[playerid][pAntiCheatCar]);
  302.         //BanEx(playerid, "[SERVER] Du hast s0beit angeschaltet!");
  303.         return 1;
  304.     }
  305.     return 1;
  306. }
  307.  
  308. forward OnPlayerRegistred(Result:result, playerid);
  309. public OnPlayerRegistred(Result:result, playerid)
  310. {
  311.     Spieler[playerid][pMySQLID] = sql_insert_id(result);
  312.     sql_free_result(result);
  313.     return 1;
  314. }
  315.  
  316. forward OnPlayerLoaded(Result:result, playerid);
  317. public OnPlayerLoaded(Result:result, playerid)
  318. {
  319.     if(sql_num_rows(result))
  320.     {
  321.         sql_get_field(result, 1, Spieler[playerid][pName]);
  322.         sql_get_field(result, 2, Spieler[playerid][pPasswort]);
  323.         Spieler[playerid][pLevel] = sql_get_field_int(result, 3);
  324.         SetPlayerScore(playerid, Spieler[playerid][pLevel]);
  325.         Spieler[playerid][pMoney] = sql_get_field_int(result, 4);
  326.         SetPlayerMoney(playerid, Spieler[playerid][pMoney]);
  327.         printf("* %s geladen. *", SpielerName(playerid));
  328.     }
  329.     sql_free_result(result);
  330.     return 1;
  331. }
  332.  
  333. forward OnLoadCars(Result:result);
  334. public OnLoadCars(Result:result)//unvollständig
  335. {
  336.     new rows = sql_num_rows(result);
  337.     for(new i; i < rows; i++)
  338.     {
  339.         Cars[i][cID] = sql_get_field_int(result, 0);
  340.         Cars[i][cModel] = sql_get_field_int(result, 1);
  341.         Cars[i][cColors][0] = sql_get_field_int(result, 2);
  342.         Cars[i][cColors][1] = sql_get_field_int(result, 3);
  343.         Cars[i][cPos][0] = sql_get_field_float(result, 4);
  344.         Cars[i][cPos][1] = sql_get_field_float(result, 5);
  345.         Cars[i][cPos][2] = sql_get_field_float(result, 6);
  346.         Cars[i][cPos][3] = sql_get_field_float(result, 7);
  347.         Cars[i][cErstellt] = true;
  348.         sql_next_row(result);
  349.     }
  350.     printf("* %i Cars geladen *", rows);
  351.     sql_free_result(result);
  352.     return 1;
  353. }
  354.  
  355. forward OnCheckAccount(Result:result, playerid);
  356. public OnCheckAccount(Result:result, playerid)
  357. {
  358.     if(!sql_num_rows(result))
  359.     {
  360.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Test - Register", "Registriere dich jetzt! \nGebe dein Passwort an.", "Bestätigen", "Abbrechen");
  361.     }
  362.     else
  363.     {
  364.         Spieler[playerid][pMySQLID] = sql_get_field_int(result, 0);
  365.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Test - Login", "Logge dich jetzt ein! \nGebe dein Passwort ein.", "Bestätigen", "Abbrechen");
  366.     }
  367.     sql_free_result(result);
  368.     return 1;
  369. }
  370.  
  371. stock CreateTables()
  372. {
  373.     sql_free_result(sql_query(shandle, "CREATE TABLE IF NOT EXISTS `Accounts` (`ID` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `Name` VARCHAR(64) NOT NULL, `Passwort` VARCHAR(64) NOT NULL, \
  374.     `Level` INT NOT NULL, `Money` INT NOT NULL);\
  375.     CREATE TABLE IF NOT EXISTS `Cars` (`ID` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `Model` INT NOT NULL, `Color1` INT NOT NULL, `Color2` INT NOT NULL, `x` FLOAT NOT NULL, `y` FLOAT NOT NULL,\
  376.     `z` FLOAT NOT NULL, `rot` FLOAT NOT NULL);"\
  377.     , QUERY_NONE));
  378.     return 1;
  379. }
  380. stock SpielerName(playerid)
  381. {
  382.     new name[MAX_PLAYER_NAME];
  383.     GetPlayerName(playerid, name, sizeof(name));
  384.     return name;
  385. }
  386. stock Check_s0beit(playerid)
  387. {
  388.     ResetPlayerMoney(playerid), GivePlayerMoney(playerid, 100);
  389.     Spieler[playerid][pAntiCheatCar] = CreateVehicle(565, 487.4806,-1741.2936,10.7610, 0.0000, -1, -1, 100);
  390.     SetPlayerVirtualWorld(playerid,playerid+4214);
  391.     SetVehicleVirtualWorld(Spieler[playerid][pAntiCheatCar],playerid+4214);
  392.     SetVehicleHealth(Spieler[playerid][pAntiCheatCar],700);
  393.     PutPlayerInVehicle(playerid, Spieler[playerid][pAntiCheatCar], 0);
  394.     SetTimerEx("AntiCheatTest",4100,false,"i",playerid);
  395.     return 1;
  396. }
  397. stock SetPlayerMoney(playerid, money)
  398. {
  399.     ResetPlayerMoney(playerid);
  400.     GivePlayerMoney(playerid, money);
  401.     return 1;
  402. }
  403. stock GivePlayerMoneyEx(playerid, money)
  404. {
  405.     if(money < 0)
  406.         Spieler[playerid][pMoney] -= money;
  407.     else
  408.         Spieler[playerid][pMoney] += money;
  409.  
  410.     ResetPlayerMoney(playerid);
  411.     GivePlayerMoney(playerid, Spieler[playerid][pMoney]);
  412.     return 1;
  413. }
  414. stock SavePlayer(playerid)
  415. {
  416.     if(IsPlayerConnected(playerid))
  417.     {
  418.         new string[256];
  419.         format(string, sizeof(string), "UPDATE `Accounts` SET \
  420.         `Name`='%s', \
  421.         `Passwort`='%s', \
  422.         `Level`='%i', \
  423.         `Money`='%i' \
  424.         WHERE `ID`='%i'",
  425.         Spieler[playerid][pName], Spieler[playerid][pPasswort], Spieler[playerid][pLevel], Spieler[playerid][pMoney], Spieler[playerid][pMySQLID]);
  426.         sql_free_result(sql_query(shandle, string, QUERY_THREADED));
  427.         printf("* %s gespeichert. *", SpielerName(playerid));
  428.     }
  429.     return 1;
  430. }
  431. stock LoadCars()//Unvollständig
  432. {
  433.     sql_query(shandle, "SELECT * FROM `Cars`", QUERY_THREADED | QUERY_CACHED, "OnLoadCars", "r");
  434.     return 1;
  435. }
  436. stock _IsPlayerConnected(playerid)
  437. {
  438.     if(Spieler[playerid][pLoggedIn] == true) return 1;
  439.     return 0;
  440. }
  441. /*stock _ban(playerid)
  442. {
  443.     SetTimerEx("BanEx", 150, 0, "i", playerid);
  444.     return 1;
  445. }*/
Advertisement
Add Comment
Please, Sign In to add comment