Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Reborn Project Sniper Madness
- Реализация основы: CL1FF (Clifford Sanders)
- Реализация текущей версии: DeimoS
- Основано на версии от Sonic X
- Ссылка на оригинальную тему:
- http://pawn-wiki.ru/index.php?/topic/48264-sniper-madness/
- */
- #include <a_samp>
- #include <mxINI>
- #include <sscanf2>
- #if !defined FLOAT_INFINITY
- const Float:FLOAT_INFINITY = Float:0x7F800000;
- #endif
- const MAX_SERVER_NAME = 15;
- const MAX_GAMEMODE_NAME = 20;
- enum e_SERVER_INFO
- {
- sinfo_ServerName[MAX_SERVER_NAME],
- sinfo_GameModeName[MAX_GAMEMODE_NAME]
- };
- new ServerInfo[e_SERVER_INFO] =
- {
- "Sniper Madness",
- "SM:Deathmatch R-3.0"
- };
- new const ACCOUNT_FILE_PATCH[] = "players/%s.txt";
- /*
- ==== Карты
- */
- const INVALID_MAP_ID = -1;
- enum _:e_MAP_LIST
- {
- MAP_KACC
- //MAP_
- };
- const MAX_MAP_NAME = 8;
- new MapName[e_MAP_LIST][] =
- {
- "K.A.C.C"
- };
- const MAX_MAPS = sizeof(MapName);
- enum e_SPAWN_POS
- {
- Float:spawn_PosX,
- Float:spawn_PosY,
- Float:spawn_PosZ
- };
- new Float:mapSpawnPos[e_MAP_LIST][][e_SPAWN_POS] =
- {
- {
- {2590.00000, 2790.50000, 9.81350},
- {2525.00000, 2753.19995, 9.81290},
- {2525.00000, 2818.00000, 9.81600},
- {2546.00000, 2841.00000, 9.81780},
- {2555.00000, 2805.30005, 9.81810},
- {2610.00000, 2849.00000, 9.81770},
- {2610.00000, 2810.00000, 9.81560},
- {2627.00000, 2841.00000, 9.81790},
- {2600.00000, 2800.69995, 9.81920},
- {2630.00000, 2804.00000, 9.81760},
- {2650.00000, 2735.00000, 9.81740},
- {2655.00000, 2740.00000, 18.31350},
- {2618.50000, 2768.00000, 22.81450},
- {2643.00000, 2710.00000, 24.81600},
- {2610.00000, 2720.00000, 35.52430},
- {2600.00000, 2720.00000, 24.81410},
- {2643.00000, 2775.00000, 22.81240},
- {2600.00000, 2815.00000, 26.80170},
- {2650.00000, 2815.00000, 35.31420},
- {2658.13110, 2661.40527, 37.07470},
- {2594.80396, 2640.78027, 79.25670},
- {2631.91162, 2835.06592, 93.00880},
- {2721.13062, 2774.64648, 73.82352},
- {2691.95605, 2785.35449, 60.78416},
- {2729.30054, 2686.41992, 60.77659},
- {2570.00000, 2704.00000, 21.93540}
- }
- };
- /*
- ====
- */
- #define MAX_PASSWORD_ATTEMPT 3
- const SKIN_MAN = 125;
- const SKIN_WOMAN = 90;
- const PLAYER_WEATHER = 9;
- const PLAYER_TIME = 10;
- const Float:DAMAGE_DEAGLE = 50.0;
- const Float:DAMAGE_SNIPER = 100.0;
- const Float:SPAWNED_DISTANCE = 20.0;
- const SPAWNED_TIME = 3000;
- const INTERVAL_SPAWN = 3000;
- /*
- ==== Диалоги
- */
- enum
- {
- dRegister_Rules,
- dRegister_Gender,
- dRegister_InputPass,
- dRegister_AcceptPass,
- dLogin,
- dMapList
- };
- enum _:e_PLAYER_ACHIEVEMENTS
- {
- bool:achFirstKill,
- bool:achUltraKill
- /*
- bool:,
- bool:,
- bool:,
- ...
- */
- }
- const MIN_PLAYER_PASSWORD = 3;
- const MAX_PLAYER_PASSWORD = 32;
- enum e_PLAYER_INFO
- {
- pPassword[MAX_PLAYER_PASSWORD+1],
- pName[MAX_PLAYER_NAME],
- pKills,
- pDeaths,
- pGender,
- pAdmin,
- pVip,
- pBan,
- pMap,
- Float:pHealth,
- pAchievement[e_PLAYER_ACHIEVEMENTS]
- };
- new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
- new const NULL_pInfo[e_PLAYER_INFO] =
- {
- "", // pPassword
- "", // pName
- 0, // pKills
- 0, // pDeaths
- 0, // pGender
- 0, // pAdmin
- 0, // pVip
- 0, // pBan
- INVALID_MAP_ID, // pMap
- 0.0, // pHealth
- {0, 0} // pAchievement
- };
- #define pNick(%0) pInfo[%0][pName]
- new bool:PlayerAuthorized[MAX_PLAYERS char];
- stock IsPlayerAuthorized(playerid)
- {
- return (PlayerAuthorized{playerid});
- }
- const INVALID_DIALOG_ID = -1;
- new PlayerDialogShown[MAX_PLAYERS];
- stock ac_ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])
- {
- PlayerDialogShown[playerid] = dialogid;
- return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
- }
- #if defined _ALS_ShowPlayerDialog
- #undef ShowPlayerDialog
- #else
- #define _ALS_ShowPlayerDialog
- #endif
- #define ShowPlayerDialog ac_ShowPlayerDialog
- stock ac_SetPlayerHealth(playerid, Float:health)
- {
- pInfo[playerid][pHealth] = health;
- return SetPlayerHealth(playerid, health);
- }
- #if defined _ALS_SetPlayerHealth
- #undef SetPlayerHealth
- #else
- #define _ALS_SetPlayerHealth
- #endif
- #define SetPlayerHealth ac_SetPlayerHealth
- new pVar__AccountLogin_WrongPass[] = "pVar__AccountLogin_WrongPass";
- new Text:tdServerName;
- main(){}
- public OnGameModeInit()
- {
- SetGameModeText(ServerInfo[sinfo_GameModeName]);
- EnableStuntBonusForAll(false);
- DisableInteriorEnterExits();
- UsePlayerPedAnims();
- ShowPlayerMarkers(0);
- ShowNameTags(false);
- CreateTD__Logo();
- return 1;
- }
- new bool:PlayerSkipSkinSelect[MAX_PLAYERS char];
- new PlayerSkipSkinSelectF4Bug[MAX_PLAYERS char];
- public OnPlayerConnect(playerid)
- {
- PlayerSkipSkinSelect{playerid} = true;
- TogglePlayerSpectating(playerid, true);
- TextDrawShowForPlayer(playerid, tdServerName);
- SetPlayerVirtualWorld(playerid, 1);
- SetWeather(PLAYER_WEATHER);
- SetWorldTime(PLAYER_TIME);
- PlayerDialogShown[playerid] = INVALID_DIALOG_ID;
- GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
- FindPlayerAccount(playerid);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetSpawnInfo(playerid, 111, 0, 2026.1704, 1343.6394, 10.8203, 266.7928, 24, 330, 0, 0, 0, 0);
- if(!PlayerSkipSkinSelect{playerid})
- {
- if(PlayerSkipSkinSelectF4Bug{playerid})
- {
- PlayerSkipSkinSelectF4Bug{playerid} = 0;
- return SpawnPlayer(playerid);
- }
- TogglePlayerSpectating(playerid, true);
- SetTimerEx("@__SkipSKinSelect_SpecOff", 500, 0, "i", playerid);
- }
- else
- {
- PlayerSkipSkinSelect{playerid} = false;
- SpawnPlayer(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayerAccount(playerid);
- static const disconnect_reasons[3][13] =
- {
- "потеря связи",
- "выход",
- "кик/бан"
- };
- new string[31+MAX_PLAYER_NAME+11+13+sizeof(disconnect_reasons[])+1];
- format(string, sizeof(string), "%s [ID: %d] %s от сервера. Причина: %s.",
- pNick(playerid), playerid,
- (IsPlayerMale(playerid) ? ("отсоединился") : ("отсоединилась")),
- disconnect_reasons[reason]);
- SendClientMessageToAll(0xFFFFFFFF, string);
- ClearPlayerData(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- ResetPlayerMoney(playerid);
- SetPlayerSkin(playerid, (pInfo[playerid][pGender] == 'М' ? SKIN_WOMAN : SKIN_MAN));
- SetPlayerHealth(playerid, FLOAT_INFINITY);
- new map_id = pInfo[playerid][pMap];
- if(map_id != -1)
- {
- new rand = random(sizeof(mapSpawnPos[]));
- SetPlayerPos(playerid,
- mapSpawnPos[map_id][rand][spawn_PosX],
- mapSpawnPos[map_id][rand][spawn_PosY],
- mapSpawnPos[map_id][rand][spawn_PosZ]);
- }
- SetPlayerChatBubble(playerid, "SPAWNED", 0xFF0000FF, SPAWNED_DISTANCE, SPAWNED_TIME);
- SetTimerEx("@__AntiSpawnKillDisable", SPAWNED_TIME, false, "i", playerid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- SetPlayerScore(playerid, GetPlayerScore(playerid) - 1);
- pInfo[playerid][pDeaths]++;
- if(pInfo[playerid][pVip])
- SpawnPlayer(playerid);
- else
- {
- TogglePlayerSpectating(playerid, true);
- SetTimerEx("@__KillCamDisable", INTERVAL_SPAWN, false, "i", playerid);
- }
- if(killerid == INVALID_PLAYER_ID)
- return 1;
- if(!pInfo[playerid][pVip])
- PlayerSpectatePlayer(playerid, killerid);
- SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
- pInfo[killerid][pKills]++;
- if(!pInfo[killerid][pAchievement][achFirstKill])
- pInfo[killerid][pAchievement][achFirstKill] = true;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(!IsPlayerAuthorized(playerid))
- return 0;
- static message_string[144+1];
- format(message_string, sizeof(message_string), "%s [%i]: {FFFFFF}%s", pNick(playerid), playerid, text);
- if(pInfo[playerid][pAdmin])
- SendClientMessageToAll(0xFF0000FF, message_string);
- else if(pInfo[playerid][pVip])
- SendClientMessageToAll(0xFFA500FF, message_string);
- else
- SendClientMessageToAll(0xFFFFFFFF, message_string);
- return 0;
- }
- public OnPlayerUpdate(playerid)
- {
- if(pInfo[playerid][pMap] != INVALID_MAP_ID)
- {
- static object_slot_0;
- static object_slot_1;
- object_slot_0 = IsPlayerAttachedObjectSlotUsed(playerid, 0);
- object_slot_1 = IsPlayerAttachedObjectSlotUsed(playerid, 1);
- switch(GetPlayerWeapon(playerid))
- {
- case WEAPON_DEAGLE:
- {
- if(!object_slot_0)
- SetPlayerAttachedObject(playerid, 0, 358, 1, 0.199999, -0.139999, 0.050000, 0.500007, -135.000000, 0.000000);
- if(object_slot_1)
- RemovePlayerAttachedObject(playerid, 1);
- }
- case WEAPON_SNIPER:
- {
- if(object_slot_0)
- RemovePlayerAttachedObject(playerid, 0);
- if(!object_slot_1)
- SetPlayerAttachedObject(playerid, 1, 348, 8, -0.079999, -0.039999, 0.109999, -90.100006, 0.000000, 0.000000);
- }
- default:
- {
- if(!object_slot_0)
- SetPlayerAttachedObject(playerid, 0, 358, 1, 0.199999, -0.139999, 0.050000, 0.500007, -135.000000, 0.000000);
- if(!object_slot_1)
- SetPlayerAttachedObject(playerid, 1, 348, 8, -0.079999, -0.039999, 0.109999, -90.100006, 0.000000, 0.000000);
- }
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys & KEY_YES)
- {
- if(pInfo[playerid][pMap] != INVALID_MAP_ID)
- {
- StopPlayerGame(playerid);
- }
- }
- return 1;
- }
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- if(hittype == BULLET_HIT_TYPE_PLAYER)
- {
- if(pInfo[hitid][pHealth] != FLOAT_INFINITY)
- {
- new Float:health;
- GetPlayerHealth(hitid, health);
- if(health > pInfo[hitid][pHealth])
- health = pInfo[hitid][pHealth];
- switch (weaponid)
- {
- case WEAPON_DEAGLE:
- {
- health -= DAMAGE_DEAGLE;
- }
- case WEAPON_SNIPER:
- {
- health -= DAMAGE_SNIPER;
- }
- }
- SetPlayerHealth(hitid, health);
- }
- return 0;
- }
- return 1;
- }
- stock FindPlayerAccount(playerid)
- {
- new file_patch[sizeof(ACCOUNT_FILE_PATCH)-2+MAX_PLAYER_NAME+1];
- format(file_patch, sizeof(file_patch), ACCOUNT_FILE_PATCH, pNick(playerid));
- if(!fexist(file_patch))
- {
- ShowAccountSystemDialog(playerid, dRegister_Rules);
- }
- else
- {
- LoadPlayerAccount(playerid);
- if(pInfo[playerid][pBan])
- return Kick(playerid);
- ShowAccountSystemDialog(playerid, dLogin);
- }
- return 1;
- }
- stock CreatePlayerAccount(playerid)
- {
- new file_patch[sizeof(ACCOUNT_FILE_PATCH)-2+MAX_PLAYER_NAME+1];
- format(file_patch, sizeof(file_patch), ACCOUNT_FILE_PATCH, pNick(playerid));
- printf("%s", file_patch);
- new file = ini_createFile(file_patch);
- if(file >= 0)
- {
- ini_setString(file, "password", pInfo[playerid][pPassword]);
- ini_setInteger(file, "gender", pInfo[playerid][pGender]);
- ini_setInteger(file, "admin", pInfo[playerid][pAdmin]);
- ini_setInteger(file, "kills", pInfo[playerid][pKills]);
- ini_setInteger(file, "death", pInfo[playerid][pDeaths]);
- ini_setInteger(file, "vip", pInfo[playerid][pVip]);
- ini_setInteger(file, "ban", pInfo[playerid][pBan]);
- ini_setInteger(file, "ach__first_kill", pInfo[playerid][pAchievement][achFirstKill]);
- ini_setInteger(file, "ach__ultra_kill", pInfo[playerid][pAchievement][achUltraKill]);
- ini_closeFile(file);
- }
- }
- stock LoadPlayerAccount(playerid)
- {
- new file_patch[sizeof(ACCOUNT_FILE_PATCH)-2+MAX_PLAYER_NAME+1];
- format(file_patch, sizeof(file_patch), ACCOUNT_FILE_PATCH, pNick(playerid));
- new file = ini_openFile(file_patch);
- if(file >= 0)
- {
- ini_getString(file, "password", pInfo[playerid][pPassword], MAX_PLAYER_PASSWORD);
- ini_getInteger(file, "gender", pInfo[playerid][pGender]);
- ini_getInteger(file, "admin", pInfo[playerid][pAdmin]);
- ini_getInteger(file, "kills", pInfo[playerid][pKills]);
- ini_getInteger(file, "death", pInfo[playerid][pDeaths]);
- ini_getInteger(file, "vip", pInfo[playerid][pVip]);
- ini_getInteger(file, "ban", pInfo[playerid][pBan]);
- ini_getInteger(file, "ach__first_kill", pInfo[playerid][pAchievement][achFirstKill]);
- ini_getInteger(file, "ach__ultra_kill", pInfo[playerid][pAchievement][achUltraKill]);
- ini_closeFile(file);
- }
- }
- stock SavePlayerAccount(playerid)
- {
- new file_patch[sizeof(ACCOUNT_FILE_PATCH)-2+MAX_PLAYER_NAME+1];
- format(file_patch, sizeof(file_patch), ACCOUNT_FILE_PATCH, pNick(playerid));
- new file = ini_openFile(file_patch);
- if(file >= 0)
- {
- ini_setString(file, "password", pInfo[playerid][pPassword]);
- ini_setInteger(file, "gender", pInfo[playerid][pGender]);
- ini_setInteger(file, "admin", pInfo[playerid][pAdmin]);
- ini_setInteger(file, "kills", pInfo[playerid][pKills]);
- ini_setInteger(file, "death", pInfo[playerid][pDeaths]);
- ini_setInteger(file, "vip", pInfo[playerid][pVip]);
- ini_setInteger(file, "ban", pInfo[playerid][pBan]);
- ini_setInteger(file, "ach__first_kill", pInfo[playerid][pAchievement][achFirstKill]);
- ini_setInteger(file, "ach__ultra_kill", pInfo[playerid][pAchievement][achUltraKill]);
- ini_closeFile(file);
- }
- }
- stock ClearPlayerData(playerid)
- {
- pInfo[playerid] = NULL_pInfo;
- PlayerAuthorized{playerid} = false;
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(PlayerDialogShown[playerid] != dialogid)
- return 1;
- PlayerDialogShown[playerid] = INVALID_DIALOG_ID;
- switch(dialogid)
- {
- case dRegister_Rules:
- {
- if(!response)
- {
- Kick(playerid);
- return 1;
- }
- ShowAccountSystemDialog(playerid, dRegister_Gender);
- return 1;
- }
- case dRegister_Gender:
- {
- if(!response)
- {
- ShowAccountSystemDialog(playerid, dRegister_Rules);
- return 1;
- }
- if(!listitem)
- {
- pInfo[playerid][pGender] = 'М';
- SendClientMessage(playerid, -1, "Вы выбрали мужский пол.");
- }
- else
- {
- pInfo[playerid][pGender] = 'Ж';
- SendClientMessage(playerid, -1, "Вы выбрали женский пол.");
- }
- ShowAccountSystemDialog(playerid, dRegister_InputPass);
- return 1;
- }
- case dRegister_InputPass:
- {
- if(!response)
- {
- ShowAccountSystemDialog(playerid, dRegister_Gender);
- return 1;
- }
- new len = strlen(inputtext);
- if(!len)
- {
- ShowAccountSystemDialog(playerid, dRegister_InputPass);
- return 1;
- }
- if(len < MIN_PLAYER_PASSWORD)
- {
- ShowAccountSystemDialog(playerid, dRegister_InputPass);
- SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Минимальная длина пароля: "#MIN_PLAYER_PASSWORD"!");
- return 1;
- }
- if(len > MAX_PLAYER_PASSWORD)
- {
- ShowAccountSystemDialog(playerid, dRegister_InputPass);
- SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Максимальная длина пароля: "#MAX_PLAYER_PASSWORD"!");
- return 1;
- }
- pInfo[playerid][pPassword][0] = '\0';
- strcat(pInfo[playerid][pPassword], inputtext, MAX_PLAYER_PASSWORD);
- ShowAccountSystemDialog(playerid, dRegister_AcceptPass);
- return 1;
- }
- case dRegister_AcceptPass:
- {
- if(!response)
- {
- ShowAccountSystemDialog(playerid, dRegister_InputPass);
- return 1;
- }
- new len = strlen(inputtext);
- if(!len)
- {
- ShowAccountSystemDialog(playerid, dRegister_AcceptPass);
- return 1;
- }
- if(strcmp(pInfo[playerid][pPassword], inputtext, false, MAX_PLAYER_PASSWORD))
- {
- ShowAccountSystemDialog(playerid, dRegister_AcceptPass);
- SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Пароли не совпадают!");
- return 1;
- }
- CreatePlayerAccount(playerid);
- PlayerAuthorized{playerid} = true;
- new string[19+MAX_PLAYER_NAME+11+14+1];
- format(string, sizeof(string), "%s [ID: %d] %s к серверу.",
- pNick(playerid), playerid,
- (IsPlayerMale(playerid) ? ("присоединился") : ("присоединилась")));
- SendClientMessageToAll(-1, string);
- SendClientMessage(playerid, -1, "Регистрация прошла успешно!");
- ShowMapListDialog(playerid);
- return 1;
- }
- case dMapList:
- {
- if(!response)
- {
- ShowMapListDialog(playerid);
- return 1;
- }
- pInfo[playerid][pMap] = listitem;
- TogglePlayerSpectating(playerid, false);
- StartPlayerGame(playerid);
- return 1;
- }
- case dLogin:
- {
- if(!response)
- {
- Kick(playerid);
- return 1;
- }
- if(!strlen(inputtext))
- {
- ShowAccountSystemDialog(playerid, dLogin);
- return 1;
- }
- if(strcmp(pInfo[playerid][pPassword], inputtext, false, MAX_PLAYER_PASSWORD))
- {
- new attempt = GetPVarInt(playerid, pVar__AccountLogin_WrongPass)+1;
- if(attempt < MAX_PASSWORD_ATTEMPT)
- {
- SendClientMessage(playerid, 0xFF0000FF, "Ошибка: {FFFFFF}Пароль набран не правильно. Вы будете кикнуты после "#MAX_PASSWORD_ATTEMPT" попыток!");
- ShowAccountSystemDialog(playerid, dLogin);
- SetPVarInt(playerid, pVar__AccountLogin_WrongPass, attempt);
- return 1;
- }
- Kick(playerid);
- return 1;
- }
- DeletePVar(playerid, pVar__AccountLogin_WrongPass);
- new string[19+MAX_PLAYER_NAME+11+14+1];
- format(string, sizeof(string), "%s [ID: %d] %s к серверу.",
- pNick(playerid), playerid,
- (IsPlayerMale(playerid) ? ("присоединился") : ("присоединилась")));
- if(pInfo[playerid][pAdmin])
- {
- SetPlayerColor(playerid, -1);
- SendClientMessageToAll(0xFF0000FF, string);
- }
- else
- {
- if(pInfo[playerid][pVip])
- {
- SetPlayerColor(playerid, 0xFFA500FF);
- SendClientMessageToAll(0xFFA500FF, string);
- }
- else
- {
- SetPlayerColor(playerid, 0xFFFFFFFF);
- SendClientMessageToAll(0xFFFFFFFF, string);
- }
- }
- PlayerAuthorized{playerid} = true;
- ShowMapListDialog(playerid);
- return 1;
- }
- }
- return 1;
- }
- stock ShowAccountSystemDialog(playerid, dialogid)
- {
- switch(dialogid)
- {
- case dRegister_Rules:
- {
- new dialog_header[15+MAX_SERVER_NAME+1];
- format(dialog_header, sizeof(dialog_header), "Регистрация на %s", ServerInfo[sinfo_ServerName]);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_MSGBOX, dialog_header,
- "{FFFFFF}\
- Правила игры на сервере:\n\
- \n\
- 1) Не убивай.\n\
- 2) Не прелюбодействуй.\n\
- 3) Не кради.\n\
- 4) Не произноси ложного свидетельства на ближнего твоего.\
- ",
- "Далее", "Выйти");
- }
- case dRegister_Gender:
- {
- new dialog_header[15+MAX_SERVER_NAME+1];
- format(dialog_header, sizeof(dialog_header), "Регистрация на %s", ServerInfo[sinfo_ServerName]);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_TABLIST_HEADERS, dialog_header,
- "{FFFFFF}\
- Укажите пол вашего персонажа:\n\
- • Мужчина\n\
- • Женщина\
- ",
- "Далее", "Назад");
- }
- case dRegister_InputPass:
- {
- new dialog_header[15+MAX_SERVER_NAME+1];
- format(dialog_header, sizeof(dialog_header), "Регистрация на %s", ServerInfo[sinfo_ServerName]);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, dialog_header,
- "{FFFFFF}\
- Придумайте пароль для последующего входа в аккаунт и введите его в поле:\
- ",
- "Далее", "Назад");
- }
- case dRegister_AcceptPass:
- {
- new dialog_header[15+MAX_SERVER_NAME+1];
- format(dialog_header, sizeof(dialog_header), "Регистрация на %s", ServerInfo[sinfo_ServerName]);
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_INPUT, dialog_header,
- "{FFFFFF}\
- Подтвердите введённый ранее пароль:\
- ",
- "Далее", "Назад");
- }
- case dLogin:
- {
- new dialog_string[(55+MAX_PLAYER_NAME)+61+1];
- format(dialog_string, sizeof(dialog_string),
- "\
- {FFFFFF}Аккаунт с ником %s найден в базе данных сервера.\n\
- Для дальнейшего входа введите пароль от аккаунта в окно ниже:\
- ", pNick(playerid));
- ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_PASSWORD, "Авторизация",
- dialog_string,
- "Принять", "Выход");
- }
- }
- }
- stock ShowMapListDialog(playerid)
- {
- new dialog_string[8+((MAX_MAP_NAME+1)*MAX_MAPS)+1] = "{FFFFFF}";
- for(new i; i < MAX_MAPS; i++)
- {
- format(dialog_string, sizeof(dialog_string), "%s%s\n", dialog_string, MapName[i]);
- }
- ShowPlayerDialog(playerid, dMapList, DIALOG_STYLE_LIST, "{FFFFFF}Список карт", dialog_string, "Выбрать", "");
- return 1;
- }
- stock StartPlayerGame(playerid)
- {
- SendClientMessage(playerid, -1, "");
- SendClientMessage(playerid, -1, "> Игра началась!");
- SendClientMessage(playerid, -1, "> Чтобы сменить карту, нажмите 'Y'");
- SetPlayerVirtualWorld(playerid, 0);
- OnPlayerSpawn(playerid);
- return 1;
- }
- stock StopPlayerGame(playerid)
- {
- pInfo[playerid][pMap] = INVALID_MAP_ID;
- SetPlayerHealth(playerid, FLOAT_INFINITY);
- SetPlayerChatBubble(playerid, "SPAWNED", 0xFF0000FF, SPAWNED_DISTANCE, SPAWNED_TIME);
- ResetPlayerWeapons(playerid);
- if(!IsPlayerAttachedObjectSlotUsed(playerid, 0))
- SetPlayerAttachedObject(playerid, 0, 358, 1, 0.199999, -0.139999, 0.050000, 0.500007, -135.000000, 0.000000);
- if(!IsPlayerAttachedObjectSlotUsed(playerid, 1))
- SetPlayerAttachedObject(playerid, 1, 348, 8, -0.079999, -0.039999, 0.109999, -90.100006, 0.000000, 0.000000);
- if(pInfo[playerid][pVip])
- OnPlayerStoppedGame(playerid);
- else
- SetTimerEx("OnPlayerStoppedGame", SPAWNED_TIME, false, "i", playerid);
- return 1;
- }
- stock CreateTD__Logo()
- {
- tdServerName = TextDrawCreate(569.000000, 436.000000, ServerInfo[sinfo_ServerName]);
- TextDrawBackgroundColor(tdServerName, 255);
- TextDrawFont(tdServerName, 1);
- TextDrawLetterSize(tdServerName, 0.250000, 1.000000);
- TextDrawColor(tdServerName, -1);
- TextDrawSetOutline(tdServerName, 0);
- TextDrawSetProportional(tdServerName, 1);
- TextDrawSetShadow(tdServerName, 1);
- TextDrawSetSelectable(tdServerName, 0);
- return 1;
- }
- @__SkipSKinSelect_SpecOff(playerid);
- @__SkipSKinSelect_SpecOff(playerid)
- {
- TogglePlayerSpectating(playerid, false),
- PlayerSkipSkinSelectF4Bug{playerid}++;
- }
- stock IsPlayerMale(playerid)
- {
- return (pInfo[playerid][pGender] == 'М');
- }
- @__AntiSpawnKillDisable(playerid);
- @__AntiSpawnKillDisable(playerid)
- {
- SetPlayerHealth(playerid, 100.0);
- GivePlayerWeapon(playerid, WEAPON_DEAGLE, 99999);
- GivePlayerWeapon(playerid, WEAPON_SNIPER, 99999);
- SetPlayerArmedWeapon(playerid, WEAPON_SNIPER);
- return 1;
- }
- @__KillCamDisable(playerid);
- @__KillCamDisable(playerid)
- {
- return TogglePlayerSpectating(playerid, false);
- }
- forward OnPlayerStoppedGame(playerid);
- public OnPlayerStoppedGame(playerid)
- {
- TogglePlayerSpectating(playerid, true);
- SetPlayerVirtualWorld(playerid, 1);
- ShowMapListDialog(playerid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment