Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4860 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki.Žodžiu bėda tokia.Kaip ir pernai taip ir šiemet.Padariau viską pagal pamoką,viskas gerai error nėra.Bet bėda tame,kad nesaugo duomenų,duomenų bazėj irgi kaip ir viskas gerai.Tai net nelabai suprantu kame bėda juk nesaugo.

Dariau pagal švedo pamoką registracija-prisijungimas-gui-dialog-t919.html

Šiame forume mačiau irgi panaši yra.

Žodžiu pridedų kodą dar.Vistiek nieko gero jame nera tai galit žiurėt.

// This is a comment
// uncomment the line below if you want to write a filterscript
#include <a_samp>
#include <a_mysql>
//Pickup kintamieji
new pickupas,mypickup;
#pragma tabsize 0
//spalvos
#define GREY 0xAFAFAFAA
#define RED 0xFF0000AA
#define YELLOW 0xFFFF00AA
#define LIGHTBLUE 0x33CCFFAA
#define TEDDY 0x8A946BFF
//spalvu pabaiga
//---------------------------------------
#define MySQL_HOST "localhost"   //This will connect you to your local host
#define MySQL_USER "root"   //default phpMyAdmin username
#define MySQL_PASS ""   //default phpMyAdmin password is nothing, until you change it!
// -------> IMPORTANT LINE < -----------//
#define MySQL_DATA "apdm"
#define TABLENAME "vartotojai" // Kad nereiktų rašinėti kas kartą lentelės, pasidarome bindą. Čia įrašykite savo lentelės pavadinimą.
//colors // spalvos
#define SPALVA_ORANDZINE 0xff9b39ff // orandžinė spalva, naudojana visoje registracijoje.
// colors end // spalvų pabaiga
// Variables // Kintamieji
new bool:Logged[MAX_PLAYERS]; // sukuriame naują kintamajį, jis tikrins ar žaidėjas prisijungęs.
new PlayerMoney[MAX_PLAYERS]; // kintamasis kurį naudosime žaidėjo pinigams sureguliuoti.
// Variables end // Kintamūjų pabaiga
forward ConnectMySQL(); //
public ConnectMySQL()
{
  if(mysql_connect(MySQL_HOST,MySQL_USER,MySQL_DATA,MySQL_PASS)) // Jeigu nusiusti duomenys sugražino teigiamą rezultatą, reiškiamės prisijungėme.
  {
  mysql_debug(1); // // įjungiame debug, jis rašys visas įvykdytas bei neįvykdytas jungtis į txt failą kurį rasite serverio direktorijoje
  printf("[MYSQL]: Connection to `%s` succesful!",MySQL_DATA); // parašome konsolėje, kad jungtis pavyko.
  }
  else // įmanoma prisijungti tik vienu atvieju, todėl visi kiti neteisingi.
  {
  printf("[MYSQL]: [ERROR]: Connection to `%s` failed!",MySQL_DATA); // serverio konsolėje parašome, kad neprisijungėme.
  }
  return 1;
}
main()
{
  print("\n----------------------------------");
  print(" New Gamemode");
  print("----------------------------------\n");
}

