Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- //Kad lengviau būtų atskirti lenteles, panaudosiu DEFINE jų ID.
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- enum playerinfo { // Sukuriame enum.
- ORM:ORM_ID, // Tai ID kuriuo plugin atskirs kieno duomenis įrašinėti, todėl tai svarbu.
- SQL_ID,
- Name[MAX_PLAYER_NAME],
- Password[129],
- Pinigai,
- Xp,
- Darbas,
- AdminLvl,
- Float:SpawnX,
- Float:SpawnY,
- Float:SpawnZ,
- Float:Hp
- };
- new pInfo[MAX_PLAYERS][playerinfo]; //Sukuriame dviejų dimensijų masyvą: pirma dimensija su dalimis kiekvienam žaidėjui, antra su "playerinfo" enum dalimis.
- new DbHandle; // Kintamasis kad atskirtume mysql prisijungimus.
- main()
- {
- print("\n----------------------------------");
- print(" Hard-Life.LT by Leninas");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- mysql_log(LOG_ERROR | LOG_WARNING); // Logai visada padės ieškoti problemos!
- DbHandle = mysql_connect("localhost","root","hardlife",""); // Formatas: DuombazėsIP,naudotojas,duomenų_bazė,slaptažodis
- // Don't use these lines if it's a filterscript
- SetGameModeText("Hard-Life V0");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- new ORM:ORMID[MAX_PLAYERS];
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid,pInfo[playerid][Name],24); // Gauname žaidėjo vardą, nestebuklas.
- ORMID[playerid] = orm_create("zaidejai",DbHandle);
- //ORMID[playerid] = orm_create("zaidejai"); // Sukuriame ryšį su lentele "zaidejai". Kitaip tariant sukuriame ORM "instance".
- 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"
- orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Name],24,"Name");// Pridedame string tipo "Name" prie duomenų bazės stulpelio "Name"
- orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Password],129,"Password");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Pinigai],"Pinigai");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Xp],"Xp");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Darbas],"Darbas");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][AdminLvl],"AdminLvl");
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnX],"SpawnX"); //Pridedame float tipo kintamąjį prie duomenų bazės stulpelio "SpawnX"
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnY],"SpawnY");
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnZ],"SpawnZ");
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][Hp],"Hp"); // Pridedame "float" tipo kintamajį
- // Dabar jau galėtume siųsti įprastas užklausas į duomenų bazę...Bet jie dar nežinos į kieno eilutę įrašinėti duomenis
- orm_setkey(pInfo[playerid][ORM_ID],"Name"); //Nurodome kad įašinėtų ten kur vardas bus lygus kintamajam "pInfo[playerid][Name]"
- 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
- return 1;
- }
- forward OnPlayerCheck(playerid);
- public OnPlayerCheck(playerid)
- {
- switch(orm_errno(pInfo[playerid][ORM_ID]))
- {
- //Jeigu nebuvo jokių klaidų siunčiant užklausą.
- case ERROR_OK: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
- //Jeigu gauta "nėra duomenų" klaida. Reiškia žaidėjo nėra duomenų bazėje.
- case ERROR_NO_DATA: ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
- }
- // Nurodome kad eilutes nuo dabar skirsime pagal "SQL_ID".
- orm_setkey(pInfo[playerid][ORM_ID],"SQL_ID");
- return 1;
- }
- stock LoadStats(playerid)
- {
- orm_select(ORMID[playerid],"OnPlayerInfoLoad","i",playerid); // Nurodome kad būtų išsiųsta "select"(parenkamojo) tipo užklausa.
- //"OnPlayerInfoLoad" nurodome kokią funkciją iškviesti kai užklausa "grįš" su duomenimis
- //"i" nurodome kad pridėsime papildomą "integer" tipo parametrą
- // playerid tai ir yra papildomas parametras
- return 1;
- }
- forward OnPlayerInfoLoad(playerid);
- public OnPlayerInfoLoad(playerid)
- {
- if(orm_errno(ORMID[playerid]) == ERROR_OK)
- // 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ų
- {
- //Duomenys jau užkrauti, mums nebėra ką daryti
- }
- return 1;
- }
- stock SaveStats(playerid)
- {
- orm_update(ORMID[playerid]);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- if(dialogid == DIALOG_REGISTER) // Jeigu tai regsitracijos lentelė
- {
- if(!response) return Kick(playerid); // Jeigu paspaudė "Išeiti", išmetame jį lauk.
- if(strlen(inputtext) < 6) // Jeigu įvesto slaptažodis trumpesnis už 6.
- {
- SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
- return 1;
- }
- strins(pInfo[playerid][Password],inputtext,0); // Įrašom į kintamajį "pInfo[playerid][Password]" žaidėjo slaptažodį.
- orm_insert(pInfo[playerid][ORM_ID],"OnPlayerRegister","d",playerid); // Įrašome į lentelę naują eilutę skirta žaidėjui.
- return 1;
- }
- else if(dialogid == DIALOG_LOGIN) // Jeigu tai prisijungimo lentelė.
- {
- if(!response) return Kick(playerid); // Jeigu žaidėjas paspaudė "Išeiti" - išmetam.
- if(strlen(inputtext) < 6)
- {
- SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
- return 1;
- }
- if(!strcmp(pInfo[playerid][Password],inputtext)) //Jeigu įvestas slaptažodis yra lygus įrašytam duomenų bazėje(jau užkrautas jis buvo, prisijungiant)
- {
- SendClientMessage(playerid,-1,"Sėkmingai prisijungėte, gero žaidimo!");
- return 1;
- }
- else SendClientMessage(playerid,-1,"Slaptažodis neteisingas");
- }
- return 0;
- }
- forward OnPlayerRegister(playerid);
- public OnPlayerRegister(playerid)
- {
- if(orm_errno(pInfo[playerid][ORM_ID]) == ERROR_OK) // Jeigu nebuvo klaidų siunčiant užklausą.
- {
- SendClientMessage(playerid,-1,"Registracija sėkminga! Gero žaidimo");
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment