Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- www.pro-pawn.ru
- v.0.4.0
- Сделана навигация по коду, т.е
- 1.Инклюды
- 2.Переменные
- 3.Паблики
- 4.Команды
- 5.Функции
- Как пользоваться?
- Захимаем CTRL+F -----> Пишем "Нужный вам пункт" -----> Готово
- */
- //Инклюды
- #include <a_samp>//Стандарт
- #include <a_mysql>//База
- #include <sscanf2>//Облегчаем написание команд
- #include <foreach>//Оптимизация циклов для игроков
- #include <dc_cmd>//Командный процессор
- #include <streamer>//Стример
- //Переменные
- enum{
- d_register,
- d_login,
- d_changegang,
- d_info,
- d_password,
- d_vip,
- d_stats,
- d_ahelp,
- d_myahelp,
- d_mm,
- d_report,
- d_gm
- }
- enum pInfo{
- p_id,
- p_name[MAX_PLAYER_NAME],
- p_member,
- p_skin,
- p_admin,
- p_kills,
- p_vip
- }
- enum gInfo{
- g_respect[6],
- g_online[6]
- }
- new
- grove_interior_pickups[2],
- vagos_interior_pickups[2],
- ballas_interior_pickups[2],
- aztec_interior_pickups[2],
- rifa_interior_pickups[2],
- Iterator:streamed_players[MAX_PLAYERS]<MAX_PLAYERS-1>,
- GangInfo[gInfo][6],
- PlayerInfo[MAX_PLAYERS][pInfo]
- ;
- static gw_base;
- //Паблики
- main();
- public OnGameModeInit(){
- gw_base = mysql_connect("сюда пишем хост","пользователя","база данных","пароль от БД");
- mysql_function_query(gw_base, "SELECT * FROM `respect`", true, "LoadingRespect", "");
- loadpickup();
- loadobject();
- SetGameModeText("v0.3");
- Iter_Init(streamed_players);
- return 1;
- }
- public OnGameModeExit() return mysql_close(gw_base);
- public OnPlayerRequestClass(playerid, classid){
- if(GetPVarInt(playerid, "Login") == 1) return SpawnPlayer(playerid);
- SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на {269BD8}Pro Pawn Gang War{FFFFFF}");
- GetPlayerName(playerid, PlayerInfo[playerid][p_name], MAX_PLAYER_NAME);
- static const fmt_str[] = "SELECT `Name` FROM `accounts` WHERE `Name` = '%s'";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str, PlayerInfo[playerid][p_name]);
- mysql_function_query(gw_base, string, true, "CheckRegistration","d", playerid);
- SetPlayerCameraPos(playerid, 1474.184326, -1649.733520, 120.497848);
- SetPlayerCameraLookAt(playerid, 1474.273315, -1653.972534, 117.847877);
- return 1;
- }
- public OnPlayerConnect(playerid);
- public OnPlayerDisconnect(playerid, reason){
- if(GetPVarInt(playerid, "Registration") == 1){
- static const fmt_str[] = "DELETE FROM `accounts` WHERE `Name` = '%s'";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str, PlayerInfo[playerid][p_name]);
- mysql_query(gw_base,string,true);
- return 1;
- }
- if(Iter_Count(streamed_players[playerid]) != 0) Iter_Clear(streamed_players[playerid]);
- GangInfo[g_online][PlayerInfo[playerid][p_member]] --;
- SavePlayer(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid){
- SetPlayerSkin(playerid, PlayerInfo[playerid][p_skin]);
- static const member_colors[] = { 0x008000AA, 0xFFD700AA, 0xFF00FFAA, 0x00BFFFAA, 0x6A5ACDAA };
- PlayerInfo[playerid][p_member] = SetPlayerColor(playerid, member_colors[PlayerInfo[playerid][p_member] - 1]);
- switch(PlayerInfo[playerid][p_member]){
- case 1: SetPlayerPos(playerid,2464.9270,-1688.7904,13.5154);
- case 2: SetPlayerPos(playerid,2638.4524,-2014.2202,13.8139);
- case 3: SetPlayerPos(playerid,2519.6575,-1276.3923,34.8478);
- case 4: SetPlayerPos(playerid,1893.4453,-2038.2994,13.5469);
- case 5: SetPlayerPos(playerid,2145.2939,-1802.5371,16.1406);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason){
- static const
- on_death_fmt_str0[] = "{008000}%s",
- on_death_fmt_str1[] = "{FFD700}%s",
- on_death_fmt_str2[] = "{FF00FF}%s",
- on_death_fmt_str3[] = "{00BFFF}%s",
- on_death_fmt_str4[] = "{6A5ACD}%s",
- on_death_fmt_str5[] = "Вы были убиты игроком {FF8C00}- %s";
- const
- on_death_fmt_size0 = sizeof(on_death_fmt_str0)-2+32,
- on_death_fmt_size1 = sizeof(on_death_fmt_str1)-2+32,
- on_death_fmt_size2 = sizeof(on_death_fmt_str2)-2+32,
- on_death_fmt_size3 = sizeof(on_death_fmt_str3)-2+32,
- on_death_fmt_size4 = sizeof(on_death_fmt_str4)-2+32,
- on_death_fmt_size5 = sizeof(on_death_fmt_str5)-2+MAX_PLAYER_NAME;
- #if on_death_fmt_size0>on_death_fmt_size1
- #define on_death_fmt_size on_death_fmt_size0
- #else
- #define on_death_fmt_size on_death_fmt_size1
- #endif
- #if on_death_fmt_size2>on_death_fmt_size3
- #undef on_death_fmt_size
- #define on_death_fmt_size on_death_fmt_size2
- #else
- #undef on_death_fmt_size
- #define on_death_fmt_size on_death_fmt_size3
- #endif
- #if on_death_fmt_size4>on_death_fmt_size5
- #undef on_death_fmt_size
- #define on_death_fmt_size on_death_fmt_size4
- #else
- #undef on_death_fmt_size
- #define on_death_fmt_size on_death_fmt_size5
- #endif
- new string[on_death_fmt_size];
- PlayerInfo[killerid][p_kills] ++;
- if(PlayerInfo[killerid][p_member] != PlayerInfo[playerid][p_member]){
- GangInfo[g_respect][PlayerInfo[killerid][p_member]] += 1;
- GangInfo[g_respect][PlayerInfo[playerid][p_member]] -= 1;
- GameTextForPlayer(killerid,"~g~ +1 g_respect",1000,1);
- GameTextForPlayer(playerid,"~r~ -1 respect",1000,1);
- switch(PlayerInfo[killerid][p_member]){
- case 1: format(string,sizeof(string),on_death_fmt_str0, PlayerInfo[killerid][p_name]);
- case 2: format(string,sizeof(string),on_death_fmt_str1, PlayerInfo[killerid][p_name]);
- case 3: format(string,sizeof(string),on_death_fmt_str2, PlayerInfo[killerid][p_name]);
- case 4: format(string,sizeof(string),on_death_fmt_str3, PlayerInfo[killerid][p_name]);
- case 5: format(string,sizeof(string),on_death_fmt_str4, PlayerInfo[killerid][p_name]);
- }
- format(string,sizeof(string),on_death_fmt_str5,PlayerInfo[killerid][p_name]);
- SendClientMessage(playerid,0xFFFFFFFF,string);
- SetRespect(PlayerInfo[killerid][p_member],GangInfo[g_respect][PlayerInfo[killerid][p_member]]);
- SetRespect(PlayerInfo[playerid][p_member],GangInfo[g_respect][PlayerInfo[playerid][p_member]]);
- }
- return 1;
- }
- public OnPlayerText(playerid, text[]){
- static const
- on_text_fmt_str0[] = "{008000}%s: {FFFFFF}%s",
- on_text_fmt_str1[] = "{FFD700}%s: {FFFFFF}%s",
- on_text_fmt_str2[] = "{FF00FF}%s: {FFFFFF}%s",
- on_text_fmt_str3[] = "{00BFFF}%s: {FFFFFF}%s",
- on_text_fmt_str4[] = "{6A5ACD}%s: {FFFFFF}%s",
- on_text_fmt_str5[] = "{FFFFFF}[VIP] %s: %s";
- const
- on_text_fmt_size0 = sizeof(on_text_fmt_str0)-2+32-2+152,
- on_text_fmt_size1 = sizeof(on_text_fmt_str1)-2+32-2+152,
- on_text_fmt_size2 = sizeof(on_text_fmt_str2)-2+32-2+152,
- on_text_fmt_size3 = sizeof(on_text_fmt_str3)-2+32-2+152,
- on_text_fmt_size4 = sizeof(on_text_fmt_str4)-2+32-2+152,
- on_text_fmt_size5 = sizeof(on_text_fmt_str5)-2+32-2+MAX_PLAYER_NAME;
- #if on_text_fmt_size0>on_text_fmt_size1
- #define on_text_fmt_size on_text_fmt_size0
- #else
- #define on_text_fmt_size on_text_fmt_size1
- #endif
- #if on_text_fmt_size2>on_text_fmt_size3
- #undef on_text_fmt_size
- #define on_text_fmt_size on_text_fmt_size2
- #else
- #undef on_text_fmt_size
- #define on_text_fmt_size on_text_fmt_size3
- #endif
- #if on_text_fmt_size4>on_text_fmt_size5
- #undef on_text_fmt_size
- #define on_text_fmt_size on_text_fmt_size4
- #else
- #undef on_text_fmt_size
- #define on_text_fmt_size on_text_fmt_size5
- #endif
- new string[on_text_fmt_size];
- if(GetPVarInt(playerid, "Login") == 1){
- switch(PlayerInfo[playerid][p_member]){
- case 1: format(string,sizeof(string),on_text_fmt_str0, PlayerInfo[playerid][p_name], text);
- case 2: format(string,sizeof(string),on_text_fmt_str1, PlayerInfo[playerid][p_name], text);
- case 3: format(string,sizeof(string),on_text_fmt_str2, PlayerInfo[playerid][p_name], text);
- case 4: format(string,sizeof(string),on_text_fmt_str3, PlayerInfo[playerid][p_name], text);
- case 5: format(string,sizeof(string),on_text_fmt_str4, PlayerInfo[playerid][p_name], text);
- }
- SendInWorldMessage(playerid,15.0,string,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF);
- switch(PlayerInfo[playerid][p_member]){
- case 1: format(string,sizeof(string),on_text_fmt_str5,PlayerInfo[playerid][p_name],text);
- }
- SendInWorldMessage(playerid,15.0,string,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF);
- return 0;
- }
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success){
- if(success == -1) return SendClientMessage(playerid, -1, "Такой команды не существует!");
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid){
- if(pickupid == grove_interior_pickups[0]){
- if(PlayerInfo[playerid][p_member] != 1) return SendClientMessage(playerid,0xFFFFFFFF,"Доступ разрешен только членам Grove Street");
- SetPlayerPos(playerid,-41.9184,67.6980,1025.3560);
- }
- if(pickupid == vagos_interior_pickups[0]){
- if(PlayerInfo[playerid][p_member] != 2) return SendClientMessage(playerid,0xFFFFFFFF,"Доступ разрешен только членам Vagos Gang");
- SetPlayerPos(playerid,-2.4970,-120.6256,1016.8203);
- }
- if(pickupid == ballas_interior_pickups[0]){
- if(PlayerInfo[playerid][p_member] != 3) return SendClientMessage(playerid,0xFFFFFFFF,"Доступ разрешен только членам Ballas");
- SetPlayerPos(playerid,2238.2400,-1906.8358,14.9375);
- }
- if(pickupid == aztec_interior_pickups[0]){
- if(PlayerInfo[playerid][p_member] != 4) return SendClientMessage(playerid,0xFFFFFFFF,"Доступ разрешен только членам Aztec");
- SetPlayerPos(playerid,328.6852,-303.2286,1363.5259);
- }
- if(pickupid == rifa_interior_pickups[0]){
- if(PlayerInfo[playerid][p_member] != 5) return SendClientMessage(playerid,0xFFFFFFFF,"Доступ разрешен только членам Rifa");
- SetPlayerPos(playerid,365.1868,1052.3789,1947.4359);
- }
- if(pickupid == grove_interior_pickups[1]) SetPlayerPos(playerid,2486.3584,-1648.4133,14.0248);
- if(pickupid == vagos_interior_pickups[1]) SetPlayerPos(playerid,2786.3416,-1279.6971,44.3409);
- if(pickupid == ballas_interior_pickups[1]) SetPlayerPos(playerid,2234.2979,-1906.3167,14.2826);
- if(pickupid == aztec_interior_pickups[1]) SetPlayerPos(playerid,1893.3198,-2022.7792,13.5469);
- if(pickupid == rifa_interior_pickups[1]) SetPlayerPos(playerid,2784.3477,-1928.3993,13.5469);
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid) return Iter_Add(streamed_players[forplayerid],playerid);
- public OnPlayerStreamOut(playerid, forplayerid) return Iter_Remove(streamed_players[forplayerid],playerid);
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
- switch(dialogid){
- case d_login:{
- if(!response) return Kick(playerid);
- if(!strlen(inputtext))return ShowPlayerLoginDialog(playerid);
- for(new i = strlen(inputtext); i != 0; --i)
- switch(inputtext[i]){
- case 'А'..'Я', 'а'..'я', ' ': return ShowPlayerDialog(playerid,d_login,DIALOG_STYLE_MSGBOX,"{FF8C00}Ошибка!","{FFFFFF}Введенный вами пароль содержит русские буквы.\nСмените раскладку клавиатуры!","Повтор","");
- }
- static const d_login_fmt_str[] = "SELECT * FROM `accounts` WHERE `Name` = '%s' AND `Key` = '%s'";
- const d_login_fmt_size = sizeof(d_login_fmt_str)-2+MAX_PLAYER_NAME-2+15;
- new string[d_login_fmt_size];
- format(string,sizeof(string),d_login_fmt_str, PlayerInfo[playerid][p_name], inputtext);
- mysql_function_query(gw_base, string, true, "PlayerAuthorization", "d", playerid);
- return 1;
- }
- case d_register:{
- if(!response) return Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerRegistrationDialog(playerid);
- for(new i = strlen(inputtext); i != 0; --i)
- switch(inputtext[i]){
- case 'А'..'Я', 'а'..'я', ' ': return ShowPlayerDialog(playerid,d_login,DIALOG_STYLE_MSGBOX,"{FF8C00}Ошибка!","{FFFFFF}Введенный вами пароль содержит русские буквы.\nСмените раскладку клавиатуры!","Повтор","");
- }
- if(strlen(inputtext) < 6 || strlen(inputtext) > 15) return ShowPlayerDialog(playerid,d_register,DIALOG_STYLE_MSGBOX,"{C0C0C0}Ошибка!","{FF6347}Длина пароля должна быть от 6 до 15 символов!","Повтор","");
- SetPVarInt(playerid, "Registration", 1);
- static const d_reg_fmt_str[] = "INSERT INTO `accounts` (`Name`, `Key`) VALUES ('%s', '%s')";
- const d_reg_fmt_size = sizeof(d_reg_fmt_str)-2+MAX_PLAYER_NAME-2+15;
- new string[d_reg_fmt_size];
- format(string,sizeof(string),d_reg_fmt_str,PlayerInfo[playerid][p_name], inputtext);
- mysql_function_query(gw_base, string, false, "Changegang","d", playerid);
- return 1;
- }
- case d_changegang:{
- if(response){
- switch(listitem){
- case 0:{
- ChangeGang(playerid, 1, 105);
- SpawnPlayer(playerid);
- }
- case 1:{
- ChangeGang(playerid, 2, 108);
- SpawnPlayer(playerid);
- }
- case 2:{
- ChangeGang(playerid, 3, 103);
- SpawnPlayer(playerid);
- }
- case 3:{
- ChangeGang(playerid, 4, 114);
- SpawnPlayer(playerid);
- }
- case 4:{
- ChangeGang(playerid, 5, 175);
- SpawnPlayer(playerid);
- }
- }
- }
- else ShowPlayerLoginDialog(playerid);
- }
- case d_info:{
- if(!response)return 1;
- if(GetPVarInt(playerid, "Registration") == 1) Changegang(playerid);
- else return 1;
- return 1;
- }
- case d_mm:{
- if(!response) return 1;
- switch(listitem){
- case 0:{
- static const str_vip_prefixes[2][] = {
- "Не имеется",
- "Имеется"
- };
- static const d_mm_fmt_str[] = "{FFFFFF}Ваш номер аккаунта: {33AA33}%d\n{FFFFFF}Кол-во убийств: {33AA33}\t%d\n{FFFFFF}Статус VIP: {33AA33} \t\t%s";
- const d_mm_fmt_size = sizeof(d_mm_fmt_str)-2+12-2+12-2+10;
- new string[d_mm_fmt_size];
- format(string,sizeof(string),d_mm_fmt_str,PlayerInfo[playerid][p_id],PlayerInfo[playerid][p_kills],str_vip_prefixes[PlayerInfo[playerid][p_vip]-1]);
- ShowPlayerDialog(playerid,d_stats,DIALOG_STYLE_MSGBOX," ",string,"Выход","");
- }
- case 1: SendClientMessage(playerid,0xAFAFAFFF,"В разработке! Команды");
- case 2: ShowPlayerDialog(playerid,d_report,DIALOG_STYLE_INPUT," ","Введите текст жалобы.\nФорма подачи жалобы: [id] [причина]","Подать","Выход");
- case 3: SendClientMessage(playerid,0xFFFFFFFF,"Дополнительно: /donate");
- }
- }
- case d_report:{
- static const d_report_fmt_str[] = "Жалоба от %s[ID:%d]: %s";
- const d_report_fmt_size = sizeof(d_report_fmt_str)-2+MAX_PLAYER_NAME-2+4-2+144;
- new string[d_report_fmt_size];
- format(string,sizeof(string),d_report_fmt_str,PlayerInfo[playerid][p_name],playerid,inputtext);
- SendClientMessage(playerid,-1,"Ваша жалоба отправлена!");
- SendAdminMessage(PlayerInfo[playerid][p_admin],0xFF6347FF,string);
- }
- }
- return 1;
- }
- public Changegang(playerid);
- public Changegang(playerid) return ShowPlayerDialog(playerid,d_changegang,DIALOG_STYLE_LIST, "{FF8C00}Выбор группировки","Grove Street\nVagos\nBallas\nAztecas\nRifa", "Принять", "Отмена");
- public LoadingRespect();
- public LoadingRespect(){
- new
- rows,
- fields
- ;
- cache_get_data(rows,fields);
- GangInfo[g_respect][1] = cache_get_field_content_int(0, "Grove", gw_base);
- GangInfo[g_respect][2] = cache_get_field_content_int(0, "Vagos", gw_base);
- GangInfo[g_respect][3] = cache_get_field_content_int(0, "Ballas", gw_base);
- GangInfo[g_respect][4] = cache_get_field_content_int(0, "Aztecas", gw_base);
- GangInfo[g_respect][5] = cache_get_field_content_int(0, "Rifa", gw_base);
- return 1;
- }
- public PlayerAuthorization(playerid, password[]);
- public PlayerAuthorization(playerid, password[]){
- new
- rows,
- fields
- ;
- cache_get_data(rows, fields);
- if(!rows){
- SendClientMessage(playerid, 0xFFFFFFFF, "Пароль указан не верно.");
- SetPVarInt(playerid, "Badpassword", GetPVarInt(playerid, "Badpassword")+1);
- if(GetPVarInt(playerid, "Badpassword") == 3){
- SendClientMessage(playerid, 0xFFFFFFFF, "Вы были отключены от сервера за незнание пароля.");
- DeletePVar(playerid, "Badpassword");
- return Kick(playerid);
- }
- return ShowPlayerLoginDialog(playerid);
- }
- PlayerInfo[playerid][p_id] = cache_get_field_content_int(0, "id", gw_base);
- PlayerInfo[playerid][p_member] = cache_get_field_content_int(0, "Member", gw_base);
- PlayerInfo[playerid][p_skin] = cache_get_field_content_int(0, "Skin", gw_base);
- PlayerInfo[playerid][p_admin] = cache_get_field_content_int(0, "Admin", gw_base);
- PlayerInfo[playerid][p_kills] = cache_get_field_content_int(0, "Kills", gw_base);
- PlayerInfo[playerid][p_vip] = cache_get_field_content_int(0, "Vip", gw_base);
- ShowPlayerDialog(playerid,d_changegang,DIALOG_STYLE_LIST, "{FF8C00}Выбор группировки","Grove Street\nVagos\nBallas\nAztecas\nRifa", "Принять", "Отмена");
- GangInfo[g_online][PlayerInfo[playerid][p_member]] ++;
- return 1;
- }
- public CheckRegistration(playerid);
- public CheckRegistration(playerid){
- new
- rows,
- fields
- ;
- cache_get_data(rows, fields);
- if(!rows) ShowPlayerRegistrationDialog(playerid);
- else ShowPlayerLoginDialog(playerid);
- return 1;
- }
- public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ){
- if(GetPlayerState(playerid) == 2) return SetVehiclePos(GetPlayerVehicleID(playerid), fX, fY, fZ);
- else SetPlayerPosFindZ(playerid, fX, fY, fZ);
- return 1;
- }
- public KickTimer(playerid);
- public KickTimer(playerid) return fkick(playerid);
- //Команды
- CMD:gangtop(playerid,params[]){
- static const fmt_str[] = "{008000}\tWest Side Grove Street Gang\n{FFFFFF} Уважение: %i | Бандитов On-line: %i\n\n\
- \t{FFD700}Loco Low Vagos Gang\n{FFFFFF} Уважение: %i | Бандитов On-line: %i\n\n\\t{FF00FF}East Side Ballas Gang \n{FFFFFF} Уважение: %i | Бандитов On-line: %i\n\n\
- \t{00BFFF}Varios Los Aztecas Gang\n{FFFFFF} Уважение: %i | Бандитов On-line: %i\n\n\\t{6A5ACD}Idlewood Rifa Gang \n{FFFFFF} Уважение: %i | Бандитов On-line: %i\n\n";
- const fmt_size = sizeof(fmt_str)-10+200;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,
- GangInfo[g_respect][1],
- GangInfo[g_online][1],
- GangInfo[g_respect][2],
- GangInfo[g_online][2],
- GangInfo[g_respect][3],
- GangInfo[g_online][3],
- GangInfo[g_respect][4],
- GangInfo[g_online][4],
- GangInfo[g_respect][5],
- GangInfo[g_online][5])
- ;
- ShowPlayerDialog(playerid, d_info, DIALOG_STYLE_MSGBOX, "{FF8C00}Рейтинг банд",string, "Назад", "");
- return 1;
- }
- CMD:givegun(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(GetPVarInt(playerid, "Login") == 0) return 1;
- if(sscanf(params,"uii", params[0],params[1],params[2])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /givegun [playerid] [1-46] [1-1000]");
- if(GetPVarInt(params[0], "Login") == 0) return SendClientMessage(playerid, 0xAFAFAFFF, "Игрок не подключен.");
- if(params[1] > 47 || params[1] < 1) return SendClientMessage(playerid, 0xAFAFAFFF,"Неверный номер оружия.");
- else if(params[2] > 1000 || params[2] < 1) return SendClientMessage(playerid, 0xAFAFAFFF,"Кол-во патронов от 1 до 1000!");
- GivePlayerWeapon(params[0], params[1], params[2]);
- return 1;
- }
- CMD:report(playerid,params[]){
- static const fmt_str[] = "[Жалоба от %s]: %s";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+144;
- new string[fmt_size];
- if(GetPVarInt(playerid, "Login") == 0) return 1;
- if(sscanf(params,"s", params[0])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /report [text]");
- SendClientMessage(playerid,0xFFFFFFFF,"Ваша жалоба отправлена администрации!");
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_name],params[0]);
- SendAdminMessage(playerid,0xF4A460FF,string);
- return 1;
- }
- CMD:r(playerid,params[]){
- static const fmt_str[] = "[R] %s [Kills: %i]: %s";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+12-2+144;
- new string[fmt_size];
- if(sscanf(params, "s[128]",params[0])) return SendClientMessage(playerid, 0xFFFFFFFF, "Введите: /r [сообщение]");
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_name],PlayerInfo[playerid][p_kills], params[0]);
- SendRadioMessage(PlayerInfo[playerid][p_member], 0x33cc99FF, string);
- return 1;
- }
- CMD:guf(playerid,params[]){
- if(PlayerInfo[playerid][p_vip] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Вы не имеете VIP статуса.");
- SetPlayerHealth(playerid,0.0);
- SendClientMessage(playerid,0xFFFFFFFF,"Вы использовали возможность GUF.");
- return 1;
- }
- CMD:viphelp(playerid,params[]){
- if(PlayerInfo[playerid][p_vip] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Вы не имеете VIP статуса.");
- ShowPlayerDialog(playerid,d_vip,DIALOG_STYLE_MSGBOX," ","{33AA33}/guf {FFFFFF}- мгновенная смерть\n","","Закрыть");
- return 1;
- }
- CMD:makeadmin(playerid,params[]){
- static const
- cmd_make_admin_fmt_str0[] = "Вы назначили игрока %s администратором %d уровня.",
- cmd_make_admin_fmt_str1[] = "Вы назначены администратором %d уровня.";
- const
- cmd_make_admin_fmt_size0 = sizeof(cmd_make_admin_fmt_str0)-2+MAX_PLAYER_NAME-2+5,
- cmd_make_admin_fmt_size1 = sizeof(cmd_make_admin_fmt_str1)-2+MAX_PLAYER_NAME;
- #if cmd_make_admin_fmt_size0>cmd_make_admin_fmt_size1
- #define cmd_make_admin_fmt_size cmd_make_admin_fmt_size0
- #else
- #define cmd_make_admin_fmt_size cmd_make_admin_fmt_size1
- #endif
- new string[cmd_make_admin_fmt_size];
- if(PlayerInfo[playerid][p_admin] < 5) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"dd", params[0],params[1])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /makeadmin [id] [lvl (0-5)]");
- if(params[1] > 5 || params[1] < 0) return SendClientMessage(playerid,0xFFFFFFFF,"Научись уже вводить правильно! От 0 до 5!");
- PlayerInfo[params[0]][p_admin] = params[1];
- format(string,sizeof(string),cmd_make_admin_fmt_str0,PlayerInfo[params[0]][p_name],params[1]);
- SendClientMessage(playerid,0xFFFFFFFF,string);
- format(string,sizeof(string),cmd_make_admin_fmt_str1,params[1]);
- SendClientMessage(playerid,0xFFFFFFFF,string);
- SendClientMessage(playerid,0xFFFFFFFF,"Поздравляем, для получения дополнительной справки - {33AA33}/ahelp");
- return 1;
- }
- CMD:setvip(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] < 5) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"dd", params[0],params[1])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /setvip [id] [0-1] (0 - снять, 1 - выдать)");
- if(params[1] > 1 || params[1] < 0) return SendClientMessage(playerid,0xFFFFFFFF,"Научись уже вводить правильно! От 0 до 1!");
- PlayerInfo[params[0]][p_vip] = params[1];
- switch(params[1]){
- case 1: SendClientMessage(params[0],0xFFFFFFFF,"Благодарим за покупку VIP аккаунта! Подробно {33AA33}/viphelp");
- case 2: SendClientMessage(params[0],0xFFFFFFFF,"У вас сняли вип аккаунт.");
- }
- static const fmt_str[] = "Ты выдал/снял вип аккаунт у %s";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,PlayerInfo[params[0]][p_name]);
- SendClientMessage(playerid,0xFFFFFFFF,string);
- return 1;
- }
- CMD:meadmin(playerid,params[]) return PlayerInfo[playerid][p_admin] = 5;
- CMD:ao(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"s", params[0])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /ao [text]");
- static const fmt_str[] = "[SERVER] %s: %s";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+144;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_name],params[0]);
- SendClientMessageToAll(0xFFFF00AA,string);
- return 1;
- }
- CMD:a(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params, "s[128]",params[0])) return SendClientMessage(playerid, 0xFFFFFFFF, "Введите: /a [сообщение]");
- static const fmt_str[] = "[A-CHAT] [%d уровень] %s: %s";
- const fmt_size = sizeof(fmt_str)-2+12-2+MAX_PLAYER_NAME-2+144;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_admin],PlayerInfo[playerid][p_name],params[0]);
- SendAdminMessage(PlayerInfo[playerid][p_admin], 0xFFFFFBB, string);
- return 1;
- }
- CMD:ahelp(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- ShowPlayerDialog(playerid,d_ahelp,DIALOG_STYLE_MSGBOX," ", "{FFFFFF}TM - первый уровень.\n{33AA33}/ao [text] {FFFFFF} - сказать в общий чат.\n{33AA33}/a [text] -{FFFFFF}сказать в админ чат.\n\nM - второй\nКоманды.\n\nA - третьий\n{33AA33}/givegun [id] [gun id] [pt]{FFFFFF} - выдать оружие\n\nSA - четвертый\nКоманды.","close","");
- return 1;
- }
- CMD:kick(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] < 2) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"ds", params[0],params[1])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /kick [id] [причина]");
- static const fmt_str[] = "[SERVER] Администратор %s кикнул игрока %s. Причина: %s";
- const fmt_size = sizeof(fmt_str)-2+MAX_PLAYER_NAME-2+MAX_PLAYER_NAME-2+144;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_name],PlayerInfo[params[0]][p_name],params[1]);
- SendClientMessageToAll(0xF4A460FF,string);
- fkick(params[0]);
- return 1;
- }
- CMD:skick(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] < 4) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"d", params[0])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /skick [id]");
- fkick(params[0]);
- return 1;
- }
- CMD:myahelp(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] < 5) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- ShowPlayerDialog(playerid,d_myahelp,DIALOG_STYLE_MSGBOX,"","{FFFFFF}Список команд для нас.\n\n{33AA33}/setvip [id] [0-1] {FFFFFF}- выдать вип аккаунт.\n{33AA33}/makeadmin [id] [0-5] -{FFFFFF}выдать админку. ","Ясно","Понятно");
- return 1;
- }
- CMD:setpos(playerid,params[]){
- if(PlayerInfo[playerid][p_admin] < 2) return SendClientMessage(playerid,0xFFFFFFFF,"{33AA33}[Info] {FFFFFF}Нет доступа для продолжения.");
- if(sscanf(params,"ddd", params[0],params[1],params[2])) return SendClientMessage(playerid, 0xFFFFFFFF,"Введите: /setpos [x] [y] [z]");
- SetPlayerPos(playerid,params[0],params[1],params[2]);
- return 1;
- }
- CMD:mn(playerid,params[]) return ShowPlayerDialog(playerid,d_mm,DIALOG_STYLE_LIST," ","[1] Статистика аккаунта\n[2] Помощь по командам\n[3] Связь с администрацией\n[4] Дополнительно","Далее","Выход");
- //Функции
- loadpickup(){
- grove_interior_pickups[0] = CreatePickup(19,1318,2486.5015,-1644.5315,14.0772, 0);
- grove_interior_pickups[1] = CreatePickup(19,1318,-40.2580,71.1498,1025.3560, 0);
- vagos_interior_pickups[0] = CreatePickup(19,1318,2782.1538,-1281.1890,44.3724, 0);
- vagos_interior_pickups[1] = CreatePickup(19,1318,1.5389,-120.6665,1016.8136, 0);
- ballas_interior_pickups[0] = CreatePickup(19,1318,2238.2400,-1906.8358,14.9375, 0);
- ballas_interior_pickups[1] = CreatePickup(19,1318,248.5050,-38.7322,1104.4683, 0);
- aztec_interior_pickups[0] = CreatePickup(19,1318,1895.5326,-2019.6208,13.5469, 0);
- aztec_interior_pickups[1] = CreatePickup(19,1318,328.8775,-299.7524,1363.5259, 0);
- rifa_interior_pickups[0] = CreatePickup(19,1318,2787.0764,-1926.0670,13.5469, 0);
- rifa_interior_pickups[1] = CreatePickup(19,1318,364.9360,1055.8188,1947.4359, 0);
- }
- fkick(playerid, times = 100){
- if(GetPVarInt(playerid, "Kick") == -1) Kick(playerid);
- else if(!GetPVarInt(playerid, "Kick")) SetPVarInt(playerid, "Kick", SetTimerEx("KickTimer", times, 0, "d", playerid));
- else{
- KillTimer(GetPVarInt(playerid, "Kick"));
- SetPVarInt(playerid, "Kick", -1);
- Kick(playerid);
- }
- return 1;
- }
- loadobject(){
- #include <objects>
- }
- ShowPlayerLoginDialog(playerid){
- static const fmt_str[] = "{FFFFFF}Добро пожаловать на {269BD8}Pro Pawn Gang War{FFFFFF}{FFFFFF}Аккаунт зарегистрирован, введите пароль ниже{FFFFFF}Ваше имя: {FF8C00}%s{FFFFFF}Ваш пинг: {FF8C00}%i";
- const fmt_size = sizeof(fmt_str)-2+64-2+12;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,PlayerInfo[playerid][p_name], GetPlayerPing(playerid));
- ShowPlayerDialog(playerid,d_login,DIALOG_STYLE_INPUT,"{FF8C00}Авторизация",string,"Далее","Отмена");
- return 1;
- }
- ShowPlayerRegistrationDialog(playerid){
- static const fmt_str[] = "{FFFFFF}Добро пожаловать на {269BD8}Pro Pawn Gang War{FFFFFF}{FFFFFF}Введите пароль ниже, чтобы зарегистрировать аккаунт{FFFFFF}Ваше имя: {FF8C00}%s{FFFFFF}Ваш пинг: {FF8C00}%i";
- const fmt_size = sizeof(fmt_str)-2+64-2+12;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str, PlayerInfo[playerid][p_name], GetPlayerPing(playerid));
- ShowPlayerDialog(playerid,d_register,DIALOG_STYLE_INPUT,"{FF8C00}Регистрация",string,"Далее","Отмена");
- return 1;
- }
- ChangeGang(i, gang, model){
- PlayerInfo[i][p_member] = gang;
- PlayerInfo[i][p_skin] = model;
- GangInfo[g_online][PlayerInfo[i][p_member]] ++;
- SetPlayerSkin(i, model);
- SpawnPlayer(i);
- DeletePVar(i, "Registration");
- return 1;
- }
- SavePlayer(playerid){
- static const fmt_str[] = "UPDATE accounts SET `Member` = '%i',`Skin` = '%i',`Admin` = '%d',`Kills` = '%i',`Vip` = '%i' WHERE `Name` = '%s'";
- const fmt_size = sizeof(fmt_str)-2+1-2+3-2+12-2+12-2+1-2+MAX_PLAYER_NAME;
- new string[fmt_size];
- format(string,sizeof(string),fmt_str,
- PlayerInfo[playerid][p_member],
- PlayerInfo[playerid][p_skin],
- PlayerInfo[playerid][p_admin],
- PlayerInfo[playerid][p_kills],
- PlayerInfo[playerid][p_vip],
- PlayerInfo[playerid][p_name])
- ;
- mysql_query(gw_base,string,true);
- return 1;
- }
- SendRadioMessage(member, color, string[])
- foreach(Player, i)
- if(PlayerInfo[i][p_member] == member) SendClientMessage(i, color, string);
- SendAdminMessage(admin, color, string[])
- foreach(Player, i)
- if(PlayerInfo[i][p_admin] == admin) SendClientMessage(i, color, string);
- SendInWorldMessage(playerid,Float:max_radius,text[],color1,color2,color3){
- new
- Float:px,
- Float:py,
- Float:pz
- ;
- GetPlayerPos(playerid,px,py,pz);
- SendClientMessage(playerid,color1,text);
- if(Iter_Count(streamed_players[playerid]) == 0) return 1;
- foreach(streamed_players[playerid],i){
- if(IsPlayerInRangeOfPoint(i,max_radius,px,py,pz)){
- if(GetPlayerDistanceFromPoint(i,px,py,pz) >= 0.0 && GetPlayerDistanceFromPoint(i,px,py,pz) < max_radius/3)
- SendClientMessage(i,color1,text);
- if(GetPlayerDistanceFromPoint(i,px,py,pz) >= max_radius/3 && GetPlayerDistanceFromPoint(i,px,py,pz) < max_radius/3*2)
- SendClientMessage(i,color2,text);
- if(GetPlayerDistanceFromPoint(i,px,py,pz) >= max_radius/3*2 && GetPlayerDistanceFromPoint(i,px,py,pz) <= max_radius)
- SendClientMessage(i,color3,text);
- }
- }
- return 1;
- }
- SetRespect(idx, value){
- static const
- set_respect_fmt_str0[] = "UPDATE respect SET Grove = '%d' LIMIT 1",
- set_respect_fmt_str1[] = "UPDATE respect SET Vagos = '%d' LIMIT 1",
- set_respect_fmt_str2[] = "UPDATE respect SET Ballas = '%d' LIMIT 1",
- set_respect_fmt_str3[] = "UPDATE respect SET Aztecas = '%d' LIMIT 1",
- set_respect_fmt_str4[] = "UPDATE respect SET Rifa = '%d' LIMIT 1";
- const
- set_respect_fmt_size0 = sizeof(set_respect_fmt_str0)-2+12,
- set_respect_fmt_size1 = sizeof(set_respect_fmt_str1)-2+12,
- set_respect_fmt_size2 = sizeof(set_respect_fmt_str2)-2+12,
- set_respect_fmt_size3 = sizeof(set_respect_fmt_str3)-2+12,
- set_respect_fmt_size4 = sizeof(set_respect_fmt_str4)-2+12;
- #if set_respect_fmt_size0>set_respect_fmt_size1
- #define set_respect_fmt_size set_respect_fmt_size0
- #else
- #define set_respect_fmt_size set_respect_fmt_size1
- #endif
- #if set_respect_fmt_size2>set_respect_fmt_size3
- #undef set_respect_fmt_size
- #define set_respect_fmt_size set_respect_fmt_size2
- #else
- #undef set_respect_fmt_size
- #define set_respect_fmt_size set_respect_fmt_size3
- #endif
- #if set_respect_fmt_size4>set_respect_fmt_size
- #undef set_respect_fmt_size
- #define set_respect_fmt_size set_respect_fmt_size4
- #endif
- new string[set_respect_fmt_size];
- switch(idx){
- case 1: format(string,sizeof(string),set_respect_fmt_str0, value);
- case 2: format(string,sizeof(string),set_respect_fmt_str1, value);
- case 3: format(string,sizeof(string),set_respect_fmt_str2, value);
- case 4: format(string,sizeof(string),set_respect_fmt_str3, value);
- case 5: format(string,sizeof(string),set_respect_fmt_str4, value);
- }
- mysql_query(gw_base,string,true);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement