Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ============================================================
- | easyGM by KarolisK |
- | Gamemode parašytas 2013.09.04 |
- ************************************************************
- | 2013 (c) Visos teises saugomos projektas.lt |
- ============================================================
- */
- /* ================| INCLUDES |================= */
- #include <a_samp>
- #include YSI\y_commands
- #include YSI\y_malloc
- #include YSI\y_inline
- #include YSI\y_dialog
- #include YSI\y_ini
- /* ================| DEFINES |================= */
- #define VERSIJA "0.1" // Serverio versija
- #define ZEMELAPIS "sanFierro" // Žemėlapio pavadinimas
- #define SLAPTAZODZIO_ILGUMAS (50) // Maksimalus slaptažodžio ilgis
- #define PRADINIAI_XP (1000) // Pradiniai patirties taškai duodami žaidėjui
- #define PRADINIAI_PINIGAI (10000) // Pradiniai pinigai duodami žaidėjui
- #define PRADINIS_SKIN (52) // Pradinis skin kuris bus duodamas žaidėjui
- #define Direktorija "Zaidejai/%s.ini" // Žaidėjų direktorija
- /* ================| KINTAMIEJI |================= */
- /* Žaidėjų duomenų enum */
- enum playerEnum{
- slaptazodis[ SLAPTAZODZIO_ILGUMAS ], // Slaptažodis
- patirtis, // Patirtis ( XP )
- pinigai, // Pinigai
- skin, // Skinas
- Float: pos_x, // Pozicija X
- Float: pos_y, // Pozicija Z
- Float: pos_z, // Pozicija Y
- Float: gyvybes, // Gyvybės
- Float: sarvai, // Šarvai
- bool: prisijunges, // Ar prisijunges
- bool: spawned, // Ar išsispawnino
- bool: naujokas, // Ar naujokas
- bool: mire // Ar mirė
- };
- /* Žaidėjų kintamieji */
- new
- pDB[ MAX_PLAYERS ][ playerEnum ], // Duomenys
- vardas[ MAX_PLAYER_NAME ] // Vardas
- ;
- /* Globalūs kintamieji */
- new
- gString[ 800 ],
- Float: pozicija[3]
- ;
- /* ================| FORWARDAI |================= */
- forward pakrauti_data(playerid, name[], value[]);
- forward saugojamZaideja(playerid);
- /* ================| MAIN BLOCK |================= */
- main()
- {
- printf( "Serverio versija %s ijungiama!", VERSIJA );
- }
- public OnGameModeInit()
- {
- SetGameModeText( VERSIJA );
- format( gString, 50, "mapname %s",ZEMELAPIS );
- SendRconCommand(gString);
- return 1;
- }
- public OnGameModeExit()
- {
- for( new p; p < MAX_PLAYERS; p++ )
- {
- saugojamZaideja( p );
- }
- 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)
- {
- if(fexist(failas(playerid))) // Patikriname ar žaidėjas registruotas, jeigu taip:
- {
- Prisijungimas( playerid ); // Parodom prisijungimą
- }
- else // Jeigu neregistruotas
- {
- Registracija( playerid ); // Parodom registraciją
- return 1;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- saugojamZaideja( playerid );
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- /* Jeigu žaidėjas kątik prisijungė */
- if( pDB[playerid][prisijunges] && !pDB[playerid][spawned] )
- {
- INI_ParseFile(failas(playerid),"pakrauti_%s",.bExtra = true, .extra = playerid);
- pDB[playerid][spawned]=true;
- }
- /* Jeigu žaidėjas naujokas */
- if( pDB[playerid][naujokas] && !pDB[playerid][spawned] )
- {
- SendClientMessage(playerid, -1, "Tu naujokas!");
- GivePlayerMoney( playerid, PRADINIAI_PINIGAI );
- SetPlayerScore( playerid, PRADINIAI_XP );
- }
- /* Jeigu žaidėjas mirė */
- if( pDB[playerid][mire] )
- {
- SendClientMessage(playerid, -1, "Tu mirei!");
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- pDB[playerid][mire] = true;
- 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[])
- {
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /* ================| KOMANDOS |================= */
- /* ================| PUBLIC |================= */
- public pakrauti_data(playerid, name[], value[])
- {
- INI_String("Slaptazodis", pDB[playerid][slaptazodis],SLAPTAZODZIO_ILGUMAS);
- INI_Float("Gyvybes",pDB[playerid][gyvybes]);
- INI_Float("Sarvai",pDB[playerid][sarvai]);
- INI_Int("Pinigai",pDB[playerid][pinigai]);
- INI_Int("Patirtis",pDB[playerid][patirtis]);
- INI_Int("Skin",pDB[playerid][skin]);
- INI_Float("pos_x",pozicija[0]);
- INI_Float("pos_y",pozicija[1]);
- INI_Float("pos_z",pozicija[2]);
- SetPlayerPos( playerid, pozicija[0],pozicija[1],pozicija[2] );
- SetPlayerHealth( playerid, pDB[playerid][gyvybes] );
- SetPlayerArmour( playerid, pDB[playerid][sarvai] );
- GivePlayerMoney( playerid, pDB[playerid][pinigai] );
- SetPlayerScore( playerid, pDB[playerid][patirtis] );
- SetPlayerSkin( playerid, pDB[playerid][skin] );
- printf("%s pakrautas", Vardas(playerid) );
- return 1;
- }
- public saugojamZaideja( playerid )
- {
- new tick, lastTick, finalTick;
- tick = GetTickCount();
- new INI:file = INI_Open(failas(playerid)); // Atidarom failą
- INI_SetTag(file,"Zaidejo duomenys"); // Nustatom tag'a 'zaidejo duomenys'
- /* Išgaunam tai ko reiks */
- GetPlayerHealth( playerid, pDB[playerid][gyvybes] );
- GetPlayerArmour( playerid, pDB[playerid][sarvai] );
- GetPlayerPos( playerid, pDB[playerid][pos_x], pDB[playerid][pos_y], pDB[playerid][pos_z] );
- /* Surašom viską į failus */
- INI_WriteFloat(file,"Gyvybes",pDB[playerid][gyvybes]);
- INI_WriteFloat(file,"Sarvai",pDB[playerid][sarvai]);
- INI_WriteInt(file,"Pinigai",GetPlayerMoney(playerid));
- INI_WriteInt(file,"Patirtis",GetPlayerScore(playerid));
- INI_WriteInt(file,"Skin",GetPlayerSkin(playerid));
- INI_WriteFloat(file,"pos_x",pDB[playerid][pos_x]);
- INI_WriteFloat(file,"pos_y",pDB[playerid][pos_y]);
- INI_WriteFloat(file,"pos_z",pDB[playerid][pos_z]);
- /* Uždarom failą */
- INI_Close(file);
- lastTick = GetTickCount();
- finalTick = lastTick - tick;
- printf("%s issaugotas per %i ms!", Vardas(playerid), finalTick );
- return 1;
- }
- /* ================| FUNKCIJOS |================= */
- stock Vardas( playerid )
- {
- GetPlayerName( playerid, vardas, MAX_PLAYER_NAME );
- return( vardas );
- }
- stock Prisijungimas( playerid ) // Prisijungimo funkcija rodoma žaidėjui
- {
- inline loginDialog( playerid1, dialogid, response, listitem, string: inputtext[] )
- {
- #pragma unused playerid1, dialogid, listitem
- if(!response) return Kick(playerid); // Jeigu išeina - išmetam
- if(response) // Jeigu paspaudė jungtis
- {
- if(!strcmp(inputtext, pDB[playerid][slaptazodis], false)) // Jeigu įvedė teisingą slaptažodį
- {
- pDB[playerid][prisijunges] = true;
- SendClientMessage(playerid,-1,"Sveikiname prisijungus!");
- }
- else // Jeigu slaptažodis netinka
- {
- SendClientMessage( playerid, -1, "Neteisingas slaptažodis!" );
- Prisijungimas( playerid );
- return 1;
- }
- }
- }
- Dialog_ShowCallback(playerid,using inline loginDialog,DIALOG_STYLE_INPUT,"Prisijungimas","Sveikas atvykęs!\nPrisijunk","Jungtis","Išeiti"); // Parodom prisijungimo dialogą
- return 1;
- }
- stock Registracija( playerid ) // Registracijos funkcija rodoma žaidėjui
- {
- inline regDialog( playerid1, dialogid, response, listitem, string: inputtext[] )
- {
- #pragma unused playerid1, dialogid, listitem
- if(!response) return Kick(playerid); // Jeigu išeina - išmetam
- if(response) // Jeigu paspaudė jungtis
- {
- if(!strlen(inputtext)) // Jeigu neįvedė slaptažodžio
- {
- Registracija( playerid );
- SendClientMessage( playerid, -1, "Neteisingas ivestas slaptažodis!" );
- return 1;
- }
- new INI:file = INI_Open(failas(playerid)); // atidarom failą įrašymui
- INI_SetTag(file,"Zaidejo duomenys"); // Nustatom tag'a 'zaidejo duomenys'
- INI_WriteString(file,"Slaptazodis",inputtext);
- INI_WriteFloat(file,"Gyvybes",100);
- INI_WriteFloat(file,"Sarvai",0);
- INI_WriteInt(file,"Pinigai",0);
- INI_WriteInt(file,"Patirtis",0);
- INI_WriteInt(file,"Skin",0);
- INI_WriteFloat(file,"pos_x",0);
- INI_WriteFloat(file,"pos_y",0);
- INI_WriteFloat(file,"pos_z",0);
- INI_Close(file); // Uždarom failą
- SendClientMessage(playerid,-1,"Užsiregistravote sėkmingai!"); // Žaidėjas užsiregistravo - nusiunčiam žinutę
- pDB[playerid][naujokas]=true;
- return 1;
- }
- }
- Dialog_ShowCallback(playerid,using inline regDialog,DIALOG_STYLE_INPUT,"Registracija","Sveikas atvykęs!\nUzsiregistruok","Jungtis","Išeiti"); // Parodom registracijos dialogą
- return 1;
- }
- stock failas( playerid ) // Funkcija, kurios pagalba rasime kelią iki žaidėjo failo direktorijos
- {
- new str[ 128 ], name[ MAX_PLAYER_NAME ];
- GetPlayerName( playerid, name, sizeof name );
- format(str, sizeof str, Direktorija, name);
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment