All pastes #1566736 Raw Edit

OnPlayerConnect+Disconnect

public cpp v1 · immutable
#1566736 ·published 2009-09-15 10:26 UTC
rendered paste body
public OnPlayerConnect(playerid){	if(IsPlayerNPC(playerid)) return 1;    weat[playerid] = 0;    transfered[playerid] = false;    firstspawn[playerid] = false;    team[playerid] = TEAM_NONE;    expshown[playerid]=false;    cantalk[playerid]=false;    expent[playerid]=0;    weapgvntimer[playerid]=0;    weapgvn[playerid]=0;    exitammu[playerid]=0;    ammodecr[playerid]=0;    armordecr[playerid]=0;    exitedweapd[playerid]=0;    armor[playerid]=0;    ammohack[playerid]=0;    radioused[playerid] = 0;	pradio[playerid] = 0;	ResetPlayerWeaponsEx(playerid);	ammotimer[playerid] = SetTimerEx("AmmoAnticheat", 4000, 1, "i", playerid);	armortimer[playerid] = SetTimerEx("ArmorAnticheat",  3000, 1, "i", playerid);	weaptimer[playerid] =  SetTimerEx("WeaponAnticheat", 2000, 1, "i", playerid);	new playername[MAX_PLAYER_NAME];	GetPlayerName(playerid, playername, sizeof(playername));	new tmp[256];	new idx;	tmp = dini_Get(FILE_SETTINGS, "blacklist");	if (strval(tmp) == 1) {		tmp = dini_Get(FILE_BLACKLIST, playername);		if (strval(strtok(tmp, idx, ',')) == 1) KickMsg(playerid, "Blacklist", strtok(tmp, idx, ','));		idx = 0;	}	GameTextForPlayer(playerid,"~g~~h~Las Venturas Freeroam ~r~1.71", 5000, 5);	SendClientMessage(playerid, lime1, "              Добро пожаловать на сервер DooM55.ru!");	SendClientMessage(playerid, yellow3, "* Наберите /rules для получения подробных правил сервера");	SendClientMessage(playerid, yellow5, "* Наберите /changes, чтобы узнать о последних изменениях в моде");	SendClientMessage(playerid, COLOR_CORAL, "* Наберите /help для получения справки по командам");	activeplayers++;	if (dini_Int(FILE_TOTALSTAT, "mostplayers") < activeplayers)	{		dini_IntSet(FILE_TOTALSTAT, "mostplayers", activeplayers);		new hourstr[3];		new minstr[3];		new secstr[3];		new date[32];		new year,month,day;		new hour,minute,second;		getdate(year,month,day);		gettime(hour,minute,second);		if(hour> 9) format(hourstr, 3,"%d",hour);		if(hour< 10) format(hourstr, 3,"0%d",hour);		if(minute> 9) format(minstr, 3,"%d",minute);		if(minute< 10) format(minstr, 3,"0%d",minute);		if(second> 9) format(secstr, 3,"%d",second);		if(second< 10) format(secstr, 3,"0%d",second);		format(date,32,"[%d.%d.%d] [%s:%s:%s]",day,month,year,hourstr,minstr,secstr);		format(tmp, sizeof(tmp),"------ Установлен новый рекорд посещаемости сервера - %d!!! %s",activeplayers,date);		format(date,32,"%d.%d.%d [%s:%s:%s]",day,month,year,hourstr,minstr,secstr);		dini_Set(FILE_TOTALSTAT, "mostplayersdate", date);		SendClientMessageToAll(COLOR_ADMIN,tmp);	}	/*// Assume str is your string	new temb[128];	format(temb,sizeof(temb),"%d atata",playerid);	new	Alloc:mem = malloc(strlen(temb) + 1);	if (mem)	{		msets(mem, 0, temb);		SetTimerEx("SendClientMessageEx", 4000, 0, "iii", playerid, yellow3, _:mem);	}*/	//else {}	//"* Наберите /rules для получения подробных правил сервера"	//SetTimerEx("SendClientMessageEx", 4000, 0, "i,i,a,a", playerid, yellow3, "* Наберите /rules для получения подробных правил сервера",strlen( "* Наберите /rules для получения подробных правил сервера")+1);	//SetTimerEx("SendClientMessageEx", 8000, 0,"d d s",playerid, yellow5,"* Наберите /changes, чтобы узнать о последних изменениях в моде ");	//SetTimerEx("SendClientMessageEx", 10000, 0,"d d s",playerid, yellow6,"* Наберите /help для получения справки по командам ");	new acc[256];    format(acc,sizeof(acc),"accounts/%s",udb_encode(playername));    if (dini_Exists(acc))	{		//SendClientMessage(playerid, grey6, "* Внимание! На нашем сервере зарегистрирован аккаунт с таким именем.");        tmp = dini_Get(acc, "protection");		if (strval(tmp) == 1)		{			//SendClientMessage(playerid, grey3, "* Если вы его владелец, пожалуйста, идентифицируйтесь с помощью /login.");			ShowPlayerDialog(playerid, DIALOG_LOGIN, 1, "Авторизация", "Внимание! На нашем сервере зарегистрирован аккаунт с таким именем.\nЕсли вы его владелец, пожалуйста, идентифицируйтесь, введя пароль в поле ниже.","ОК","Выход");		}    }    else	{        //SendClientMessage(playerid, grey4, "* .");        ShowPlayerDialog(playerid, DIALOG_REGISTER, 1, "Регистрация", "Для игры на сервере gta.doom55.ru вы должны быть зарегистрированы.\nВпишите пароль, который вы будете вводить при следующих подключениях к серверу в поле ниже.","ОК","Выход");        //SendClientMessage(playerid, grey4, "* Вы должны зарегистрироваться используя команду /register <пароль>");	}	SetPlayerVirtualWorld(playerid,0);	SetPlayerMoney(playerid,0);	Cash[playerid] = 0;    givingmoney[playerid] = false;	IsPlayerInDM[playerid] = false;	//crouch[playerid][0] = 0;	IsPlayerInStadium[playerid] = false;	skydive[playerid] = false;    frags[playerid] = 0;    tip[playerid] = 1;    EnteredStart[playerid] = 0;    balled[playerid] = false;    tubed[playerid] = false;    SetPlayerColor(playerid,playerColors[playerid]);    SendDeathMessage(INVALID_PLAYER_ID, playerid, 200);// добавляем иконки    SetPlayerMapIcon(playerid,7,1937.5291,2307.1484,10.3962, 52, 0); // S	SetPlayerMapIcon(playerid,8,2247.6777,2396.6099,10.3892, 52, 0);	SetPlayerMapIcon(playerid,9,2452.6545,2064.4014,10.4122, 52, 0);	SetPlayerMapIcon(playerid,10,2546.8115,1972.4519,10.3843, 52, 0);	SetPlayerMapIcon(playerid,11,2884.5833,2453.6714,10.6397, 52, 0);   	SetPlayerMapIcon(playerid,12, 1584.0096,-1627.8856,13.3828, 30, 0); // иконка полиц. участка 1   	SetPlayerMapIcon(playerid,13, -1679.962524,705.532287,30.601562, 30, 0); // иконка полиц. участка 2   	SetPlayerMapIcon(playerid,14, 2278.501708,2443.962890,46.976562, 30, 0); // иконка полиц. участка 3   	SetPlayerMapIcon(playerid,15, 2643.8848,-2033.5562,13.6463, 27, 0); // иконка тюнинга лоурайдеров   	SetPlayerMapIcon(playerid,16,1041.4735,-1023.7297,32.2366, 27, 0); // иконка тюнинга в ЛС   	SetPlayerMapIcon(playerid,17,-1935.4298,236.9624,34.3125, 27, 0); // иконка тюнинга в СФ   	SetPlayerMapIcon(playerid,18,-2712.1887,217.5576,4.2243, 27, 0); // иконка тюнинга стритрейсеров   	SetPlayerMapIcon(playerid,19,2386.5039,1041.3555,9.9392, 27, 0); // иконка тюнинга в ЛВ   	SetPlayerMapIcon(playerid,20,1181.7405,-1325.6947,13.7127, 22, 0); // госпиталь   	SetPlayerMapIcon(playerid,22,2190.1230,1983.6838,10.8203, 52, 0); // 24\7 в ЛВ   	SetPlayerMapIcon(playerid,21,1830.8325,-1837.8564,13.7072, 52, 0); // 24\7 в ЛС   	SetPlayerMapIcon(playerid,23,1352.3279,-1755.6383,13.3533, 52, 0); // 24\7 в ЛC   	SetPlayerMapIcon(playerid,24,1314.2893,-904.3557,39.0695, 52, 0); // 24\7 в ЛC   	SetPlayerMapIcon(playerid,25,998.3287,-919.9227,42.1797, 52, 0); // 24\7 в ЛC    SetPlayerMapIcon(playerid,26,2101.4363,-1807.9736,13.1188, 29, 0); // неотмеченная пицца в ЛC    SetPlayerMapIcon(playerid,27,1098.0309,1449.0337,12.0872, 33, 0); // стадион    SetPlayerMapIcon(playerid,28,2483.6104,1527.6683,11.1314, 18, 0); // гранаты    SetPlayerMapIcon(playerid,29,944.9236,2071.4380,10.3930, 55, 0); //export//	tmp = dini_Get(FILE_SETTINGS, "userclock");//	if (strval(tmp) == 1) TogglePlayerClock(playerid,1); //захерачиваем часики	if ((RaceLoaded == true) && (RaceInGame == false))	{		SetPlayerRaceCheckpoint(playerid, RaceCheckpoints[0][cpType],												RaceCheckpoints[0][cpX], RaceCheckpoints[0][cpY], RaceCheckpoints[0][cpZ],												RaceCheckpoints[1][cpX], RaceCheckpoints[1][cpY], RaceCheckpoints[1][cpZ],												RaceCheckpoints[0][cpSize]);		SetPlayerMapIcon(playerid,30,RaceCheckpoints[0][cpX],RaceCheckpoints[0][cpY],RaceCheckpoints[0][cpZ], 53, 0);	}    game_moder[playerid] = 0;	race_moder[playerid] = 0;	playerCheckpoint[playerid] = 999;	for(new i;i<MAX_PLAYERS;i++)		blockpm[playerid][i] = false;//ACS    ACS_ReinitTimers();	#if ACS_SPAWN_KILLS > 0  	gACS_SpawnKill_Kills_PlayerId[playerid] = 0;	#endif  	VotedPlayerId[playerid] = 0;  	if(Votetype == VOTE_KICK)	{		if( VotePlayerId == playerid)    	VoteReset();    }	TextDrawShowForPlayer(playerid, ad);	return 1;}public OnPlayerDisconnect(playerid, reason){    KillTimer(ammotimer[playerid]);    KillTimer(armortimer[playerid]);    KillTimer(weaptimer[playerid]);    MidoStreamDisconnect(playerid);	activeplayers--;    SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);    givingmoney[playerid] = false;	new playername[MAX_PLAYER_NAME];	new Float:x, Float:y, Float:z;	if(IsPlayerInDM[playerid])	{	    DisablePlayerWorldBounds(playerid);		PlayersInDM -=1;		switch(team[playerid])		{		    case TEAM_RED: reds-=1;		    case TEAM_BLUE: blues-=1;		}		if(gametype == DM) TextDrawDestroy(score[playerid]);	}	if(IsPlayerInStadium[playerid])	{		PlayersIn8Track -=1;		SetVehicleToRespawn(playercarid[playerid]);		LinkVehicleToInterior(playercarid[playerid],0);	}	if (RaceInGame == true && IsRacer[playerid] == true)   {		RaceRemovePlayer(playerid);		if (raceplayers() == 0)  RaceStop(4); //если последний игрок свалил, нада заканчивать гонку	}	GetPlayerName(playerid, playername, sizeof(playername));    new acc[256];    format(acc,sizeof(acc),"accounts/%s",udb_encode(playername));	if (dini_Exists(acc) && logged[playerid]) {//		dini_IntSet(acc, "money", GetPlayerCash(playerid));       	dini_IntSet(acc, "bank", bank[playerid]);      	dini_IntSet(acc, "bounty", bounty[playerid]);      	if (GetPlayerState(playerid) != PLAYER_STATE_NONE && GetPlayerState(playerid) != PLAYER_STATE_WASTED && GetPlayerInterior(playerid) == 0 && !balled[playerid] && !tubed[playerid] && !IsPlayerInDM[playerid])		{			GetPlayerPos(playerid, x,y,z);       		dini_FloatSet(acc, "x", x);       		dini_FloatSet(acc, "y", y);       		dini_FloatSet(acc, "z", z);		}		new k;		k=GetPlayerSkin(playerid);		if(dini_Int(acc,"skinsave") && k) dini_IntSet(acc, "skin",k);		k = dini_Int(acc, "killsinarow");		if(k < killsinarow[playerid]) dini_IntSet(acc, "killsinarow", killsinarow[playerid]); 		k = dini_Int(acc, "kills");		dini_IntSet(acc, "kills", k+1);		k = dini_Int(acc, "deaths");		dini_IntSet(acc, "deaths", k+1); 	}	if (muted[playerid] > 0)    {	     KillTimer(muteTimer[playerid]);         dini_IntSet(acc, "muted", muted[playerid]);         muted[playerid] = 0;	}	if (jailed[playerid] > 0)    {	     KillTimer(jailTimer[playerid]);         dini_IntSet(acc, "jailed", jailed[playerid]);         jailed[playerid] = 0;	}	logged[playerid] = god[playerid] = false;	bank[playerid] = bounty[playerid] = payment[playerid] = jailed[playerid] = muted[playerid] = killsinarow[playerid] = 0;	query[playerid] = (-1);	if((VotePlayerId == playerid) || (VotePlayerIdBy == playerid))    	if(Votetype == VOTE_KICK || Votetype == VOTE_KILL) VoteStop(VotePlayerIdBy, "Игрок вышел");}