Public feed
#889128
#include <a_samp>
#include <dudb>
#include <dutils>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOR_SYSTEM 0xEFEFF7AA
new PLAYERLIST_authed[MAX_PLAYERS];
new Kills[MAX_PLAYERS];
new Deaths[MAX_PLAYERS];
new EXP[MAX_PLAYERS];
enum pLevel {
Level = 1
}
new gPlayerInfo[MAX_PLAYERS][pLevel];
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
stock SystemMsg(playerid,msg[]) {
if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
SendClientMessage(playerid,COLOR_SYSTEM,msg);
}
return 1;
}
stock PlayerName(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
//-------------------------------REGISTER----------------------------------------
dcmd_register(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed.");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exists, please use '/login password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/register password'");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account successfully created. Login with '/login password' now.");
return true;
}
//-------------------------------LOGIN-------------------------------------------
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed.");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exist, please use '/register password'.");
if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/login password'");
if (udb_CheckLogin(PlayerName(playerid),params)) {
GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid));
Kills[playerid] = (dUserINT(PlayerName(playerid)).("kills"));
Deaths[playerid] = (dUserINT(PlayerName(playerid)).("deaths"));
gPlayerInfo[playerid][Level] = (dUserINT(PlayerName(playerid)).("level"));
EXP[playerid] = (dUserINT(PlayerName(playerid)).("EXP"));
PLAYERLIST_authed[playerid]=true;
return SystemMsg(playerid,"Successfully authed!");
}
return SystemMsg(playerid,"Login failed!");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
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;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnPlayerConnect(playerid) {
PLAYERLIST_authed[playerid]=false;
Kills[playerid] = 0;
Deaths[playerid] = 0;
gPlayerInfo[playerid][Level] = 0;
EXP[playerid] = 0;
return false;
}
public OnPlayerDisconnect(playerid) {
if (PLAYERLIST_authed[playerid]) {
// Was loggedin, so save the data!
dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
dUserSetINT(PlayerName(playerid)).("Kills",Kills[playerid]);
dUserSetINT(PlayerName(playerid)).("Deaths",Deaths[playerid]);
dUserSetINT(PlayerName(playerid)).("Level",gPlayerInfo[playerid][Level]);
dUserSetINT(PlayerName(playerid)).("EXP",EXP[playerid]);
}
PLAYERLIST_authed[playerid]=false;
return false;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if (PLAYERLIST_authed[playerid] == 1)
{
Deaths[playerid]++;
Kills[killerid]++;
if(playerid != killerid)
{
EXP[killerid] += 50;
}
if(EXP[killerid] == 2000 && gPlayerInfo[killerid][Level] == 1)
{
EXP[killerid] = 0;
gPlayerInfo[killerid][Level] += 1;
SendClientMessage(killerid,NEW_LEVEL_COLOUR,"CONGRATULATIONS: You just got promoted to level 2. You got this by killing 40 players."); //Let him know he advanced a level.
}
if(EXP[killerid] == 3000 && gPlayerInfo[killerid][Level] == 2)
{
EXP[killerid] = 0;
gPlayerInfo[killerid][Level] += 1;
SendClientMessage(killerid,NEW_LEVEL_COLOUR,"CONGRATULATIONS: You just got promoted to level 3. You got this by killing 100 players."); //Let him know he advanced a level.
}
if(EXP[killerid] == 4000 && gPlayerInfo[killerid][Level] == 3)
{
EXP[killerid] = 0;
gPlayerInfo[killerid][Level] += 1;
SendClientMessage(killerid,NEW_LEVEL_COLOUR,"CONGRATULATIONS: You just got promoted to level 4. You got this by killing 180 players."); //Let him know he advanced a level.
}
if(EXP[killerid] == 5000 && gPlayerInfo[killerid][Level] == 4)
{
EXP[killerid] = 0;
gPlayerInfo[killerid][Level] += 1;
SendClientMessage(killerid,NEW_LEVEL_COLOUR,"CONGRATULATIONS: You just got promoted to level 5. You got this by killing 280 players."); //Let him know he advanced a level.
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[]) {
dcmd(login,5,cmdtext); // because login has 5 characters
dcmd(register,8,cmdtext); // because register has 8 characters
return false;
}
return 0;
}
public OnPlayerInfoChange(playerid)
{
return 1;
}
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 OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
//------------------------------------------------------------------------------------------------------
//Reikalingos funkcijos
//------------------------------------------------------------------------------------------------------
GetPlayerID(string[]) {
if(IsNumeric(string)) {
new player = strval(string);
if(IsPlayerConnected(player)) return player;
} else {
new playername[MAX_PLAYER_NAME];
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
GetPlayerName(i, playername, MAX_PLAYER_NAME);
if(strcmp(string, playername, true)==0) return i;
}
}
}
return INVALID_PLAYER_ID;
}
//------------------------------------------------------------------------------------------------------
IsNumeric(string[]) {
if((string[0]>'9' || string[0]<'0') && (string[0]!='-')) return 0;
for(new i=1, j=strlen(string); i<j; i++) {
if(string[i]>'9' || string[i]<'0') return 0;
}
return 1;
}