pa2kelis

Untitled

Jan 15th, 2017
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.98 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. //Kad lengviau būtų atskirti lenteles, panaudosiu DEFINE jų ID.
  5. #define DIALOG_REGISTER 1
  6. #define DIALOG_LOGIN 2
  7. enum playerinfo { // Sukuriame enum.
  8. ORM:ORM_ID, // Tai ID kuriuo plugin atskirs kieno duomenis įrašinėti, todėl tai svarbu.
  9. SQL_ID,
  10. Name[MAX_PLAYER_NAME],
  11. Password[129],
  12. Pinigai,
  13. Xp,
  14. Darbas,
  15. AdminLvl,
  16. Float:SpawnX,
  17. Float:SpawnY,
  18. Float:SpawnZ,
  19. Float:Hp
  20. };
  21.  
  22. new pInfo[MAX_PLAYERS][playerinfo]; //Sukuriame dviejų dimensijų masyvą: pirma dimensija su dalimis kiekvienam žaidėjui, antra su "playerinfo" enum dalimis.
  23.  
  24. new DbHandle; // Kintamasis kad atskirtume mysql prisijungimus.
  25.  
  26. main()
  27. {
  28.     print("\n----------------------------------");
  29.     print(" Hard-Life.LT by Leninas");
  30.     print("----------------------------------\n");
  31. }
  32. public OnGameModeInit()
  33. {
  34.     mysql_log(LOG_ERROR | LOG_WARNING); // Logai visada padės ieškoti problemos!
  35.     DbHandle = mysql_connect("localhost","root","hardlife",""); // Formatas: DuombazėsIP,naudotojas,duomenų_bazė,slaptažodis
  36.     // Don't use these lines if it's a filterscript
  37.     SetGameModeText("Hard-Life V0");
  38.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  39.     return 1;
  40. }
  41.  
  42. public OnGameModeExit()
  43. {
  44.     return 1;
  45. }
  46.  
  47. public OnPlayerRequestClass(playerid, classid)
  48. {
  49.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  50.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  51.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  52.     return 1;
  53. }
  54.  
  55. new ORM:ORMID[MAX_PLAYERS];
  56.  
  57. public OnPlayerConnect(playerid)
  58. {
  59. GetPlayerName(playerid,pInfo[playerid][Name],24); // Gauname žaidėjo vardą, nestebuklas.
  60.  
  61. ORMID[playerid] = orm_create("zaidejai",DbHandle);
  62. //ORMID[playerid] = orm_create("zaidejai"); // Sukuriame ryšį su lentele "zaidejai". Kitaip tariant sukuriame ORM "instance".
  63. orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][SQL_ID],"SQL_ID"); //Pridedame integer tipo kintamajį "SQL_ID" prie duombazės lentelės stulpelio pavadinimu "SQL_ID"
  64. orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Name],24,"Name");// Pridedame string tipo "Name" prie duomenų bazės stulpelio "Name"
  65. orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Password],129,"Password");
  66. orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Pinigai],"Pinigai");
  67. orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Xp],"Xp");
  68. orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Darbas],"Darbas");
  69. orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][AdminLvl],"AdminLvl");
  70. orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnX],"SpawnX"); //Pridedame float tipo kintamąjį prie duomenų bazės stulpelio "SpawnX"
  71. orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnY],"SpawnY");
  72. orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnZ],"SpawnZ");
  73. orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][Hp],"Hp"); // Pridedame "float" tipo kintamajį
  74.  
  75. // Dabar jau galėtume siųsti įprastas užklausas į duomenų bazę...Bet jie dar nežinos į kieno eilutę įrašinėti duomenis
  76.  
  77. orm_setkey(pInfo[playerid][ORM_ID],"Name"); //Nurodome kad įašinėtų ten kur vardas bus lygus kintamajam "pInfo[playerid][Name]"
  78. orm_select(pInfo[playerid][ORM_ID],"OnPlayerCheck","d",playerid); // Išsiunčiame užklausą į duomenų bazę kuri parinks visus duomenis ir iškvies "OnPlayerCheck" funckiją su rezultatu
  79. return 1;
  80. }
  81. forward OnPlayerCheck(playerid);
  82. public OnPlayerCheck(playerid)
  83. {
  84. switch(orm_errno(pInfo[playerid][ORM_ID]))
  85. {
  86. //Jeigu nebuvo jokių klaidų siunčiant užklausą.
  87. case ERROR_OK: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
  88. //Jeigu gauta "nėra duomenų" klaida. Reiškia žaidėjo nėra duomenų bazėje.
  89. case ERROR_NO_DATA: ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
  90. }
  91. // Nurodome kad eilutes nuo dabar skirsime pagal "SQL_ID".
  92. orm_setkey(pInfo[playerid][ORM_ID],"SQL_ID");
  93. return 1;
  94. }
  95.  
  96. stock LoadStats(playerid)
  97. {
  98. orm_select(ORMID[playerid],"OnPlayerInfoLoad","i",playerid); // Nurodome kad būtų išsiųsta "select"(parenkamojo) tipo užklausa.
  99. //"OnPlayerInfoLoad" nurodome kokią funkciją iškviesti kai užklausa "grįš" su duomenimis
  100. //"i" nurodome kad pridėsime papildomą "integer" tipo parametrą
  101. // playerid tai ir yra papildomas parametras
  102. return 1;
  103. }
  104. forward OnPlayerInfoLoad(playerid);
  105. public OnPlayerInfoLoad(playerid)
  106. {
  107. if(orm_errno(ORMID[playerid]) == ERROR_OK)
  108. // funkcija "orm_errno" praneša kaip "sekėsi" užklausai ir turi dvi galimybes: "ERROR_OK" kas reiškia kad viskas buvo gerai, ir "ERROR_NO_DATA" kas reiškia jog nebuvo duomenų
  109. {
  110. //Duomenys jau užkrauti, mums nebėra ką daryti
  111. }
  112. return 1;
  113. }
  114.  
  115. stock SaveStats(playerid)
  116. {
  117. orm_update(ORMID[playerid]);
  118. return 1;
  119. }
  120.  
  121. public OnPlayerDisconnect(playerid, reason)
  122. {
  123.     return 1;
  124. }
  125.  
  126. public OnPlayerSpawn(playerid)
  127. {
  128.     return 1;
  129. }
  130.  
  131. public OnPlayerDeath(playerid, killerid, reason)
  132. {
  133.     return 1;
  134. }
  135.  
  136. public OnVehicleSpawn(vehicleid)
  137. {
  138.     return 1;
  139. }
  140.  
  141. public OnVehicleDeath(vehicleid, killerid)
  142. {
  143.     return 1;
  144. }
  145.  
  146. public OnPlayerText(playerid, text[])
  147. {
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerCommandText(playerid, cmdtext[])
  152. {
  153.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  154.     {
  155.         // Do something here
  156.         return 1;
  157.     }
  158.     return 0;
  159. }
  160.  
  161. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  162. {
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerExitVehicle(playerid, vehicleid)
  167. {
  168.     return 1;
  169. }
  170.  
  171. public OnPlayerStateChange(playerid, newstate, oldstate)
  172. {
  173.     return 1;
  174. }
  175.  
  176. public OnPlayerEnterCheckpoint(playerid)
  177. {
  178.     return 1;
  179. }
  180.  
  181. public OnPlayerLeaveCheckpoint(playerid)
  182. {
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerEnterRaceCheckpoint(playerid)
  187. {
  188.     return 1;
  189. }
  190.  
  191. public OnPlayerLeaveRaceCheckpoint(playerid)
  192. {
  193.     return 1;
  194. }
  195.  
  196. public OnRconCommand(cmd[])
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerRequestSpawn(playerid)
  202. {
  203.     return 1;
  204. }
  205.  
  206. public OnObjectMoved(objectid)
  207. {
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerObjectMoved(playerid, objectid)
  212. {
  213.     return 1;
  214. }
  215.  
  216. public OnPlayerPickUpPickup(playerid, pickupid)
  217. {
  218.     return 1;
  219. }
  220.  
  221. public OnVehicleMod(playerid, vehicleid, componentid)
  222. {
  223.     return 1;
  224. }
  225.  
  226. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  227. {
  228.     return 1;
  229. }
  230.  
  231. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  232. {
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerSelectedMenuRow(playerid, row)
  237. {
  238.     return 1;
  239. }
  240.  
  241. public OnPlayerExitedMenu(playerid)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  247. {
  248.     return 1;
  249. }
  250.  
  251. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  252. {
  253.     return 1;
  254. }
  255.  
  256. public OnRconLoginAttempt(ip[], password[], success)
  257. {
  258.     return 1;
  259. }
  260.  
  261. public OnPlayerUpdate(playerid)
  262. {
  263.     return 1;
  264. }
  265.  
  266. public OnPlayerStreamIn(playerid, forplayerid)
  267. {
  268.     return 1;
  269. }
  270.  
  271. public OnPlayerStreamOut(playerid, forplayerid)
  272. {
  273.     return 1;
  274. }
  275.  
  276. public OnVehicleStreamIn(vehicleid, forplayerid)
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnVehicleStreamOut(vehicleid, forplayerid)
  282. {
  283.     return 1;
  284. }
  285.  
  286. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
  287. {
  288. if(dialogid == DIALOG_REGISTER) // Jeigu tai regsitracijos lentelė
  289. {
  290. if(!response) return Kick(playerid); // Jeigu paspaudė "Išeiti", išmetame jį lauk.
  291. if(strlen(inputtext) < 6) // Jeigu įvesto slaptažodis trumpesnis už 6.
  292. {
  293. SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
  294. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
  295. return 1;
  296. }
  297. strins(pInfo[playerid][Password],inputtext,0); // Įrašom į kintamajį "pInfo[playerid][Password]" žaidėjo slaptažodį.
  298. orm_insert(pInfo[playerid][ORM_ID],"OnPlayerRegister","d",playerid); // Įrašome į lentelę naują eilutę skirta žaidėjui.
  299. return 1;
  300. }
  301. else if(dialogid == DIALOG_LOGIN) // Jeigu tai prisijungimo lentelė.
  302. {
  303. if(!response) return Kick(playerid); // Jeigu žaidėjas paspaudė "Išeiti" - išmetam.
  304. if(strlen(inputtext) < 6)
  305. {
  306. SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
  307. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
  308. return 1;
  309. }
  310. if(!strcmp(pInfo[playerid][Password],inputtext)) //Jeigu įvestas slaptažodis yra lygus įrašytam duomenų bazėje(jau užkrautas jis buvo, prisijungiant)
  311. {
  312. SendClientMessage(playerid,-1,"Sėkmingai prisijungėte, gero žaidimo!");
  313. return 1;
  314. }
  315. else SendClientMessage(playerid,-1,"Slaptažodis neteisingas");
  316. }
  317. return 0;
  318. }
  319. forward OnPlayerRegister(playerid);
  320. public OnPlayerRegister(playerid)
  321. {
  322. if(orm_errno(pInfo[playerid][ORM_ID]) == ERROR_OK) // Jeigu nebuvo klaidų siunčiant užklausą.
  323. {
  324. SendClientMessage(playerid,-1,"Registracija sėkminga! Gero žaidimo");
  325. }
  326. return 1;
  327. }
  328.  
  329. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  330. {
  331.     return 1;
  332. }
Advertisement
Add Comment
Please, Sign In to add comment