public OnGameModeInit()
{
  // Don't use these lines if it's a filterscript
  DisableInteriorEnterExits();
   SetGameModeText("Blank Script");
  AddPlayerClass(0,-2194.2937,-2257.0632,30.6798,135.7799,0,0,0,0,0,0); // spawnas
  //pickupai
  pickupas = CreatePickup(1239,2,-2193.9854,-2268.6018,30.6250,-1);
  mypickup = CreatePickup(1239,2,-2196.1055,-2266.9407,30.6250,-1);
  //Automobiliai
  AddStaticVehicle(411,-2199.9351,-2271.7280,30.2712,231.6205,116,1); // car1
  mysql_debug( true );
  if( mysql_ping( ) >= 0 )
  {
  print( "Prisijungeme prie MySQL sekmingai!" );
  }
  else
  {
  SendRconCommand( "exit" );
  }
  mysql_connect( MySQL_HOST,MySQL_USER,MySQL_DATA,MySQL_PASS );
  return 1;
}
public OnGameModeExit()
{
   mysql_close( );
  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);
 if ( !Logged[ playerid ] ) // jeigu žaidėjas NE prisijungęs su savo duomenimis neleidžame jo į serverį, right ?
	 {
		 SendClientMessage(playerid,SPALVA_ORANDZINE,"Jūs neprisijungęs, todėl tęsti negalite."); // parašome klientui kas ne taip.
		 return 0; // neduodam nieko toliau daryti, laukiam kol prisijungs.
	 }
	 return 1;
}
public OnPlayerConnect(playerid)
{
  SendClientMessage(playerid,0xFFFF00AA,"Sveiki atvyke į Angel Pine");
 Logged[playerid] = false; // Nustatome neigiamą reikšmę Logged kintamajam, nes kai žaidėjas prisijungia į serverį, jis nebūna prisijungęs prie savo sąskaitos, right ?
 new string[128],pName[MAX_PLAYER_NAME+1],query[256]; // sukuriame kintamuosius, vardo atpažinimui, duomenims į mysql paduoti bei žinutei išreikšti.
 GetPlayerName(playerid,pName,sizeof pName); // įdedame į kintamajį dabartinį žaidėjo vardą, jį naudosime teisingai MYSQL eilutei surasti.
 MySQLCheck();// Atnaujiname MYSQL jungtį jeigu kartais serveris ją pamiršo.
 format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Vardas = '%s'",pName); // Sudedame apklausą kurią siūsime užklausai gauti visai informacijai apie žaidėją.
 mysql_query(query); // siunčiame užklausą kurią sūdėjome į query
 if(IsPlayerConnected(playerid)) // patikriname jeigu žaidėjas prisijunęs
  {
  GetPlayerName(playerid,pName,sizeof pName); // paimame dar kartą jo vardą.
  mysql_store_result(); // atsikeliame iš MYSQL gautą rezultatą
  if(mysql_num_rows() > 0) // Jeigu rado duomenis apie vartotoją reiškiasi jis užregistruotas. Duodame jam šansą prisijungti 
  {
  ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo sąskaitos prisijungimo slaptažodį:","Tęsti","Išeiti"); // parodome DIALOG langą, kad būtų kur suvesti sąskaitos slaptažodį, o gal naudojame komanda ? 
   format(string,sizeof(string),"Sąskaita su vardu - (%s) yra užregistruota. Prašome įvesti sąskaitos slaptažodį norėdami prisijungti.",pName); // formatuojame textą
  SendClientMessage(playerid,SPALVA_ORANDZINE,string); // parašome suformatuotą textą.
  }
  else // jeigu nerado nieko apie vartotoją reiškiasi jis neregistruotas, so we dump
  {
  ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Registracija","Registracijai įveskite slaptažodį kurį naudosite kas kartą prisijungiant prie sąskaitos","Tęsti","Išeiti"); // parodome DIALOGĄ kuriame užregistruos savo slaptažodį.
  format(string,sizeof(string),"Sveikas atvykęs %s, tu šiame serveryje neturi sąskaitos, įvesk slaptažodį norėdamas užregistruoti.",pName); // formatuojame žinutę, kad pasakyti žaidėjui apie neturimą sąskaitą ir reikalingą registraciją.
  SendClientMessage(playerid,SPALVA_ORANDZINE,string); // Siunčiame suformatuotą žinutę klientui kuris to prašo.
  }
  mysql_free_result(); // paleidžiame visus paimtus duomenis, kai reiks vėl pasiimsime.
  }
  return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new query[300],pName[MAX_PLAYER_NAME]; // kintamieji užklausoms bei vardui.
  GetPlayerName(playerid,pName,sizeof(pName)); // paimame žaidėjo vardą kuriam viską darysime.
  if ( Logged[ playerid ] ) // jeigu žaidėjas prisijungęs, tai yra jeigu jis suvędęs savo duomenis teisingai arba ką tik užsiregistravęs ir automatiškai prijungtas.
  {
  MySQLCheck(); // atnaujiname jungtį
  format(query,sizeof(query),"UPDATE `"TABLENAME"` SET `Pinigai`='%d' WHERE (`Vardas` = '%s')",GetPlayerMoney(playerid),pName); // išsaugome žaidėjo turimus pinigus į MYSQL duomenų bazę, kad kitą kartą atėjus jis gautu juos.
  mysql_query(query); // siunčiame užklausą duomenų bazei.
  }
  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("/tele", cmdtext, true, 10) == 0)
  {
  SetPlayerPos(playerid,2359.7004,555.3074,7.7802);
  return 1;
  }
   if(!strcmp(cmdtext, "/drabuziai", true))
  {
   ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Keičiame skin", "Įrašykite norimo Skin ID!", "Testi", "Atšaukti");
   return 1;
  }
  if (strcmp("/stadium", cmdtext, true, 10) == 0)
  {
  SetPlayerPos(playerid,1299.14,-794.77,1084.00);
  SetPlayerInterior(playerid, 5);
  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)
{
if(pickupid == pickupas)
{
   GivePlayerMoney(playerid, 1000000);
   SetPlayerHealth(playerid, 100);
   SetPlayerScore(playerid, 100);
   SendClientMessage(playerid,0xAFAFAFAA,"Sveiki atvike į naujaji GM");
}
if(pickupid == mypickup)
{
   SetPlayerArmour(playerid,100);
   GivePlayerWeapon(playerid,24,999);
}
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[])
{
   switch(dialogid)
{
   case 0: // Šiuo atveju - setskin dialogas
   {
   if(response)
  {
   new skinid;
 skinid = strval(inputtext);
  if (skinid < 0 || skinid > 299) { return SendClientMessage(playerid, -1, "[ERROR] Neteisingas skin ID! (0-299)"); }
   else
   {
   SetPlayerSkin(playerid, skinid);
   }
   }
   }
}
{
  if(dialogid == 1) // Jeigu dialogo id 1 tai yra jeigu jis nori registruotis.
  {
   if(response) // Jeigu įvedė slaptažodį ir spaudžia tęsti.
 {
  if(strlen(inputtext) < 6) // jeigu slaptažodis sudaro nemažiau 6 simbolių. Vykdome toliau
   {
 ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registracija","Registracijai įveskite slaptažodį kurį naudosite kas kartą prisijungiant prie sąskaitos","Tęsti","Išeiti"); // rodome vėl DIALOGĄ, kad galėtų pasitaisyti neteisingai įvestą  slaptažodį.
  return SendClientMessage(playerid,SPALVA_ORANDZINE,"Slaptažodis tūrėtų sūdaryti nemažiau 6 simbolių, tai jūsų sąskaitos saugumui."); // pranešame žaidėjui kuris suvedė neteisingai
  }
   new query[256], vardas[128]; // Stringai  , užklausai bei vardui.
   GetPlayerName(playerid,vardas,128); // įdedame į kintamajį žaidėjo vardą kurį naudosime atpažinimui.
 MySQLCheck(); // Prieš užklausą visada atnaujinome jungtį, kodėl neatnaujinti ir dabar? Gal užmiršo?
  format(query,sizeof(query),"INSERT INTO `"TABLENAME"` (Vardas,Slaptazodis) VALUES ('%s',md5('%s'))",vardas,inputtext); // vykdome užklausą kurioje suvesime norimus duomenis į MYSQL duom. Taip, pat naudojamės plugino funkcijomis ir užkoduojame slaptažodį - MD5
   mysql_query(query); // padarome užklausą.
   Logged[playerid] = true; // Nustatome, kad žaidėjas prisijungė automatiškai. // Žaidėjui sąskaitą sukurtą, padarome kintamajį true, kad serveris jį atpažintų kaip prisijungusį.
   SendClientMessage(playerid,SPALVA_ORANDZINE,"Užsiregistravote sėkmingai, jūs automatiškai prijungtas. Tęskite norint žaisti."); // Visą ką aš dabar pasakiau pranešame žaidėjui paprastaja kalba (neskriptinimo)  :D
   }
   else if(!response) // Jei žaidėjas paspaudė buttoną išeiti, tai metam jį iš serverio, right ?
   {
   Kick(playerid); // Išspiriame žaidėja, todėl kad nenorėjo registruotis.
   }
   return 1;
   }
  if(dialogid == 2) // Jeigu žaidėjas užregistruotas ir norėtų prisijungti prie savo sąskaitos rodome jam dialogą id-2
   {
 if(response) // jai paspaus tęsti.
  {
  new vardas[128], query[256]; // Kintamieji vardui bei užklausai.
   GetPlayerName(playerid, vardas, 128); // gaunam zaidejo pavadinimą ir įdedame į kintamajį vardas 
  if(IsPlayerConnected(playerid)) // jeigu žaidėjas prisijungęs
   {
 MySQLCheck(); // Atnaujiname jungtį, nes gali būti užmigusi.
  format(query,sizeof(query),"SELECT Pinigai FROM `"TABLENAME"` WHERE Vardas = '%s' AND Slaptazodis = md5('%s') LIMIT 1",vardas,inputtext); // Paimame žaidėjo pinigus, kad būtų ką jam atiduoti.
  mysql_query(query); // duodame užklausą, kad gražintų pinigus 
   mysql_store_result(); // Pasidedame gautą rezultatą, nes greit jį .

  if(mysql_num_rows() == 1)// jeigu yra atitikmenų iš užklausos
   {
 PlayerMoney[playerid] = mysql_fetch_int(); // įrašome, kiek jis tūrėjo pinigų į kintamajį.
  GivePlayerMoney(playerid,PlayerMoney[playerid]); // ir lygiai tiek pat atiduodame.
   SendClientMessage(playerid,SPALVA_ORANDZINE,"Tu sėkmingai prijungtas prie sąskaitos. Sėkmės žaidime!"); // Pranešame ataskaitą apie atiduotus pinigus.
   Logged[playerid] = true; // žaidėjo duomenis teisingi, duodame jam žaisti.
   mysql_free_result(); // nebereikia paimtų duomenų, todėl juos paleidžiame.
   }
   else // jeigu nerado nieko tokio iš duotosios užklausos, reišiasi jis nežino sąskaitos duomenų, arba netesingai įrašė.
   {
   mysql_free_result(); // paleidžiame duomenis, nes neteisingai parašė.
   ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Prisijungimas","Įveskite savo sąskaitos prisijungimo slaptažodį:","Tęsti","Išeiti"); // DUODAME dar šansą prisijungti, kad nereiktų jungtis į serverį iš naujo.
   return SendClientMessage(playerid,SPALVA_ORANDZINE,"Sąskaitos vartotojas neatpažintas, greičiausiai slaptažodis neatitiko."); // pranašame klientui kas blogai, kodėl neprijungia jo prie sąskaitos.
   }
   }
   else // kad išvengti "commands out of sync" klaidų naudojame šitą
   {
   mysql_store_result(); // kad išvengti "commands out of sync" klaidų naudojame šitą
   mysql_free_result(); // kad išvengti "commands out of sync" klaidų naudojame šitą
   }
  }
   else if(!response) // Jai paspaude išeiti, nenorėjo prisijungti.
 {
  Kick(playerid); // Spiriame lauk iš serverio, nenori prisijungti.
  return 1;
   }
   return 1;
   }
  }
  return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
  return 1;
}
MySQLCheck()// funkcija su kuria prikelsime jungtį.
{
  mysql_reconnect(); // perjungiame jungtį su MYSQL
   return 1;
}

Va po paskutinio prisijungimo mysql log'ai

[11:41:56] >> mysql_ping( Connection handle: 1 )

[11:41:56] >> mysql_ping() - Invalid connection handle. (You set: 1, Highest connection handle ID is 0).

[11:41:56] >> mysql_connect( )

[11:41:56] CMySQLHandler::CMySQLHandler() - constructor called.

[11:41:56] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "apdm" | Username: "root" ...

[11:41:56] CMySQLHandler::Connect() - Connection was successful.

[11:41:56] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[11:42:17] >> mysql_reconnect( Connection handle: 1 )

[11:42:17] CMySQLHandler::Disconnect() - Connection was closed.

[11:42:17] CMySQLHandler::Connect() - Connection was successful.

[11:42:17] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[11:42:17] >> mysql_query( Connection handle: 1 )

[11:42:17] CMySQLHandler::Query(SELECT * FROM `vartotojai` WHERE Vardas = 'Deandre_Jordan') - Successfully executed.

[11:42:17] >> mysql_store_result( Connection handle: 1 )

[11:42:17] CMySQLHandler::StoreResult() - Result was stored.

[11:42:17] >> mysql_num_rows( Connection handle: 1 )

[11:42:17] CMySQLHandler::NumRows() - Returned 0 row(s)

[11:42:17] >> mysql_free_result( Connection handle: 1 )

[11:42:17] CMySQLHandler::FreeResult() - Result was successfully free'd.

[11:42:47] >> mysql_reconnect( Connection handle: 1 )

[11:42:47] CMySQLHandler::Disconnect() - Connection was closed.

[11:42:47] CMySQLHandler::Connect() - Connection was successful.

[11:42:47] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[11:42:47] >> mysql_query( Connection handle: 1 )

[11:42:47] CMySQLHandler::Query(INSERT INTO `vartotojai` (Vardas,Slaptazodis) VALUES ('Deandre_Jordan',md5('nemezijus'))) - An error has occured. (Error ID: 1054, Unknown column 'Slaptazodis' in 'field list')

[11:42:56] >> mysql_reconnect( Connection handle: 1 )

[11:42:56] CMySQLHandler::Disconnect() - Connection was closed.

[11:42:56] CMySQLHandler::Connect() - Connection was successful.

[11:42:56] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[11:42:56] >> mysql_query( Connection handle: 1 )

[11:42:56] CMySQLHandler::Query(UPDATE `vartotojai` SET `Pinigai`='0' WHERE (`Vardas` = 'Deandre_Jordan')) - Successfully executed.

Čia vieną errora pastebėjau,gal ir daugiau yra klaidu

CMySQLHandler::Query(INSERT INTO `vartotojai` (Vardas,Slaptazodis) VALUES ('Deandre_Jordan',md5('nemezijus'))) - An error has occured. (Error ID: 1054, Unknown column 'Slaptazodis' in 'field list')

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4860 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...