Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //===========================================================================================================================//
- //===========================================================================================================================//
- //=====================================================[ DexyGame RP/DM Gamemode ]===========================================//
- //=========================================================[ Version: 0.0.1 ]================================================//
- //===========================================================================================================================//
- //===========================================================================================================================//
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //============================================================================//
- // Gamemode Informations //
- //============================================================================//
- //
- //============================================================================//
- // Notes //
- //============================================================================//
- /*
- Video 1:
- --------
- Dobrodosli u jos jedan DexyGame tutorial, u kojemu zapocinjemo novi gamemod, a
- u ovome videu slozit cemo potrebne include, boje te informacije o serveru kao
- sto su ime, gravitacija, website, itd.
- Sve download fileove od includa mozete pronaci u opisu videa. ( i ovaj .pwn file)
- A sad krenimo na dodavanje includa, a koristiti cemo zcmd, sscanf2 te YSI!
- Sada idemo definirati ime i ostale informacije servera, sada idemo definirati
- osnovne boje koje cemo koristiti. Jedne koristimo za server poruke a jedne za
- dialoge
- Video 2:
- --------
- Dobrodosli u jos jedan DexyGame tutorial, u ovom cemo se pozabaciti sa account
- systemom. Prvobitni plan mi je bio koristiti YSI ali ipak sam se odlucio za
- MySQL, tako da cemo u ovom videu zamjeniti include. A nakon toga povezati server
- sa databazom te napraviti enum da mozemo sacuvat variable, a enum koristim jer
- je brzi od PVarova iako trosi vise memorije.
- Download linkove mozete pronaci u opisu videa.
- Znaci krecemo sa spajanjem databaze sa serverom, spojili smo databazu sa serverom
- a sada cemo napraviti par potrebnih enuma. Sada cemo krenuti sa stockovima za
- load/save, rijesili smo stockove, sada mozemo prikazati igracima dialog i pustit
- im da se logiraju/registriraju sada cemo napraviti ondialogresponse za dialoge.
- Video 3:
- --------
- */
- //============================================================================//
- // Includes //
- //============================================================================//
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- //============================================================================//
- // Forwards //
- //============================================================================//
- //
- //============================================================================//
- // Defines //
- //============================================================================//
- #define SERVER_NAME "[0.3.7] Balkan Exit RolePlay |Script test|"
- #define SERVER_TIME "12:00"
- #define SERVER_GRAVITY "0.00800"
- #define SERVER_MAP "[BE:RP] v1.0"
- #define SERVER_WEATHER "2"
- #define SERVER_WEBSITE "www.balkanexit.net"
- //============================================================================//
- #define DATABASE_HOST "localhost"
- #define DATABASE_USER "root"
- #define DATABASE_PASS ""
- #define DATABASE_DB "DGDatabase"
- //============================================================================//
- #define Red "{FF0000}"
- #define Orange "{FF6600}"
- #define Blue "{0066FF}"
- #define Green "{009900}"
- #define Yellow "{FFFF00}"
- #define White "{FFFFFF}"
- #define Purple "{FF0066}"
- #define Red1 0xFF0000FF
- #define Orange1 0xFF6600FF
- #define Blue1 0x0066FFFF
- #define Green1 0x009900FF
- #define Yellow1 0xFFFF00FF
- #define White1 0xFFFFFFFF
- #define Purple1 0xFF0066FF
- //============================================================================//
- #define DIALOG_LOGIN 1
- #define DIALOG_REGISTER 2
- //============================================================================//
- // News //
- //============================================================================//
- enum pInfo {
- pScore,
- pMoney,
- pAdmin
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new Logged[MAX_PLAYERS];
- //============================================================================//
- // Main //
- //============================================================================//
- main()
- {
- print("\nGamemode Informations");
- print("-----------------------");
- print("Balkan Exit - By: Jovic");
- print(" www.balkanexit.net\n\n");
- print("Loading Gamemode");
- print("----------------");
- }
- //============================================================================//
- // Publics //
- //============================================================================//
- public OnGameModeInit()
- {
- //========================================================================//
- // Server Informations //
- //========================================================================//
- new stuff[64];
- format(stuff, sizeof(stuff), "hostname %s", SERVER_NAME);
- SendRconCommand(stuff);
- format(stuff, sizeof(stuff), "mapname %s", SERVER_MAP);
- SendRconCommand(stuff);
- format(stuff, sizeof(stuff), "weather %s", SERVER_WEATHER);
- SendRconCommand(stuff);
- format(stuff, sizeof(stuff), "weburl %s", SERVER_WEBSITE);
- SendRconCommand(stuff);
- format(stuff, sizeof(stuff), "worldtime %s", SERVER_TIME);
- SendRconCommand(stuff);
- SetGameModeText("[BE:RP] V1.0");
- //========================================================================//
- // MySQL Part //
- //========================================================================//
- new mysql = mysql_connect( DATABASE_HOST, DATABASE_USER, DATABASE_DB, DATABASE_PASS );
- mysql_debug(1);
- if(mysql_ping(mysql)) print ("Povezivanje sa databazom USPIJESNO!");
- if(!mysql_ping(mysql)) print ("Povezivanje sa databazom NEUSPIJESNO!");
- 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;
- }
- public OnPlayerConnect(playerid)
- {
- Logged[playerid] = 0;
- new Query[125], FinalName[24];
- mysql_real_escape_string(PlayerName(playerid), FinalName);
- format(Query, sizeof(Query), "SELECT * FROM `Users` WHERE `Username` = '%s'", FinalName);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Unesite lozinku da se logirate", "U redu", "Cancel");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija", "Unesite lozinku za reigstraciju", "U redu", "Cancel");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SaveAccount(playerid);
- 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[])
- {
- 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_LOGIN)
- {
- if(response)
- {
- new Query[125], FinalName[24];
- mysql_real_escape_string(PlayerName(playerid), FinalName);
- format(Query, sizeof(Query), "SELECT * FROM `Users` WHERE `Username` = '%s' AND `Password` = '%s'", FinalName, inputtext);
- mysql_query(Query);
- mysql_store_result();
- if(!mysql_num_rows())
- {
- SendClientMessage(playerid, Orange1, "Lozinka netocna, pokusajte ponovo!");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Unesite lozinku da se ulogirate", "U redu", "Cancel");
- }
- else
- {
- LoadAccount(playerid);
- Logged[playerid] = 1;
- SpawnPlayer(playerid);
- }
- }
- else
- {
- Kick(playerid);
- }
- }
- if(dialogid == DIALOG_REGISTER)
- {
- if(response)
- {
- new Query[200], FinalName[24];
- mysql_real_escape_string(PlayerName(playerid), FinalName);
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid, Orange1, "Morate unijeti lozinku za registraciju!");
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija", "Unesite lozinku za reigstraciju", "U redu", "Cancel");
- }
- else if(strlen(inputtext) <=3 || strlen(inputtext) > 30)
- {
- SendClientMessage(playerid, Orange1, "Lozinka mora imati najmanje 4 znamenke a najvise 30!");
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registracija", "Unesite lozinku za reigstraciju", "U redu", "Cancel");
- }
- format(Query, sizeof(Query), "INSERT INTO `Users` (`Username`, `Password`, `Score`, `Money`, `Admin`) VALUES ('%s', '%s', '1', '5000', '0')", FinalName, inputtext);
- mysql_query(Query);
- PlayerInfo[playerid][pAdmin] = 0;
- GivePlayerMoney(playerid, 5000);
- SetPlayerScore(playerid, 1);
- SpawnPlayer(playerid);
- }
- else
- {
- Kick(playerid);
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- //============================================================================//
- // Commands //
- //============================================================================//
- //
- //============================================================================//
- // Stocks //
- //============================================================================//
- stock PlayerName(playerid)
- {
- new name[24];
- GetPlayerName(playerid, name, 24);
- return name;
- }
- stock SaveAccount(playerid)
- {
- if(Logged[playerid] == 1)
- {
- PlayerInfo[playerid][pScore] = GetPlayerScore(playerid);
- PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid);
- new Query[1024], FinalName[24];
- mysql_real_escape_string(PlayerName(playerid), FinalName);
- format(Query, sizeof(Query), "UPDATE `Users` SET `Score` = '%d', `Money` = '%d', `Admin` = '%d' WHERE `Username` = '%s'", PlayerInfo[playerid][pScore], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pAdmin], FinalName);
- mysql_query(Query);
- }
- }
- stock LoadAccount(playerid)
- {
- new Query[125], FinalName[24];
- mysql_real_escape_string(PlayerName(playerid), FinalName);
- format(Query, sizeof(Query), "SELECT * FROM `Users` WHERE `Username` = '%s'", FinalName);
- mysql_query(Query);
- mysql_store_result();
- if(mysql_retrieve_row())
- {
- new GetString[50];
- mysql_fetch_field_row(GetString,"Score"); PlayerInfo[playerid][pScore] = strval(GetString);
- mysql_fetch_field_row(GetString,"Money"); PlayerInfo[playerid][pMoney] = strval(GetString);
- mysql_fetch_field_row(GetString,"Admin"); PlayerInfo[playerid][pAdmin] = strval(GetString);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
- SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement