• Страница 1 из 1
  • 1
Модератор форума: drifter-dron, admin, TweIk  
Вырезать регистрацию
LoLmerryДата: Среда, 28.08.2013, 19:35:05 | Сообщение # 1

Группа: Пользователи
Сообщений: 13
Код
// Classic TDM Mod SAMP 0.3. By happy_hardcore for ****-***.***

#include <a_samp>
#include <core>
#include <float>
#include <utils>
#include <ganticheat>

#define COLOR_GRAD 0xB4B5B7FF
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA

static gTeam[MAX_PLAYERS];

forward ShowStats(playerid,targetid);
forward SetPlayerTeamFromClass(playerid,classid);
forward UpdateTextDraw();
forward DelayedGMX();
forward UpdateTime();
forward OnPlayerRegister(playerid, password[]);
forward OnPlayerLogin(playerid,password[]);
forward ini_GetKey( line[] );
forward ini_GetValue( line[] );
forward OnPlayerUpdate(playerid);

stock ini_GetKey( line[] )
{
new keyRes[256];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}

stock ini_GetValue( line[] )
{
new valRes[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}

new numplayers = 0;
new gPlayerLogged[MAX_PLAYERS];
new TeamOneScore = 0;
new TeamTwoScore = 0;
new Text:draw;
new MaxScore = 50;
new Text:txtTimeDisp;
new hour, minute;
new timestr[32];
new gActivePlayers[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];

enum pInfo
{
pKey[128],
pBanned,
pAdmin,
pDeath,
pKill,
};
new PlayerInfo[MAX_PLAYERS][pInfo];

main()
{
print("...[Classic TDM, by Happy_Hardcore]...");
}

public UpdateTime()
{
gettime(hour, minute);
format(timestr,32,"%02d:%02d",hour,minute);
TextDrawSetString(txtTimeDisp,timestr);

SetWorldTime(hour);

new x=0;
while(x!=MAX_PLAYERS)
{
if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE)
{
SetPlayerTime(x,hour,minute);
}
x++;
}
}
public OnGameModeInit()
{
SetGameModeText("Classic TDM");
SetTimer("UpdateTextDraw",1000,1);
UsePlayerPedAnims();
// Бомжи
AddPlayerClassEx(0,289,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(1,293,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(2,180,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(4,29,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(5,169,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
// Анти бомжы
AddPlayerClassEx(6,285,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(7,286,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(8,267,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(9,265,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(10,192,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);

txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
TextDrawUseBox(txtTimeDisp, 0);
TextDrawFont(txtTimeDisp, 3);
TextDrawSetShadow(txtTimeDisp,1);
TextDrawSetOutline(txtTimeDisp,2);
TextDrawBackgroundColor(txtTimeDisp,0xFFBCFFFF);
TextDrawColor(txtTimeDisp,0x0027FF);
TextDrawAlignment(txtTimeDisp,3);
TextDrawLetterSize(txtTimeDisp,0.5,1.5);
UpdateTime();
SetTimer("UpdateTime",1000 * 60,1);

draw = TextDrawCreate(500.0,300.0," ");
TextDrawAlignment(draw,0);
TextDrawBackgroundColor(draw,0x000FF);
TextDrawFont(draw,2);
TextDrawLetterSize(draw,0.4,1.2);
TextDrawColor(draw,0x000FF);
TextDrawSetOutline(draw,1);
TextDrawSetProportional(draw,1);
TextDrawSetShadow(draw,1);

return true;
}

public UpdateTextDraw()
{
new string[128];
format(string,sizeof(string),"~r~—O–„…:~w~~n~OЌK… : %d~n~~b~AHT… —O–„…:~w~~n~OЌK… : %d~n~~n~–AKC…–Y–~n~OЌKOB: %d",TeamOneScore,TeamTwoScore,MaxScore);
TextDrawSetString(draw,string);
if(MaxScore == TeamOneScore)
{
SendClientMessageToAll(0x33FF33AA, "Win Terrorists!");
for(new
19:23:31         
i=0;i<MAX_PLAYERS;i++)
{
TogglePlayerControllable(i,false);
TextDrawHideForAll(draw);
SetTimer("DelayedGMX",4000,0);
}
}
else if(MaxScore == TeamTwoScore)
{
SendClientMessageToAll(0x33FF33AA, "Win Special Forces!");
for(new i=0;i<MAX_PLAYERS;i++)
{
TogglePlayerControllable(i,false);
TextDrawHideForAll(draw);
SetTimer("DelayedGMX",4000,0);
}
}
return true;
}

public DelayedGMX()
{
SendRconCommand("gmx");
}

public SetPlayerTeamFromClass(playerid,classid)
{
switch (classid)
{
case 0:
{
gTeam [playerid]= 0;
}
case 1:
{
gTeam [playerid]= 0;
}
case 2:
{
gTeam [playerid]= 0;
}
case 3:
{
gTeam [playerid]= 0;
}
case 4:
{
gTeam [playerid]= 0;
}
case 5:
{
gTeam [playerid]= 1;
}
case 6:
{
gTeam [playerid]= 1;
}
case 7:
{
gTeam [playerid]= 1;
}
case 8:
{
gTeam [playerid]= 1;
}
case 9:
{
gTeam [playerid]= 1;
}
}
}

public OnPlayerRequestClass(playerid, classid)
{
switch(classid)
{
case 0:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 1:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 2:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 3:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 4:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 5:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 6:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT…
—O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 7:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 8:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 9:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
}
return true;
}

public OnPlayerConnect(playerid)
{
gActivePlayers[playerid]++;
numplayers++;
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
new plname[MAX_PLAYER_NAME];
new string[MAX_PLAYER_NAME];
gPlayerAccount [playerid]= 0;
PlayerInfo [playerid][pBanned]= 0;
PlayerInfo [playerid][pAdmin]= 0;
PlayerInfo [playerid][pDeath]= 0;
PlayerInfo [playerid][pKill]= 0;
SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер.");
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
SetPlayerColor(playerid, 0x4FF0FF);
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
if(fexist(string))
{
gPlayerAccount [playerid]= 1;
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
else
{
gPlayerAccount [playerid]= 0;
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности.");
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
gActivePlayers[playerid]--;
numplayers--;
OnPlayerUpdate(playerid);
TextDrawHideForPlayer(playerid, draw);
SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
return true;
}

public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playerid,txtTimeDisp);
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
TextDrawShowForPlayer(playerid, draw);
if(gTeam [playerid]== 0)
{
SetPlayerTeam(playerid, 0);
SetPlayerColor(playerid, 0xFF0000AA);
}
if(gTeam [playerid]== 1)
{
SetPlayerTeam(playerid, 1);
SetPlayerColor(playerid, 0x0000FFFF);
}
return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
TextDrawHideForPlayer(playerid,txtTimeDisp);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
if(gTeam [killerid]== 0)
{
TeamOneScore ++;
}
if(gTeam [killerid]== 1)
{
TeamTwoScore ++;
}
PlayerInfo [killerid][pKill]+= 1;
PlayerInfo [playerid][pDeath]-= 1;
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
}
return true;
}

public OnPlayerCommandText(playerid,
cmdtext[])
{
new string[256];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new tmp[256];
new giveplayerid, idx;
cmd = strtok(cmdtext, idx);
idx++;

if (strcmp("/kill", cmdtext, true, 5) == 0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
if(strcmp(cmd, "/kick", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] ");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo [playerid][pAdmin]>= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext [idx]<= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] ");
return 1;
}
format(string, sizeof(string), "%s был кикнут администратором %s, причина: %s ", giveplayer, sendername, (result));
SendClientMessageToAll(0xFF5D53FF, string);
Kick(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "Игрок не подключен.");
SendClientMessage(playerid, COLOR_GRAD, string);
}
}
return 1;
}
if (strcmp(cmd, "/stats", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged [playerid]!= 0)
{
ShowStats(playerid,playerid);
}
else
{
SendClientMessage(playerid, COLOR_GRAD, "Вы не зашли на сервер.");
}
}
return 1;
}
if(strcmp(cmd, "/ban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo [playerid][pAdmin]>= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext [idx]<= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]");
return 1;
}
PlayerInfo [giveplayerid][pBanned]= 1;
format(string, sizeof(string), "%s забанен администратором %s, причина: %s", giveplayer, sendername, (result));
SendClientMessageToAll(0xFF5D53FF, string);
Ban(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "Игрок не подключен.");
SendClientMessage(playerid, COLOR_GRAD, string);
}
}
return 1;
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new tpass[256];
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext))
{
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
return 1;
}
strmid(tpass, inputtext, 0,
strlen(inputtext), 255);
OnPlayerLogin(playerid,tpass);
}
else
{
SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна авторизация!");
Kick(playerid);
}
}
else if(dialogid == 2)
{
if(response)
{
if(!strlen(inputtext))
{
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для того чтобы аккаунт не был взломан.");
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена");
return 1;
}
strmid(tpass, inputtext, 0, strlen(inputtext), 255);
OnPlayerRegister(playerid,tpass);

new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена");
}
else
{
SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна регистрация!");
Kick(playerid);
}
}
return 1;
}
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var);
format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var);
fclose(hFile);

}
}
return 1;
}
public OnPlayerLogin(playerid,password[])
{
new string2[64];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Banned" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pBanned]= strval( val ); }
if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pAdmin]= strval( val ); }
if( strcmp( key , "Death" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pDeath]= strval( val ); }
if( strcmp( key , "Kill" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pKill]= strval( val ); }
}
fclose(UserFile);
}
else
{

fclose(UserFile);
new loginmsg[256+1];
format(loginmsg,256,"Пароль не свопадает с логином!");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
if(PlayerInfo [playerid][pBanned]== 1)
{
SendClientMessage(playerid, 0x33CCFFAA,"Этот аккаунт был забанен.");
Kick(playerid);
}
new rank[20];
new kill = PlayerInfo[playerid][pKill];
if(kill >= 60 && kill <= 100) { rank = "Боец"; }
else if(kill >= 100 && kill <= 160)
{
rank = "Убийца";
}
else if(kill >= 160 && kill <= 200)
{
rank = "Палач";
}
else if(kill >= 200 && kill <= 260)
{
rank =
"Кровопускатель";
}
else if(kill >= 300 && kill <= 360)
{
rank = "Мясоруб";
}
else if(kill >= 360 && kill <= 500)
{
rank = "Смерть";
}
else if(kill >= 500)
{
rank = "Батька";
}
else
{
rank = "Салага";
}
format(string2, sizeof(string2), "Добро пожаловать, %s.",rank);
SendClientMessage(playerid, 0x33CCFFAA,string2);
printf("%s вошел на сервер.",playername2);
if (PlayerInfo [playerid][pAdmin]> 0)
{
format(string2, sizeof(string2), "Вы вошли как администратор %d уровня.",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, 0x33CCFFAA,string2);
}
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var);
format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{

new rank[20];
new death = PlayerInfo[targetid][pDeath];
new kill = PlayerInfo[targetid][pKill];
if(kill >= 60 && kill <= 100) { rank = "Боец"; }
else if(kill >= 100 && kill <= 160)
{
rank = "Убийца";
}
else if(kill >= 160 && kill <= 200)
{
rank = "Палач";
}
else if(kill >= 200 && kill <= 260)
{
rank = "Кровопускатель";
}
else if(kill >= 300 && kill <= 360)
{
rank = "Мясоруб";
}
else if(kill >= 360 && kill <= 500)
{
rank = "Смерть";
}
else if(kill >= 500)
{
rank = "Батька";
}
else
{
rank = "Салага";
}

new coordsstring[256];
SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
format(coordsstring, sizeof(coordsstring), " Смертей: %d",death);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), " Убийств: %d",kill);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), " Игровой Ранг: %s",rank);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
}
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string [index]<= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

Добавлено (28.08.2013, 19:35:05)
---------------------------------------------
Помогите вырезать регистрацию из данного мода
-
-

 
Сообщение
Код
// Classic TDM Mod SAMP 0.3. By happy_hardcore for ****-***.***

#include <a_samp>
#include <core>
#include <float>
#include <utils>
#include <ganticheat>

#define COLOR_GRAD 0xB4B5B7FF
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA

static gTeam[MAX_PLAYERS];

forward ShowStats(playerid,targetid);
forward SetPlayerTeamFromClass(playerid,classid);
forward UpdateTextDraw();
forward DelayedGMX();
forward UpdateTime();
forward OnPlayerRegister(playerid, password[]);
forward OnPlayerLogin(playerid,password[]);
forward ini_GetKey( line[] );
forward ini_GetValue( line[] );
forward OnPlayerUpdate(playerid);

stock ini_GetKey( line[] )
{
new keyRes[256];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}

stock ini_GetValue( line[] )
{
new valRes[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}

new numplayers = 0;
new gPlayerLogged[MAX_PLAYERS];
new TeamOneScore = 0;
new TeamTwoScore = 0;
new Text:draw;
new MaxScore = 50;
new Text:txtTimeDisp;
new hour, minute;
new timestr[32];
new gActivePlayers[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];

enum pInfo
{
pKey[128],
pBanned,
pAdmin,
pDeath,
pKill,
};
new PlayerInfo[MAX_PLAYERS][pInfo];

main()
{
print("...[Classic TDM, by Happy_Hardcore]...");
}

public UpdateTime()
{
gettime(hour, minute);
format(timestr,32,"%02d:%02d",hour,minute);
TextDrawSetString(txtTimeDisp,timestr);

SetWorldTime(hour);

new x=0;
while(x!=MAX_PLAYERS)
{
if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE)
{
SetPlayerTime(x,hour,minute);
}
x++;
}
}
public OnGameModeInit()
{
SetGameModeText("Classic TDM");
SetTimer("UpdateTextDraw",1000,1);
UsePlayerPedAnims();
// Бомжи
AddPlayerClassEx(0,289,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(1,293,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(2,180,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(4,29,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
AddPlayerClassEx(5,169,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0);
// Анти бомжы
AddPlayerClassEx(6,285,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(7,286,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(8,267,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(9,265,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);
AddPlayerClassEx(10,192,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0);

txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00");
TextDrawUseBox(txtTimeDisp, 0);
TextDrawFont(txtTimeDisp, 3);
TextDrawSetShadow(txtTimeDisp,1);
TextDrawSetOutline(txtTimeDisp,2);
TextDrawBackgroundColor(txtTimeDisp,0xFFBCFFFF);
TextDrawColor(txtTimeDisp,0x0027FF);
TextDrawAlignment(txtTimeDisp,3);
TextDrawLetterSize(txtTimeDisp,0.5,1.5);
UpdateTime();
SetTimer("UpdateTime",1000 * 60,1);

draw = TextDrawCreate(500.0,300.0," ");
TextDrawAlignment(draw,0);
TextDrawBackgroundColor(draw,0x000FF);
TextDrawFont(draw,2);
TextDrawLetterSize(draw,0.4,1.2);
TextDrawColor(draw,0x000FF);
TextDrawSetOutline(draw,1);
TextDrawSetProportional(draw,1);
TextDrawSetShadow(draw,1);

return true;
}

public UpdateTextDraw()
{
new string[128];
format(string,sizeof(string),"~r~—O–„…:~w~~n~OЌK… : %d~n~~b~AHT… —O–„…:~w~~n~OЌK… : %d~n~~n~–AKC…–Y–~n~OЌKOB: %d",TeamOneScore,TeamTwoScore,MaxScore);
TextDrawSetString(draw,string);
if(MaxScore == TeamOneScore)
{
SendClientMessageToAll(0x33FF33AA, "Win Terrorists!");
for(new
19:23:31         
i=0;i<MAX_PLAYERS;i++)
{
TogglePlayerControllable(i,false);
TextDrawHideForAll(draw);
SetTimer("DelayedGMX",4000,0);
}
}
else if(MaxScore == TeamTwoScore)
{
SendClientMessageToAll(0x33FF33AA, "Win Special Forces!");
for(new i=0;i<MAX_PLAYERS;i++)
{
TogglePlayerControllable(i,false);
TextDrawHideForAll(draw);
SetTimer("DelayedGMX",4000,0);
}
}
return true;
}

public DelayedGMX()
{
SendRconCommand("gmx");
}

public SetPlayerTeamFromClass(playerid,classid)
{
switch (classid)
{
case 0:
{
gTeam [playerid]= 0;
}
case 1:
{
gTeam [playerid]= 0;
}
case 2:
{
gTeam [playerid]= 0;
}
case 3:
{
gTeam [playerid]= 0;
}
case 4:
{
gTeam [playerid]= 0;
}
case 5:
{
gTeam [playerid]= 1;
}
case 6:
{
gTeam [playerid]= 1;
}
case 7:
{
gTeam [playerid]= 1;
}
case 8:
{
gTeam [playerid]= 1;
}
case 9:
{
gTeam [playerid]= 1;
}
}
}

public OnPlayerRequestClass(playerid, classid)
{
switch(classid)
{
case 0:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 1:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 2:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 3:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 4:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 5:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 6:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT…
—O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 7:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 8:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
case 9:
{
SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234);
SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234);
SetPlayerFacingAngle(playerid, 319.3406);
SetPlayerTeamFromClass(playerid,classid);
GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4);
ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0);
return 1;
}
}
return true;
}

public OnPlayerConnect(playerid)
{
gActivePlayers[playerid]++;
numplayers++;
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
new plname[MAX_PLAYER_NAME];
new string[MAX_PLAYER_NAME];
gPlayerAccount [playerid]= 0;
PlayerInfo [playerid][pBanned]= 0;
PlayerInfo [playerid][pAdmin]= 0;
PlayerInfo [playerid][pDeath]= 0;
PlayerInfo [playerid][pKill]= 0;
SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер.");
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
SetPlayerColor(playerid, 0x4FF0FF);
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "%s.ini", plname);
if(fexist(string))
{
gPlayerAccount [playerid]= 1;
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
else
{
gPlayerAccount [playerid]= 0;
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности.");
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
gActivePlayers[playerid]--;
numplayers--;
OnPlayerUpdate(playerid);
TextDrawHideForPlayer(playerid, draw);
SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
return true;
}

public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playerid,txtTimeDisp);
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
TextDrawShowForPlayer(playerid, draw);
if(gTeam [playerid]== 0)
{
SetPlayerTeam(playerid, 0);
SetPlayerColor(playerid, 0xFF0000AA);
}
if(gTeam [playerid]== 1)
{
SetPlayerTeam(playerid, 1);
SetPlayerColor(playerid, 0x0000FFFF);
}
return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
TextDrawHideForPlayer(playerid,txtTimeDisp);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
if(gTeam [killerid]== 0)
{
TeamOneScore ++;
}
if(gTeam [killerid]== 1)
{
TeamTwoScore ++;
}
PlayerInfo [killerid][pKill]+= 1;
PlayerInfo [playerid][pDeath]-= 1;
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
}
return true;
}

public OnPlayerCommandText(playerid,
cmdtext[])
{
new string[256];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new tmp[256];
new giveplayerid, idx;
cmd = strtok(cmdtext, idx);
idx++;

if (strcmp("/kill", cmdtext, true, 5) == 0)
{
SetPlayerHealth(playerid, 0.0);
return 1;
}
if(strcmp(cmd, "/kick", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] ");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo [playerid][pAdmin]>= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext [idx]<= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] ");
return 1;
}
format(string, sizeof(string), "%s был кикнут администратором %s, причина: %s ", giveplayer, sendername, (result));
SendClientMessageToAll(0xFF5D53FF, string);
Kick(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "Игрок не подключен.");
SendClientMessage(playerid, COLOR_GRAD, string);
}
}
return 1;
}
if (strcmp(cmd, "/stats", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged [playerid]!= 0)
{
ShowStats(playerid,playerid);
}
else
{
SendClientMessage(playerid, COLOR_GRAD, "Вы не зашли на сервер.");
}
}
return 1;
}
if(strcmp(cmd, "/ban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo [playerid][pAdmin]>= 1)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext [idx]<= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]");
return 1;
}
PlayerInfo [giveplayerid][pBanned]= 1;
format(string, sizeof(string), "%s забанен администратором %s, причина: %s", giveplayer, sendername, (result));
SendClientMessageToAll(0xFF5D53FF, string);
Ban(giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "Игрок не подключен.");
SendClientMessage(playerid, COLOR_GRAD, string);
}
}
return 1;
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new tpass[256];
if(dialogid == 1)
{
if(response)
{
if(!strlen(inputtext))
{
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
return 1;
}
strmid(tpass, inputtext, 0,
strlen(inputtext), 255);
OnPlayerLogin(playerid,tpass);
}
else
{
SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна авторизация!");
Kick(playerid);
}
}
else if(dialogid == 2)
{
if(response)
{
if(!strlen(inputtext))
{
new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для того чтобы аккаунт не был взломан.");
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена");
return 1;
}
strmid(tpass, inputtext, 0, strlen(inputtext), 255);
OnPlayerRegister(playerid,tpass);

new loginmsg[256+1];
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена");
}
else
{
SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна регистрация!");
Kick(playerid);
}
}
return 1;
}
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var);
format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var);
fclose(hFile);

}
}
return 1;
}
public OnPlayerLogin(playerid,password[])
{
new string2[64];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Banned" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pBanned]= strval( val ); }
if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pAdmin]= strval( val ); }
if( strcmp( key , "Death" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pDeath]= strval( val ); }
if( strcmp( key , "Kill" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pKill]= strval( val ); }
}
fclose(UserFile);
}
else
{

fclose(UserFile);
new loginmsg[256+1];
format(loginmsg,256,"Пароль не свопадает с логином!");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");
}
if(PlayerInfo [playerid][pBanned]== 1)
{
SendClientMessage(playerid, 0x33CCFFAA,"Этот аккаунт был забанен.");
Kick(playerid);
}
new rank[20];
new kill = PlayerInfo[playerid][pKill];
if(kill >= 60 && kill <= 100) { rank = "Боец"; }
else if(kill >= 100 && kill <= 160)
{
rank = "Убийца";
}
else if(kill >= 160 && kill <= 200)
{
rank = "Палач";
}
else if(kill >= 200 && kill <= 260)
{
rank =
"Кровопускатель";
}
else if(kill >= 300 && kill <= 360)
{
rank = "Мясоруб";
}
else if(kill >= 360 && kill <= 500)
{
rank = "Смерть";
}
else if(kill >= 500)
{
rank = "Батька";
}
else
{
rank = "Салага";
}
format(string2, sizeof(string2), "Добро пожаловать, %s.",rank);
SendClientMessage(playerid, 0x33CCFFAA,string2);
printf("%s вошел на сервер.",playername2);
if (PlayerInfo [playerid][pAdmin]> 0)
{
format(string2, sizeof(string2), "Вы вошли как администратор %d уровня.",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, 0x33CCFFAA,string2);
}
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var);
format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var);
format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{

new rank[20];
new death = PlayerInfo[targetid][pDeath];
new kill = PlayerInfo[targetid][pKill];
if(kill >= 60 && kill <= 100) { rank = "Боец"; }
else if(kill >= 100 && kill <= 160)
{
rank = "Убийца";
}
else if(kill >= 160 && kill <= 200)
{
rank = "Палач";
}
else if(kill >= 200 && kill <= 260)
{
rank = "Кровопускатель";
}
else if(kill >= 300 && kill <= 360)
{
rank = "Мясоруб";
}
else if(kill >= 360 && kill <= 500)
{
rank = "Смерть";
}
else if(kill >= 500)
{
rank = "Батька";
}
else
{
rank = "Салага";
}

new coordsstring[256];
SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
format(coordsstring, sizeof(coordsstring), " Смертей: %d",death);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), " Убийств: %d",kill);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), " Игровой Ранг: %s",rank);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
}
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string [index]<= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

Добавлено (28.08.2013, 19:35:05)
---------------------------------------------
Помогите вырезать регистрацию из данного мода
-
-


Автор - LoLmerry
Дата добавления - 28.08.2013 в 19:35:05
igjdeДата: Четверг, 29.08.2013, 19:51:18 | Сообщение # 2

Группа: Пользователи
Сообщений: 50
Вот вырезка
Код
public OnPlayerConnect(playerid)  
{  
gActivePlayers[playerid]++;  
numplayers++;  
gettime(hour, minute);  
SetPlayerTime(playerid,hour,minute);  
new plname[MAX_PLAYER_NAME];  
new string[MAX_PLAYER_NAME];  
gPlayerAccount [playerid]= 0;  
PlayerInfo [playerid][pBanned]= 0;  
PlayerInfo [playerid][pAdmin]= 0;  
PlayerInfo [playerid][pDeath]= 0;  
PlayerInfo [playerid][pKill]= 0;  
SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер.");  
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);  
SetPlayerColor(playerid, 0x4FF0FF);  
GetPlayerName(playerid, plname, sizeof(plname));  
format(string, sizeof(string), "%s.ini", plname);  
if(fexist(string))  
{  
gPlayerAccount [playerid]= 1;  
new loginmsg[256+1];  
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");  
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");  
}  
else  
{  
gPlayerAccount [playerid]= 0;  
new loginmsg[256+1];  
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности.");  
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");  
}  
return 1;  
}
 
СообщениеВот вырезка
Код
public OnPlayerConnect(playerid)  
{  
gActivePlayers[playerid]++;  
numplayers++;  
gettime(hour, minute);  
SetPlayerTime(playerid,hour,minute);  
new plname[MAX_PLAYER_NAME];  
new string[MAX_PLAYER_NAME];  
gPlayerAccount [playerid]= 0;  
PlayerInfo [playerid][pBanned]= 0;  
PlayerInfo [playerid][pAdmin]= 0;  
PlayerInfo [playerid][pDeath]= 0;  
PlayerInfo [playerid][pKill]= 0;  
SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер.");  
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);  
SetPlayerColor(playerid, 0x4FF0FF);  
GetPlayerName(playerid, plname, sizeof(plname));  
format(string, sizeof(string), "%s.ini", plname);  
if(fexist(string))  
{  
gPlayerAccount [playerid]= 1;  
new loginmsg[256+1];  
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд.");  
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");  
}  
else  
{  
gPlayerAccount [playerid]= 0;  
new loginmsg[256+1];  
format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности.");  
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена");  
}  
return 1;  
}

Автор - igjde
Дата добавления - 29.08.2013 в 19:51:18
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

ps798829

(Среда 08:23:47)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

Вверх
17:28:34
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: