Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author mail: kazax.samp@gmail.com
- // skype: avg.kazax
- #include <a_samp> // Главный инклуд
- #include <a_mysql> // База данных
- #include <streamer> // Стример объектов
- #include <zcmd> // Командный процессор
- #include <mailer> // Отправка писем на почту
- #include <sscanf2> // Получение данных из переменной
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50
- #define MAX_HOUSES 500
- AntiDialogHack(playerid, dialogid, style, caption[], info[], button1[], button2[]){
- SetPVarInt(playerid,"DialogID",dialogid);
- return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
- }
- #define ShowPlayerDialog AntiDialogHack
- #define GameModeName "DM/TDM/DRIFT/RACE"
- #define ServerName "[RUS] Battle of the Gods | BOTG | 0.3z"
- #define MapName "Los Santos"
- #define MAX_FLOOD 5
- #define CreatePickup GetError
- #define DestroyPickup GetError
- #define CreateObject CreateDynamicObject
- #define RACE_OFF 0
- #define RACE_START 1
- #define RACE_WORKS 2
- #define RACE_COUNT 3
- #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- #define HOLDING(%0) ((newkeys & (%0)) == (%0))
- /*
- CREATE TABLE IF NOT EXISTS `avergo_users`(
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(24) NOT NULL,
- `pass` varchar(48) NOT NULL,
- `date` varchar(24) NOT NULL,
- `lastip` varchar(24) NOT NULL,
- `skinid` int(4) NOT NULL,
- `admin` int(2) NOT NULL,
- `mute` int(9) NOT NULL,
- `freeze` int(9) NOT NULL,
- `banned` int(1) NOT NULL,
- `kills` int(11) NOT NULL,
- `deaths` int(11) NOT NULL,
- `money` int(11) NOT NULL,
- `level` int(11) NOT NULL,
- `txt` int(2) NOT NULL,
- `rwinned` int(11) NOT NULL,
- PRIMARY KEY (`id`))
- CREATE TABLE IF NOT EXISTS `avergo_logs` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `log` varchar(512) NOT NULL,
- PRIMARY KEY (`id`))
- CREATE TABLE IF NOT EXISTS `avergo_houses` (
- `hID` int(11) NOT NULL,
- `hOwner` varchar(24) NOT NULL,
- `hName` varchar(24) NOT NULL,
- `hInt` int(2) NOT NULL,
- `hLock` int(2) NOT NULL,
- `hCost` int(11) NOT NULL,
- `hSafe` int(11) NOT NULL,
- `hPos1` float NOT NULL,
- `hPos2` float NOT NULL,
- `hPos3` float NOT NULL,
- PRIMARY KEY (`hID`))
- */
- #define SQL_DEBUG 0
- #define SQL_PORT 3306
- #define SQL_HOST "127.0.0.1"
- #define SQL_DB "databasename"
- #define SQL_USER "user"
- #define SQL_PASS "pass"
- #define D_LOGIN 0
- #define D_REGISTER 1
- #define D_ADMINS 2
- #define D_REPORT 3
- #define D_MENU 4
- #define D_DMZONES 5
- #define D_EXIT_DM 6
- #define D_ACCOUNT 7
- #define D_ACCOUNT_INFO 8
- #define D_BUYHOUSE 9
- #define D_HOUSEMENU 10
- #define D_INTERIOR 11
- #define D_SAFE 12
- #define D_SAFE_PUT 13
- #define D_SAFE_TAKE 14
- #define D_HOUSENAME 15
- #define D_HOUSEENTER 16
- #define D_ACMDS 17
- #define D_CMDS 18
- new PlayerColors[200] = {
- 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
- 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
- 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
- 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
- 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
- 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
- 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
- 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
- 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
- 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
- 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
- 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
- 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
- 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
- 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
- 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
- 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
- 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
- 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
- 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
- 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
- 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
- 0xD8C762FF,0xD8C762FF
- };
- new CarName[212][] = {
- "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
- "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
- "Hunter","Premier","Enforcer","Securicar","Banshee","PRandomColor()ator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
- "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
- "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
- "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
- "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","color()wood",
- "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
- "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
- "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
- "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
- "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
- "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
- "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
- "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
- "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
- "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
- };
- enum PlayerInfo{
- sqlid,
- admin,
- name[24],
- pass[48],
- regdata[48],
- lastip[24],
- skinid,
- mute,
- freeze,
- banned,
- kills,
- deaths,
- money,
- level,
- bool:logged,
- indm,
- PlayerText:stats,
- txt,
- bool:rJoined,
- rCheckpoint,
- rWinned,
- bool:HaveHouse,
- HouseID,
- CurrenthID,
- bool:InHouse,
- Flood,
- CarID,
- Saved,
- cWeapon,
- cAmmo,
- cDetect
- };
- enum RaceInfo{
- rPrice,
- rPlayers[4],
- rTimer,
- rStage,
- rCarID,
- rCar[4],
- rCount
- };
- enum HouseInfo{
- hID,
- hOwner[24],
- hName[24],
- hInt,
- hLock,
- hCost,
- hSafe,
- Float:hPos[3],
- Text3D:hTxt,
- hPickup,
- bool:hLoaded,
- bool:hHaveOwner
- };
- enum ServerInfo{
- MySQLHandle,
- bool:AntiDDos,
- Registered,
- Houses
- };
- new sStruct[ServerInfo];
- new hStruct[MAX_HOUSES][HouseInfo];
- new pStruct[MAX_PLAYERS][PlayerInfo];
- new rStruct[RaceInfo];
- main(){
- print("******************");
- print("* 01.01.2014 *");
- print("* SA:MP Gamemode *");
- print("* Author: kaZax *");
- print("* Death Match *");
- print("******************");
- }
- forward SendQuery();
- forward AccountsCount();
- forward LoadPlayerData(playerid);
- forward CreateAccount(playerid);
- forward OnServerUpdate();
- forward ActivateAntiDDos();
- forward CheckRace();
- forward RaceCount();
- forward LoadAllHouses();
- forward bool:IsValidWeapon(weaponid);
- public OnGameModeInit(){
- new count = GetTickCount();
- ConnectMySQL();
- LoadAllSkins();
- LoadObjects();
- StartTimers();
- SetGameModeText(GameModeName);
- SendRconCommand("hostname "ServerName"");
- SendRconCommand("mapname "MapName"");
- UsePlayerPedAnims();
- DisableInteriorEnterExits();
- new vehicles = LoadStaticVehiclesFromFile("vehicles.txt");
- printf("** Мод загружен за: %d мс", GetTickCount() - count);
- printf("** Всего авто добавлено: %d", vehicles);
- return 1;
- }
- public OnGameModeExit(){
- print("** Выгрузка мода");
- SaveAllHouses();
- for(new i;i<MAX_PLAYERS;i++)if(IsPlayerConnected(i))Savestructure(i);
- return 1;
- }
- public OnPlayerConnect(playerid){
- if(GetTickCount() - GetPVarInt(playerid,"PlayerConnect") <= 500)return BanEx(playerid,"Flood:PlayerConnect");
- SetPVarInt(playerid,"PlayerConnect",GetTickCount());
- GetPlayerName(playerid,pStruct[playerid][name],24);
- Clearstructure(playerid);
- LoadPlayerTextDraw(playerid);
- Loadstructure(playerid);
- GetPlayerIp(playerid,pStruct[playerid][lastip],24);
- SetPlayerColor(playerid, PlayerColors[playerid]);
- SetPVarInt(playerid,"SkinChange",1);
- SendDeathMessage(INVALID_PLAYER_ID, playerid, 200);
- TogglePlayerSpectating(playerid,1);
- for(new id;id<MAX_HOUSES;id++){
- if(hStruct[id][hLoaded] == false)continue;
- if(!strcmp(hStruct[id][hOwner], pStruct[playerid][name], true)){
- pStruct[playerid][HouseID] = id;
- pStruct[playerid][HaveHouse] = true;
- break;
- }
- }
- return 1;
- }
- public LoadPlayerData(playerid){
- if(IsPlayerConnected(playerid))
- {
- new rows, fields;
- cache_get_data(rows, fields, sStruct[MySQLHandle]);
- if(rows)
- {
- pStruct[playerid][sqlid] = cache_get_row_int(0,0,sStruct[MySQLHandle]);
- cache_get_row(0, 2, pStruct[playerid][pass], sStruct[MySQLHandle], 48);
- cache_get_row(0, 3, pStruct[playerid][regdata], sStruct[MySQLHandle], 24);
- pStruct[playerid][skinid] = cache_get_row_int(0,5,sStruct[MySQLHandle]);
- pStruct[playerid][admin] = cache_get_row_int(0,6,sStruct[MySQLHandle]);
- pStruct[playerid][mute] = cache_get_row_int(0,7,sStruct[MySQLHandle]);
- pStruct[playerid][freeze] = cache_get_row_int(0,8,sStruct[MySQLHandle]);
- pStruct[playerid][banned] = cache_get_row_int(0,9,sStruct[MySQLHandle]);
- pStruct[playerid][kills] = cache_get_row_int(0,10,sStruct[MySQLHandle]);
- pStruct[playerid][deaths] = cache_get_row_int(0,11,sStruct[MySQLHandle]);
- pStruct[playerid][money] = cache_get_row_int(0,12,sStruct[MySQLHandle]);
- pStruct[playerid][level] = cache_get_row_int(0,13,sStruct[MySQLHandle]);
- pStruct[playerid][txt] = cache_get_row_int(0,14,sStruct[MySQLHandle]);
- pStruct[playerid][rWinned] = cache_get_row_int(0,15,sStruct[MySQLHandle]);
- ShowLoginDialog(playerid);
- }
- else ShowRegisterDialog(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason){
- if(pStruct[playerid][rJoined]){
- new str[64];
- format(str,sizeof str,"%s[%d] покинул гонку.",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- for(new i;i<4;i++){
- if(rStruct[rPlayers][i] != playerid)continue;
- rStruct[rPlayers][i] = INVALID_PLAYER_ID;
- }
- }
- Savestructure(playerid);
- Clearstructure(playerid);
- SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
- return 1;
- }
- public OnPlayerRequestClass(playerid,classid){
- if(GetPVarInt(playerid,"SkinChange") && pStruct[playerid][skinid] != -1){
- SetPlayerSkin(playerid,pStruct[playerid][skinid]);
- DeletePVar(playerid,"SkinChange");
- }
- SetPlayerPos(playerid,1984.4445,157.9501,55.9384);
- SetPlayerCameraPos(playerid,1984.4445,160.9501,55.9384);
- SetPlayerCameraLookAt(playerid,1984.4445,157.9501,55.9384);
- SetPlayerFacingAngle(playerid,0.0);
- return 1;
- }
- public OnPlayerUpdate(playerid){
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid,pStruct[playerid][money]);
- return 1;
- }
- public OnPlayerSpawn(playerid){
- if(pStruct[playerid][logged] == false)return KickEx(playerid,"Не залогинен");
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Spawn");
- pStruct[playerid][Flood]++;
- if(pStruct[playerid][indm] != -1)return PidorVXoditV_DM(playerid,pStruct[playerid][indm],false);
- pStruct[playerid][indm] = -1;
- SetPlayerPosEx(playerid,2395.8320,-1544.2620,23.9925,0,0);
- ResetPlayerWeapons(playerid);
- GiveWeapon(playerid,24,500);
- GiveWeapon(playerid,25,500);
- GiveWeapon(playerid,29,500);
- GiveWeapon(playerid,33,500);
- return 1;
- }
- public OnPlayerDeath(playerid,killerid,reason){
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Death");
- pStruct[playerid][Flood]++;
- SendDeathMessage(killerid, playerid, reason);
- pStruct[playerid][deaths]++;
- if(killerid != INVALID_PLAYER_ID)
- {
- pStruct[killerid][kills] ++;
- pStruct[killerid][money] += 100;
- if(pStruct[killerid][kills] % 50 == 0){
- pStruct[killerid][level] += 1;
- new str[128];
- format(str,sizeof str,"%s[%d] перешел на %d уровень! Число убийств: %d",pStruct[playerid][name],playerid,pStruct[playerid][level],pStruct[playerid][kills]);
- SendClientMessageToAll(color(),str);
- }
- UpdateStatsString(killerid);
- }
- UpdateStatsString(playerid);
- if(pStruct[playerid][rJoined] && IsPlayerInRaceVehicle(playerid)){
- new str[128];
- format(str,sizeof str,"Race: %s[%d] умер на гонке.",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- pStruct[playerid][rJoined] = false;
- }
- return 1;
- }
- public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart){
- if(bodypart == 9)PlayAudioStreamForPlayer(playerid, "http://load.samp-ru.org/files/headshot.mp3",20.0,0);
- return 1;
- }
- public OnServerUpdate(){
- for(new i;i<MAX_PLAYERS;i++){
- if(!IsPlayerConnected(i))continue;
- pStruct[i][Flood] = 0;
- if(pStruct[i][mute]){
- if(pStruct[i][mute] == 1){
- SendClientMessage(i,color(),"Бан чата снят.");
- PlayAudioStreamForPlayer(i,"http://load.samp-ru.org/files/mute_off.mp3");
- }
- pStruct[i][mute]--;
- }
- if(pStruct[i][freeze]){
- if(pStruct[i][freeze] == 1){
- TogglePlayerControllable(i,1);
- SendClientMessage(i,color(),"Разморожен.");
- PlayAudioStreamForPlayer(i,"http://load.samp-ru.org/files/mute_off.mp3");
- }
- pStruct[i][freeze]--;
- }
- if(pStruct[i][Saved])pStruct[i][Saved]--;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[]){
- return 0;
- }
- public OnPlayerCommandReceived(playerid,cmdtext[]){
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Command");
- pStruct[playerid][Flood]++;
- new str[128];
- format(str,sizeof str,"Слежка %s[%d]: %s",pStruct[playerid][name],playerid,cmdtext);
- SendMessageToAdmins(0xBEBEBEFF,str,pStruct[playerid][admin]);
- if(pStruct[playerid][logged] == false)return 0;
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success){
- if(!success) SendClientMessage(playerid, color(), "Неизвестная команда! {FFD700}Используйте: /cmds");
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate){
- if(newstate == PLAYER_STATE_DRIVER){
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Car");
- pStruct[playerid][Flood]++;
- }
- return 1;
- }
- public OnPlayerText(playerid, text[]){
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Text");
- pStruct[playerid][Flood]++;
- if(pStruct[playerid][logged] == false)return 0;
- new str[256];
- if(text[0] == '#'){
- if(IsPlayerAdmin(playerid) || pStruct[playerid][admin]){
- format(str,sizeof str,"{00FF00}[A] {FFFFFF}%s{00FF00}[id: %d][Level: %d]: {FFFF00}%s",pStruct[playerid][name],playerid,pStruct[playerid][admin],text[1]);
- SendMessageToAdmins(1,str,0);
- return 0;
- }
- }
- if(pStruct[playerid][mute]){
- format(str,sizeof str,"Вы не можете писать в чат. Осталось %d секунд.",pStruct[playerid][mute]);
- SendClientMessage(playerid,color(),str);
- return 0;
- }
- format(str,sizeof str,"%s [ID: %d]: {FFFFFF}%s",pStruct[playerid][name],playerid,text);
- SendClientMessageToAll(GetPlayerColor(playerid),str);
- return 0;
- }
- public OnVehicleMod(playerid,vehicleid,componentid){
- if(GetPlayerInterior(playerid) == 0){
- BanEx(playerid, "Tuning Hacks");
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(PRESSED(KEY_YES))ShowServerMenu(playerid);
- if((newkeys == 1 || newkeys == 9 || newkeys == 33 && oldkeys != 1 || oldkeys != 9 || oldkeys != 33) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
- if(HOLDING(KEY_FIRE)){
- pStruct[playerid][cWeapon] = GetPlayerWeapon(playerid);
- pStruct[playerid][cAmmo] = GetPlayerAmmo(playerid);
- if(!IsValidWeapon(pStruct[playerid][cWeapon]))return 0;
- if(pStruct[playerid][cWeapon] == GetPlayerWeapon(playerid) && pStruct[playerid][cAmmo] == GetPlayerAmmo(playerid)){
- if(pStruct[playerid][cDetect] > 3)SendMail( "kazax@samp-ru.org", "report@avergo.net", pStruct[playerid][name], "Report System", "Палево в читах аммо" );
- pStruct[playerid][cDetect]++;
- }
- }
- return 1;
- }
- public SendQuery(){
- return 1;
- }
- public CreateAccount(playerid){
- pStruct[playerid][sqlid] = mysql_insert_id();
- return 1;
- }
- public AccountsCount(){
- new rows, fields;
- cache_get_data(rows, fields, sStruct[MySQLHandle]);
- printf("** Аккаунтов всего: %d", rows);
- sStruct[Registered] = rows;
- return 1;
- }
- public ActivateAntiDDos(){
- sStruct[AntiDDos] = true;
- return print("** sStruct[AntiDDos] activated!");
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]){
- if(GetPVarInt(playerid,"DialogID") != dialogid)return 0;
- for(new q;q<strlen(inputtext);q++){
- if(inputtext[q] == '%'){
- inputtext[q] = '#';
- }
- }
- if(dialogid == D_LOGIN){
- if(!response)return KickEx(playerid,"Отказался вводить пароль");
- if(strcmp(pStruct[playerid][pass], inputtext, false) || strlen(inputtext) == 0)return ShowLoginDialog(playerid,true);
- Login(playerid);
- return 1;
- }
- if(dialogid == D_REGISTER){
- if(strlen(inputtext) < 4)return ShowRegisterDialog(playerid);
- format(pStruct[playerid][pass],48,"%s",inputtext);
- pStruct[playerid][logged] = true;
- pStruct[playerid][money] = 1000;
- new query[384],Year, Month, Day;
- getdate(Year, Month, Day);
- format(pStruct[playerid][regdata],24,"%02d/%02d/%d", Day, Month, Year);
- format(query,sizeof(query),"INSERT INTO `avergo_users`(`name`, `pass`, `date`, `lastip`, `skinid`, `admin`, `mute`, `freeze`, `banned`, `kills`, `deaths`, `money`, `level`, `txt`,`rwinned`) VALUES (\'%s\',\'%s\',\'%s\',\'%s\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\')",
- pStruct[playerid][name],pStruct[playerid][pass],pStruct[playerid][regdata],pStruct[playerid][lastip],pStruct[playerid][skinid],pStruct[playerid][admin],pStruct[playerid][mute],pStruct[playerid][freeze],pStruct[playerid][banned],pStruct[playerid][kills],pStruct[playerid][deaths],pStruct[playerid][money],pStruct[playerid][level],pStruct[playerid][txt],pStruct[playerid][rWinned]);
- mysql_function_query(sStruct[MySQLHandle],query, false, "CreateAccount","d", playerid);
- format(query,sizeof query,"Ваш пароль: %s | Дата регистраций: %s",pStruct[playerid][pass],pStruct[playerid][regdata]);
- SendClientMessage(playerid,color(),"Успешная регистрация!");
- SendClientMessage(playerid,color(),query);
- TogglePlayerSpectating(playerid,0);
- UpdateStatsString(playerid);
- PlayerTextDrawShow(playerid, pStruct[playerid][stats]);
- sStruct[Registered]++;
- return 1;
- }
- if(pStruct[playerid][logged] == false)return 0;
- if(dialogid == D_MENU){
- if(!response)return 0;
- switch(listitem){
- case 0:{
- new str[128],txton[24];
- if(pStruct[playerid][txt])format(txton,sizeof txton,"{00ff00}Вкл");
- else format(txton,sizeof txton,"{ff0000}Выкл");
- format(str,sizeof str,"[0] Текстдравы\t%s\n[1] Информация\n[2] Сохранить данные",txton);
- ShowPlayerDialog(playerid,D_ACCOUNT,DIALOG_STYLE_LIST,"Мой аккаунт",str,"Выбрать","Отмена");
- }
- case 1:ShowPlayerDialog(playerid,D_DMZONES,DIALOG_STYLE_LIST,"DM Зоны","[0] Deagle\n[1] Jungle","Войти","Я Зассал");
- case 2:{
- if(pStruct[playerid][HaveHouse] == false)return SendClientMessage(playerid,color(),"У вас нет дома! Бомж!");
- new str[128],lock[12];
- if(hStruct[pStruct[playerid][HouseID]][hLock])format(lock,sizeof lock,"Закрыта");
- else format(lock,sizeof lock,"Открыта");
- format(str,sizeof str,"[0] Продать\n\
- [1] Интерьер:\t{00ff00}%d\n\
- [2] Сейф:\t{00ff00}%d$\n\
- [3] Дверь:\t{00ff00}%s\n\
- [4] Название:\t{00ff00}%s",hStruct[pStruct[playerid][HouseID]][hInt]+1,hStruct[pStruct[playerid][HouseID]][hSafe],lock,hStruct[pStruct[playerid][HouseID]][hName]);
- ShowPlayerDialog(playerid,D_HOUSEMENU,DIALOG_STYLE_LIST,"Меню дома",str,"Выбрать","Отмена");
- }
- }
- return 1;
- }
- if(dialogid == D_HOUSEMENU){
- if(!response)return 0;
- switch(listitem){
- case 0:
- {
- format(hStruct[pStruct[playerid][HouseID]][hOwner],24,"None");
- pStruct[playerid][money] += hStruct[pStruct[playerid][HouseID]][hCost] * 80/100;
- UpdateHouse(pStruct[playerid][HouseID]);
- pStruct[playerid][HouseID] = -1;
- pStruct[playerid][HaveHouse] = false;
- }
- case 1:ShowPlayerDialog(playerid,D_INTERIOR,DIALOG_STYLE_LIST,"Интерьер дома","Интерьер № {FFFF00}0\nИнтерьер № {FFFF00}1\nИнтерьер № {FFFF00}2\nИнтерьер № {FFFF00}3\nИнтерьер № {FFFF00}4\nИнтерьер № {FFFF00}5\nИнтерьер № {FFFF00}6\nИнтерьер № {FFFF00}7\nИнтерьер № {FFFF00}8","Выбрать","Отмена");
- case 2:
- {
- if(pStruct[playerid][InHouse] && pStruct[playerid][CurrenthID] == pStruct[playerid][HouseID])ShowPlayerDialog(playerid,D_SAFE,DIALOG_STYLE_LIST,"Сейф дома","[0] Положить деньги\n[1] Снять деньги","Выбрать","Отмена");
- else SendClientMessage(playerid,color(),"Для того чтобы пользоваться сейфом войдите в свой дом!");
- }
- case 3:
- {
- if(hStruct[pStruct[playerid][HouseID]][hLock])hStruct[pStruct[playerid][HouseID]][hLock] = 0;
- else hStruct[pStruct[playerid][HouseID]][hLock] = 1;
- }
- case 4:ShowPlayerDialog(playerid,D_HOUSENAME,DIALOG_STYLE_INPUT,"Название дома","Введите название дома не больше 24 символов","Ввести","Отмена");
- }
- return 1;
- }
- if(dialogid == D_HOUSEENTER){
- if(!response)return 0;
- EnterTheHouse(playerid,pStruct[playerid][CurrenthID],true);
- return 1;
- }
- if(dialogid == D_HOUSENAME){
- if(!response)return 0;
- if(!strlen(inputtext) || strlen(inputtext) > 24)return ShowPlayerDialog(playerid,D_HOUSENAME,DIALOG_STYLE_INPUT,"Название дома","Введите название дома не больше {ff0000}24 символов","Ввести","Отмена");
- format(hStruct[pStruct[playerid][HouseID]][hName],24,"%s",inputtext);
- UpdateHouse(pStruct[playerid][HouseID]);
- new str[128];
- format(str,sizeof str,"Новое название дома: %s",inputtext);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- if(dialogid == D_SAFE){
- if(!response)return 0;
- if(listitem == 0)ShowPlayerDialog(playerid,D_SAFE_PUT,DIALOG_STYLE_INPUT,"Сейф","Введите суммы которую хотите положить в сейф дома:","Положить","Отмена");
- if(listitem == 1)ShowPlayerDialog(playerid,D_SAFE_TAKE,DIALOG_STYLE_INPUT,"Сейф","Введите суммы которую хотите взять с сейфа:","Взять","Отмена");
- return 1;
- }
- if(dialogid == D_SAFE_TAKE){
- if(!response)return 0;
- if(!strval(inputtext))return ShowPlayerDialog(playerid,D_SAFE_TAKE,DIALOG_STYLE_INPUT,"Сейф","Введите суммы которую хотите взять с сейфа:","Взять","Отмена");
- if(strval(inputtext) > hStruct[pStruct[playerid][HouseID]][hSafe])return SendClientMessage(playerid,color(),"В сейфе нет таких денег!");
- hStruct[pStruct[playerid][HouseID]][hSafe] -= strval(inputtext);
- pStruct[playerid][money] += strval(inputtext);
- SendClientMessage(playerid,color(),"Успешно!");
- return 1;
- }
- if(dialogid == D_SAFE_PUT){
- if(!response)return 0;
- if(!strval(inputtext))return ShowPlayerDialog(playerid,D_SAFE_PUT,DIALOG_STYLE_INPUT,"Сейф","Введите суммы которую хотите положить в сейф дома:","Положить","Отмена");
- if(strval(inputtext) > pStruct[playerid][money])return SendClientMessage(playerid,color(),"У вас нет таких денег!");
- hStruct[pStruct[playerid][HouseID]][hSafe] += strval(inputtext);
- pStruct[playerid][money] -= strval(inputtext);
- SendClientMessage(playerid,color(),"Успешно!");
- return 1;
- }
- if(dialogid == D_INTERIOR){
- if(!response)return 0;
- if(pStruct[playerid][money] < 3000)return SendClientMessage(playerid,color(),"У вас не хватает денег на смену интерьера! Нужно {00ff00}3000$");
- pStruct[playerid][money] -= 3000;
- hStruct[pStruct[playerid][HouseID]][hInt] = listitem;
- EnterTheHouse(playerid,pStruct[playerid][HouseID],false);
- for(new i;i<MAX_PLAYERS;i++){
- if(!IsPlayerConnected(i) || !pStruct[i][InHouse])continue;
- if(pStruct[playerid][HouseID] == pStruct[i][CurrenthID])EnterTheHouse(playerid,pStruct[playerid][HouseID],false);
- }
- return 1;
- }
- if(dialogid == D_ACCOUNT){
- if(!response)return 0;
- if(listitem == 0){
- if(pStruct[playerid][txt]){
- pStruct[playerid][txt] = 0;
- PlayerTextDrawHide(playerid,pStruct[playerid][stats]);
- }
- else{
- pStruct[playerid][txt] = 1;
- PlayerTextDrawShow(playerid,pStruct[playerid][stats]);
- }
- }
- if(listitem == 1){
- ShowPlayerInfo(playerid,playerid);
- }
- if(listitem == 2){
- if(!pStruct[playerid][Saved]){
- pStruct[playerid][Saved] = 300000;
- Savestructure(playerid);
- SendClientMessage(playerid,color(),"Ваши данные успешно сохранены!");
- }
- else SendClientMessage(playerid,color(),"Сохранять данные можно каждые 5 минут. Данные сохраняются при выходе.");
- }
- return 1;
- }
- if(dialogid == D_DMZONES){
- if(!response)return 0;
- PidorVXoditV_DM(playerid,listitem,true);
- return 1;
- }
- if(dialogid == D_REPORT){
- if(!response)return 0;
- new message[512];
- format(message,sizeof message,"Игрок: %s\nСообщение: %s",pStruct[playerid][name],inputtext);
- SendMail( "kazax@samp-ru.org", "report@avergo.net", pStruct[playerid][name], "Report System", message );
- format(message,sizeof message,"Сообщение: [%s] Статус: {00ff00}Отправлено на почту администратора.",inputtext);
- SendClientMessage(playerid,color(),message);
- return 1;
- }
- if(dialogid == D_EXIT_DM){
- if(!response)return 0;
- pStruct[playerid][indm] = -1;
- OnPlayerSpawn(playerid);
- return 1;
- }
- if(dialogid == D_BUYHOUSE){
- if(!response)return 0;
- new id = pStruct[playerid][CurrenthID];
- if(pStruct[playerid][money] < hStruct[id][hCost])return SendClientMessage(playerid,color(),"У вас не хватает денег на покупку");
- pStruct[playerid][money] -= hStruct[id][hCost];
- format(hStruct[id][hOwner],24,"%s",pStruct[playerid][name]);
- hStruct[id][hHaveOwner] = true;
- pStruct[playerid][HouseID] = id;
- pStruct[playerid][HaveHouse] = true;
- UpdateHouse(id);
- return 1;
- }
- return 0;
- }
- public CheckRace(){
- if(rStruct[rStage] != RACE_WORKS){
- if(rStruct[rPlayers][1] == INVALID_PLAYER_ID){
- SendClientMessageToAll(color(),"Race: Не набралось нужное количество игроков. Гонка отменена.");
- for(new i;i<4;i++){
- if(!IsPlayerConnected(rStruct[rPlayers][i]))continue;
- pStruct[rStruct[rPlayers][i]][rJoined] = false;
- }
- StopRace();
- rStruct[rStage] = RACE_OFF;
- }
- else{
- SendClientMessageToAll(color(),"Race: Начинаем гонку!");
- StartRace();
- }
- }
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- if(pStruct[playerid][rJoined] && IsPlayerInRaceVehicle(playerid)){
- new str[128];
- format(str,sizeof str,"Race: %s[%d] покинул свое авто. Дисквалифицирован!",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- pStruct[playerid][rJoined] = false;
- DisablePlayerRaceCheckpoint(playerid);
- OnPlayerSpawn(playerid);
- }
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- if(pStruct[playerid][rCheckpoint] >= 5){
- new str[128];
- format(str,sizeof str,"Race: %s[%d] победитель!!! Получает приз {00ff00}%d$",pStruct[playerid][name],playerid,rStruct[rPrice]);
- SendClientMessageToAll(color(),str);
- for(new i;i<4;i++){
- if(!IsPlayerConnected(rStruct[rPlayers][i]))continue;
- OnPlayerSpawn(rStruct[rPlayers][i]);
- pStruct[rStruct[rPlayers][i]][rJoined] = false;
- DisablePlayerRaceCheckpoint(rStruct[rPlayers][i]);
- }
- StopRace();
- rStruct[rStage] = RACE_OFF;
- pStruct[playerid][money] += rStruct[rPrice];
- pStruct[playerid][rWinned]++;
- return 1;
- }
- if(pStruct[playerid][rJoined])CreateRaceCheckpoints(playerid);
- return 1;
- }
- public RaceCount(){
- if(rStruct[rCount] > 0){
- new str[6];
- format(str,sizeof str,"...%d",rStruct[rCount]);
- for(new i;i<4;i++)GameTextForPlayer(rStruct[rPlayers][i],str,600,4);
- rStruct[rCount]-=1;
- }
- else{
- for(new i;i<4;i++){
- TogglePlayerControllable(rStruct[rPlayers][i],1);
- pStruct[rStruct[rPlayers][i]][rCheckpoint] = 0;
- CreateRaceCheckpoints(rStruct[rPlayers][i]);
- GameTextForPlayer(rStruct[rPlayers][i],"~g~ Go! Go! Go!",400,4);
- KillTimer(rStruct[rTimer]);
- }
- }
- return 1;
- }
- public LoadAllHouses(){
- new rows, fields;
- cache_get_data(rows, fields, sStruct[MySQLHandle]);
- while(rows--){
- hStruct[sStruct[Houses]][hID] = cache_get_row_int(sStruct[Houses],0,sStruct[MySQLHandle]);
- cache_get_row(sStruct[Houses], 1, hStruct[sStruct[Houses]][hOwner], sStruct[MySQLHandle], 24);
- cache_get_row(sStruct[Houses], 2, hStruct[sStruct[Houses]][hName], sStruct[MySQLHandle], 24);
- hStruct[sStruct[Houses]][hInt] = cache_get_row_int(sStruct[Houses],3,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hLock] = cache_get_row_int(sStruct[Houses],4,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hCost] = cache_get_row_int(sStruct[Houses],5,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hSafe] = cache_get_row_int(sStruct[Houses],6,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hPos][0] = cache_get_row_float(sStruct[Houses],7,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hPos][1] = cache_get_row_float(sStruct[Houses],8,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hPos][2] = cache_get_row_float(sStruct[Houses],9,sStruct[MySQLHandle]);
- hStruct[sStruct[Houses]][hLoaded] = true;
- UpdateHouse(sStruct[Houses]);
- sStruct[Houses]++;
- }
- return printf("** sStruct[Houses]: %d",sStruct[Houses]);
- }
- public OnPlayerPickUpDynamicPickup(playerid, pickupid){
- if(pStruct[playerid][Flood] >= MAX_FLOOD)return KickEx(playerid,"Flood:Pickup");
- pStruct[playerid][Flood]++;
- for(new id;id<MAX_HOUSES;id++){
- if(hStruct[id][hLoaded] == false)continue;
- if(hStruct[id][hPickup] == pickupid){
- pStruct[playerid][CurrenthID] = id;
- if(hStruct[id][hHaveOwner]){
- if(hStruct[id][hLock] && id != pStruct[playerid][HouseID])return SendClientMessage(playerid,color(),"Дом закрыт!");
- else return ShowPlayerDialog(playerid,D_HOUSEENTER,DIALOG_STYLE_MSGBOX,"Дом","{ffffff}Этот дом открыт!\nВойти?","Да","Нет");
- }
- else if(pStruct[playerid][HaveHouse] == false){
- new str[128];
- format(str,sizeof str,"{00ff00}Дом №:\t{ffff00}%d{00ff00}\nЦена:\t\t{ffff00}%d$\n{00ff00}Купить?",id,hStruct[id][hCost]);
- return ShowPlayerDialog(playerid,D_BUYHOUSE,DIALOG_STYLE_MSGBOX,"Покупка дома",str,"Да","Нет");
- }
- }
- }
- return 1;
- }
- /*getVehicleSpeed(vehicleid){
- new Float: v[3];
- GetVehicleVelocity( vehicleid, v[0], v[1], v[2] );
- return floatround( 200.0 * floatsqroot( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] ), floatround_floor );
- } */
- bool:IsValidWeapon(weaponid)
- {
- if(weaponid == 19 || weaponid == 20 || weaponid == 21 || weaponid < 16 || weaponid > 38) return false;
- return true;
- }
- ShowPlayerInfo(playerid,showid){
- #define text "\
- {FFA500}SQLID:\t\t{ffffff}%d\n\
- {FFA500}Admin:\t\t\t{ffffff}%d\n\
- {FFA500}IP:\t\t\t{ffffff}%s\n\
- {FFA500}SkinID:\t\t\t{ffffff}%d\n\
- {FFA500}Заткнут:\t\t{ffffff}%d {FFA500}сек\n\
- {FFA500}Заморожен:\t\t{ffffff}%s\n\
- {FFA500}Убийств:\t\t{ffffff}%d\n\
- {FFA500}Смертей:\t\t{ffffff}%d\n\
- {FFA500}Деньги:\t\t{ffffff}%d\n\
- {FFA500}Уровень:\t\t{ffffff}%d\n\
- {FFA500}Текстдравы:\t\t{ffffff}%s\n\
- {FFA500}Гонок выиграно:\t{ffffff}%d"
- new str[512],txton[24],freezed[24];
- if(pStruct[playerid][txt])format(txton,sizeof txton,"Вкл");
- else format(txton,sizeof txton,"Выкл");
- if(pStruct[playerid][freeze])format(freezed,sizeof freezed,"Да");
- else format(freezed,sizeof freezed,"Нет");
- format(str,sizeof str,text,
- pStruct[playerid][sqlid],
- pStruct[playerid][admin],
- pStruct[playerid][lastip],
- GetPlayerSkin(playerid),
- pStruct[playerid][mute],
- freezed,
- pStruct[playerid][kills],
- pStruct[playerid][deaths],
- pStruct[playerid][money],
- pStruct[playerid][level],
- txton,
- pStruct[playerid][rWinned]);
- ShowPlayerDialog(showid,D_ACCOUNT_INFO,DIALOG_STYLE_MSGBOX,"Информация",str,"Okay","");
- #undef text
- }
- EnterTheHouse(playerid,houseid,bool:msg){
- switch(hStruct[houseid][hInt]){
- case 0:SetPlayerPosEx(playerid,140.17,1366.07,1083.65,5,houseid+1);
- case 1:SetPlayerPosEx(playerid,2324.53,-1149.54,1050.71,12,houseid+1);
- case 2:SetPlayerPosEx(playerid,235.34,1186.68,1080.26,3,houseid+1);
- case 3:SetPlayerPosEx(playerid,24.04,1340.17,1084.38,10,houseid+1);
- case 4:SetPlayerPosEx(playerid,2196.85,-1204.25,1049.02,6,houseid+1);
- case 5:SetPlayerPosEx(playerid,-260.49,1456.75,1084.37,4,houseid+1);
- case 6:SetPlayerPosEx(playerid,83.03,1322.28,1083.87,9,houseid+1);
- case 7:SetPlayerPosEx(playerid,2317.89,-1026.76,1050.22,9,houseid+1);
- case 8:SetPlayerPosEx(playerid,2495.98,-1692.08,1014.74,3,houseid+1);
- }
- pStruct[playerid][InHouse] = true;
- if(msg)SendClientMessage(playerid,color(),"Выход из дома: /exit");
- return 1;
- }
- SendMessageToAdmins(color,text[],lvl){
- for(new i;i<MAX_PLAYERS;i++){
- if(IsPlayerConnected(i) && pStruct[i][admin]){
- if(pStruct[i][admin] > lvl)SendClientMessage(i,color,text);
- }
- }
- }
- SaveAllHouses(){
- new str[256];
- for(new id=0;id<MAX_HOUSES;id++){
- if(hStruct[id][hLoaded] == false)continue;
- format(str,sizeof str,"UPDATE `avergo_houses` SET `hOwner`='%s',`hName`='%s',`hInt`='%d',`hLock`='%d',`hCost`='%d',`hSafe`='%d',`hPos1`='%f',`hPos2`='%f',`hPos3`='%f' WHERE hID='%d'",
- hStruct[id][hOwner],hStruct[id][hName],hStruct[id][hInt],hStruct[id][hLock],hStruct[id][hCost],hStruct[id][hSafe],hStruct[id][hPos][0],hStruct[id][hPos][1],hStruct[id][hPos][2],id);
- mysql_function_query(sStruct[MySQLHandle],str, false, "SendQuery","");
- }
- }
- UpdateHouse(id){
- new str[256];
- if(IsValidDynamicPickup(hStruct[id][hPickup]))DestroyDynamicPickup(hStruct[id][hPickup]);
- if(!strcmp(hStruct[id][hOwner], "None", true)){
- format(str,sizeof str,"{FFFFFF}Дом №: {FFA500}%d\n{FFFFFF}Продается за: {FFA500}%d{228B22}$",id,hStruct[id][hCost]);
- hStruct[id][hHaveOwner] = false;
- hStruct[id][hPickup] = CreateDynamicPickup(1273,23,hStruct[id][hPos][0],hStruct[id][hPos][1],hStruct[id][hPos][2],-1,-1,-1,50.0);
- }
- else{
- format(str,sizeof str,"{FFFFFF}Дом №: {FFA500}%d\n{FFFFFF}Владелец: {FFA500}%s\n{FFFFFF}Название:\n{FFA500}%s",id,hStruct[id][hOwner],hStruct[id][hName]);
- hStruct[id][hHaveOwner] = true;
- hStruct[id][hPickup] = CreateDynamicPickup(1272,23,hStruct[id][hPos][0],hStruct[id][hPos][1],hStruct[id][hPos][2],-1,-1,-1,50.0);
- }
- if(IsValidDynamic3DTextLabel(hStruct[id][hTxt]))UpdateDynamic3DTextLabelText(hStruct[id][hTxt], 1, str);
- else hStruct[id][hTxt] = CreateDynamic3DTextLabel(str,1,hStruct[id][hPos][0],hStruct[id][hPos][1],hStruct[id][hPos][2],20,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,20.0);
- }
- CreateHouseOnBD(id){
- new str[256];
- format(str,sizeof str,"INSERT INTO avergo_houses(hID,hOwner,hName,hInt,hLock,hCost,hSafe,hPos1,hPos2,hPos3) VALUES ('%d','%s','%s','%d','%d','%d','%d','%f','%f','%f')",
- id,hStruct[id][hOwner],hStruct[id][hName],hStruct[id][hInt],hStruct[id][hLock],hStruct[id][hCost],hStruct[id][hSafe],hStruct[id][hPos][0],hStruct[id][hPos][1],hStruct[id][hPos][2]);
- mysql_function_query(sStruct[MySQLHandle],str, false, "SendQuery","");
- return 1;
- }
- ConnectMySQL(){
- mysql_debug(SQL_DEBUG);
- sStruct[MySQLHandle] = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS, SQL_PORT);
- mysql_function_query(sStruct[MySQLHandle],"SELECT * FROM `avergo_users`", true, "AccountsCount","");
- mysql_function_query(sStruct[MySQLHandle],"SELECT * FROM `avergo_houses`", true, "LoadAllHouses","");
- return 1;
- }
- ShowServerMenu(playerid){
- if(pStruct[playerid][indm] != -1)ShowPlayerDialog(playerid,D_EXIT_DM,DIALOG_STYLE_MSGBOX,"Выход","Покинуть DM Зону?","Зассал","Нет");
- else{
- ShowPlayerDialog(playerid,D_MENU,DIALOG_STYLE_LIST,"Меню","\
- [1] Мой аккаунт\n\
- [2] DM Зоны\n\
- [3] Управление домом","Выбрать","Отмена");
- }
- }
- LoadPlayerTextDraw(playerid){
- pStruct[playerid][stats] = CreatePlayerTextDraw(playerid, 499.0, 101.0, "");
- PlayerTextDrawFont(playerid, pStruct[playerid][stats], 1);
- PlayerTextDrawLetterSize(playerid, pStruct[playerid][stats], 0.34, 1.5);
- PlayerTextDrawSetOutline(playerid, pStruct[playerid][stats], 1);
- PlayerTextDrawColor(playerid, pStruct[playerid][stats], color());
- PlayerTextDrawAlignment(playerid, pStruct[playerid][stats], 1);
- }
- UpdateStatsString(playerid){
- new string[128];
- format(string, sizeof(string), "Level: %d Exp: %d/%d~n~Deaths: %d Kills: %d", pStruct[playerid][level],pStruct[playerid][kills],pStruct[playerid][level] * 50,pStruct[playerid][deaths], pStruct[playerid][kills]);
- PlayerTextDrawSetString(playerid, pStruct[playerid][stats], string);
- }
- PidorVXoditV_DM(pidorid,dmid,bool:msga){
- // dmid == 0 ; Deagle
- // dmid == 1 ; Jungle
- new msg[128];
- ResetPlayerWeapons(pidorid);
- pStruct[pidorid][indm] = dmid;
- switch(dmid){
- case 0:{
- if(msga)format(msg,sizeof msg,"<| %s[%d] |> вошел в DM Deagle.",pStruct[pidorid][name],pidorid);
- GiveWeapon(pidorid,WEAPON_DEAGLE,10000);
- switch(random(4)){
- case 0:SetPlayerPosEx(pidorid,1059.8849,-1190.5916,61.6891,0,0);
- case 1:SetPlayerPosEx(pidorid,1060.4604,-1149.3961,61.7377,0,0);
- case 2:SetPlayerPosEx(pidorid,1101.3984,-1147.9451,61.7377,0,0);
- case 3:SetPlayerPosEx(pidorid,1102.9519,-1190.0281,61.7377,0,0);
- }
- }
- case 1:{
- if(msga)format(msg,sizeof msg,"<| %s[%d] |> вошел в DM Jungle.",pStruct[pidorid][name],pidorid);
- GiveWeapon(pidorid,WEAPON_DEAGLE,10000);
- GiveWeapon(pidorid,WEAPON_MOLTOV,2);
- GiveWeapon(pidorid,WEAPON_AK47,10000);
- GiveWeapon(pidorid,WEAPON_SHOTGSPA,10000);
- switch(random(3)){
- case 0:SetPlayerPosEx(pidorid,4168.6938,-1644.1786,12.1646,0,0);
- case 1:SetPlayerPosEx(pidorid,4242.0464,-1666.7699,12.0825,0,0);
- case 2:SetPlayerPosEx(pidorid,4202.3188,-1692.3127,12.0825,0,0);
- }
- }
- }
- if(msga)SendClientMessageToAll(color(),msg);
- return 1;
- }
- StartTimers(){
- SetTimer("OnServerUpdate",1000,true);
- SetTimer("ActivateAntiDDos",5000,false);
- return print("** Таймеры запущены");
- }
- Savestructure(playerid){
- if(pStruct[playerid][logged]){
- new query[384];
- format(query,sizeof(query),"UPDATE `avergo_users` SET `pass`='%s',`lastip`='%s',`skinid`='%d',`admin`='%d',`mute`='%d',`freeze`='%d',`banned`='%d',`kills`='%d',`deaths`='%d',`money`='%d',`level`='%d',`txt`='%d',`rwinned`='%d' WHERE id='%d'",
- pStruct[playerid][pass],pStruct[playerid][lastip],GetPlayerSkin(playerid),pStruct[playerid][admin],pStruct[playerid][mute],pStruct[playerid][freeze],pStruct[playerid][banned],pStruct[playerid][kills],pStruct[playerid][deaths],pStruct[playerid][money],pStruct[playerid][level],pStruct[playerid][txt],pStruct[playerid][rWinned],pStruct[playerid][sqlid]);
- mysql_function_query(sStruct[MySQLHandle],query, false, "SendQuery","");
- return 1;
- }
- return 0;
- }
- Clearstructure(playerid){
- pStruct[playerid][sqlid] = -1;
- pStruct[playerid][admin] = 0;
- format(pStruct[playerid][pass],48,"");
- pStruct[playerid][skinid] = -1;
- pStruct[playerid][mute] = 0;
- pStruct[playerid][freeze] = 0;
- pStruct[playerid][banned] = 0;
- pStruct[playerid][kills] = 0;
- pStruct[playerid][deaths] = 0;
- pStruct[playerid][logged] = false;
- pStruct[playerid][indm] = -1;
- pStruct[playerid][level] = 1;
- pStruct[playerid][txt] = 1;
- pStruct[playerid][rJoined] = false;
- pStruct[playerid][rCheckpoint] = 0;
- pStruct[playerid][rWinned] = 0;
- pStruct[playerid][HouseID] = 0;
- pStruct[playerid][CurrenthID] = -1;
- pStruct[playerid][InHouse] = false;
- pStruct[playerid][Flood] = 0;
- pStruct[playerid][CarID] = INVALID_VEHICLE_ID;
- pStruct[playerid][Saved] = 0;
- pStruct[playerid][cWeapon] = 0;
- pStruct[playerid][cAmmo] = 0;
- pStruct[playerid][cDetect] = 0;
- SetPVarInt(playerid,"Dos",0);
- }
- LoadAllSkins(){
- for(new i;i<300;i++){
- AddPlayerClass(i,0,0,0,0,0,0,0,0,0,0);
- }
- }
- Loadstructure(playerid){
- new query[128];
- format(query,sizeof(query),"SELECT * FROM `avergo_users` WHERE name = '%s'",pStruct[playerid][name]);
- mysql_function_query(sStruct[MySQLHandle],query, true, "LoadPlayerData","d", playerid);
- }
- KickEx(playerid,reason[]){
- new str[256];
- format(str,sizeof str,"Игрок %s[%d] был кикнут системой. (%s)",pStruct[playerid][name],playerid,reason);
- SendClientMessageToAll(color(),str);
- WriteLog(str);
- return Kick(playerid);
- }
- WriteLog(str[]){
- new query[512];
- format(query,sizeof(query),"INSERT INTO `avergo_logs`(`log`) VALUES (\'%s\')",str);
- mysql_function_query(sStruct[MySQLHandle],query, false, "SendQuery","");
- return 1;
- }
- Login(playerid){
- pStruct[playerid][logged] = true;
- TogglePlayerSpectating(playerid,0);
- if(pStruct[playerid][banned]){
- SendClientMessage(playerid,color(),"Ваш аккаунт забанен!");
- BanEx(playerid,"Account is banned");
- return ;
- }
- SetPlayerScore(playerid,pStruct[playerid][kills]);
- SendClientMessage(playerid,color(),"Добро пожаловать на BOTG!");
- SendClientMessage(playerid,color(),"Главное меню сервера на кнопку Y (/mm)");
- SendClientMessage(playerid,color(),"Предложения/баги пишите в /report");
- UpdateStatsString(playerid);
- if(pStruct[playerid][txt])PlayerTextDrawShow(playerid, pStruct[playerid][stats]);
- }
- LoadStaticVehiclesFromFile(const filename[]){
- new File:file_ptr;
- new line[256];
- new var_from_line[64];
- new vehicletype;
- new Float:SpawnX;
- new Float:SpawnY;
- new Float:SpawnZ;
- new Float:SpawnRot;
- new Color1, Color2;
- new index;
- new vehicles_loaded;
- file_ptr = fopen(filename,filemode:io_read);
- if(!file_ptr) return 0;
- vehicles_loaded = 0;
- while(fread(file_ptr,line,256) > 0)
- {
- index = 0;
- index = token_by_delim(line,var_from_line,',',index);
- if(index == (-1)) continue;
- vehicletype = strval(var_from_line);
- if(vehicletype < 400 || vehicletype > 611) continue;
- index = token_by_delim(line,var_from_line,',',index+1);
- if(index == (-1)) continue;
- SpawnX = floatstr(var_from_line);
- index = token_by_delim(line,var_from_line,',',index+1);
- if(index == (-1)) continue;
- SpawnY = floatstr(var_from_line);
- index = token_by_delim(line,var_from_line,',',index+1);
- if(index == (-1)) continue;
- SpawnZ = floatstr(var_from_line);
- index = token_by_delim(line,var_from_line,',',index+1);
- if(index == (-1)) continue;
- SpawnRot = floatstr(var_from_line);
- index = token_by_delim(line,var_from_line,',',index+1);
- if(index == (-1)) continue;
- Color1 = strval(var_from_line);
- index = token_by_delim(line,var_from_line,';',index+1);
- Color2 = strval(var_from_line);
- AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,(30*60));
- vehicles_loaded++;
- }
- fclose(file_ptr);
- printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
- return vehicles_loaded;
- }
- token_by_delim(const string[], return_str[], delim, start_index){
- new x=0;
- while(string[start_index] != EOS && string[start_index] != delim) {
- return_str[x] = string[start_index];
- x++;
- start_index++;
- }
- return_str[x] = EOS;
- if(string[start_index] == EOS) start_index = (-1);
- return start_index;
- }
- GiveWeapon(playerid,weaponid,ammo){
- GivePlayerWeapon(playerid,weaponid,ammo);
- return 1;
- }
- ShowLoginDialog(playerid,bool:warning = false){
- new str[512];
- if(warning){
- format(str,sizeof str,"{FF0000}==============================================\n\
- {ffffff}| Добро пожаловать на Russian Death Match!\n\
- {ffffff}| Всего зарегистрировано игроков: %d\n\
- {ffffff}| Введите свой пароль для входа на сервер:\n\
- {ffffff}| Не правильный пароль!\n\
- {FF0000}==============================================",sStruct[Registered]);
- }
- else{
- format(str,sizeof str,"{00FF00}==============================================\n\
- {ffffff}| Добро пожаловать на Russian Death Match!\n\
- {ffffff}| Всего зарегистрировано игроков: %d\n\
- {ffffff}| Введите свой пароль для входа на сервер:\n\
- {00FF00}==============================================",sStruct[Registered]);
- }
- return ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Авторизация",str,"< Ввести >","< Выход >");
- }
- ShowRegisterDialog(playerid){
- new str[512];
- format(str,sizeof str,"{00FF00}==============================================\n{ffffff}| Добро пожаловать на сервер BOTG!\n{ffffff}| Всего зарегистрировано игроков: %d\n{ffffff}| Введите свой пароль для регистраций на сервере:\n{ffffff}| Ваш пароль должен содержать не менее чем 4 символов.\n{00FF00}==============================================",sStruct[Registered]);
- return ShowPlayerDialog(playerid,D_REGISTER,DIALOG_STYLE_INPUT,"Регистрация",str,"< Ввести >","< Выход >");
- }
- color(){
- return 0x11FF00FF+random(0xFF)*pow((0xF+1),2);
- }
- pow(v,s){
- if(!s) return s;
- new t=1;
- new r=v;
- while(t<s)
- {
- r*=v;
- t++;
- }
- return r;
- }
- IsRaceCar(model){
- switch(model)
- {
- case 443,448,461,462,463,468,521,522,
- 523,581,586,481,509,510,430,446,
- 452,453,454,472,473,484,493,595,
- 417,425,447,465,469,487,488,497,
- 501,548,563,406,444,556,557,573,
- 460,464,476,511,512,513,519,520,
- 539,553,577,592,593,471:return 1;
- }
- return 0;
- }
- StartRace(){
- KillTimer(rStruct[rTimer]);
- if(IsPlayerConnected(rStruct[rPlayers][0]))rStruct[rCar][0] = CreateVehicle(rStruct[rCarID],335.9109,-1646.2317,32.8562,262.0183,128,128,999999); // race_1
- if(IsPlayerConnected(rStruct[rPlayers][1]))rStruct[rCar][1] = CreateVehicle(rStruct[rCarID],324.3786,-1644.6122,32.8705,261.4973,129,129,999999); // race_2
- if(IsPlayerConnected(rStruct[rPlayers][2]))rStruct[rCar][2] = CreateVehicle(rStruct[rCarID],334.8986,-1641.0206,32.8277,263.2744,130,130,999999); // race_3
- if(IsPlayerConnected(rStruct[rPlayers][3]))rStruct[rCar][3] = CreateVehicle(rStruct[rCarID],319.4552,-1639.2094,32.8532,263.4655,131,131,999999); // race_4
- for(new i;i<4;i++){
- if(!IsPlayerConnected(rStruct[rPlayers][i]))continue;
- SetPlayerInterior(rStruct[rPlayers][i],0);
- SetPlayerVirtualWorld(rStruct[rPlayers][i],0);
- PutPlayerInVehicle(rStruct[rPlayers][i], rStruct[rCar][i], 0);
- TogglePlayerControllable(rStruct[rPlayers][i],0);
- }
- rStruct[rCount] = 5;
- rStruct[rTimer] = SetTimer("RaceCount",5000,true);
- rStruct[rStage] = RACE_WORKS;
- return 1;
- }
- CreateRaceCheckpoints(playerid){
- switch(pStruct[playerid][rCheckpoint]){
- case 0:SetPlayerRaceCheckpoint(playerid,0,535.9774,-1665.1848,18.2109,534.4357,-1418.8213,15.6329,15);
- case 1:SetPlayerRaceCheckpoint(playerid,0,534.4357,-1418.8213,15.6329,1060.2518,-1400.7173,13.1459,15);
- case 2:SetPlayerRaceCheckpoint(playerid,0,1060.2518,-1400.7173,13.1459,1058.9830,-1145.7006,23.4229,15);
- case 3:SetPlayerRaceCheckpoint(playerid,0,1058.9830,-1145.7006,23.4229,1349.7616,-1148.2290,23.3753,15);
- case 4:SetPlayerRaceCheckpoint(playerid,1,1349.7616,-1148.2290,23.3753,1371.0981,-941.3430,33.8672,15);
- }
- pStruct[playerid][rCheckpoint]++;
- }
- StopRace(){
- for(new i;i<4;i++){
- DestroyVehicle(rStruct[rCar][i]);
- DisablePlayerRaceCheckpoint(rStruct[rPlayers][i]);
- }
- }
- LoadObjects(){
- CreateObject(18759, 1082.27258, -1170.10962, 59.19857, 0.00000, 0.00000, 0.00000);
- CreateObject(17864, 4203.108887, -1662.351196, 9.542965, 0.0000, 0.0000, 0.0000);
- //Jungle [For DM and TDM]
- CreateObject(17864, 4203.000000, -1633.000000, 10.000000, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4202.899902, -1603.300781, 10.399994, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4164.903809, -1662.387573, 9.555874, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4164.919922, -1632.302612, 9.917000, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4164.914551, -1603.488647, 10.327705, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4165.182129, -1692.049438, 9.119066, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4203.171387, -1691.804932, 9.161652, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4241.291504, -1691.942871, 9.035635, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4241.151855, -1660.648804, 9.541903, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4241.101074, -1630.603027, 9.988836, 0.0000, 0.0000, 0.0000);
- CreateObject(17864, 4241.082520, -1603.185547, 10.364004, 0.0000, 0.0000, 0.0000);
- CreateObject(1683, 4224.729492, -1615.330078, 11.217764, 338.4104, 24.0642, 64.4577);
- CreateObject(664, 4234.795898, -1622.820435, 7.597896, 0.0000, 0.0000, 0.0000);
- CreateObject(664, 4258.219727, -1589.301514, 18.022781, 0.0000, 0.0000, 235.4857);
- CreateObject(688, 4212.084961, -1618.470825, 10.554691, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4236.235352, -1609.770630, 10.179461, 0.0000, 0.0000, 45.5501);
- CreateObject(688, 4216.221191, -1609.681030, 10.570307, 0.0000, 0.0000, 97.9758);
- CreateObject(689, 4232.865723, -1595.235107, 14.843340, 0.0000, 0.0000, 304.1366);
- CreateObject(17029, 4248.204590, -1582.740845, 11.067765, 0.0000, 0.0000, 206.1607);
- CreateObject(17029, 4258.798340, -1617.936768, 6.561999, 0.0000, 0.0000, 120.2170);
- CreateObject(17029, 4264.029297, -1650.064453, 9.930723, 0.0000, 0.0000, 120.2170);
- CreateObject(17029, 4241.132813, -1697.980591, 10.621599, 0.0000, 0.0000, 66.0727);
- CreateObject(17029, 4199.752441, -1712.842529, 8.297617, 0.0000, 0.0000, 32.5548);
- CreateObject(17029, 4159.946289, -1699.276123, 6.477360, 0.0000, 0.0000, 334.9728);
- CreateObject(17029, 4148.031250, -1658.330444, 6.174082, 0.0000, 0.0000, 282.5475);
- CreateObject(17029, 4150.702148, -1612.827026, 10.683632, 0.0000, 0.0000, 279.1097);
- CreateObject(17029, 4180.450684, -1591.055908, 7.243537, 0.0000, 0.0000, 218.0897);
- CreateObject(17029, 4208.252441, -1586.336426, 9.322004, 0.0000, 0.0000, 211.2141);
- CreateObject(688, 4188.407715, -1630.723877, 10.300560, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4193.757324, -1636.891846, 10.293558, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4199.258301, -1643.553101, 10.088747, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4206.528809, -1650.417969, 10.050646, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4214.880859, -1654.648071, 10.072086, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4222.226074, -1664.361084, 9.804857, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4217.191406, -1660.394409, 9.853991, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4220.100098, -1672.939819, 9.644855, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4221.840332, -1672.769043, 9.671789, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4218.496582, -1680.680664, 9.638523, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4218.403809, -1687.556641, 10.613482, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4185.846680, -1637.615479, 10.204729, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4190.574707, -1645.191895, 10.110624, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4197.507813, -1651.582642, 10.009247, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4203.262695, -1657.865234, 9.878462, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4209.300781, -1664.846680, 9.701262, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4211.017090, -1672.325806, 9.634821, 0.0000, 0.0000, 0.0000);
- CreateObject(688, 4208.018555, -1680.798950, 9.658691, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4189.663574, -1636.707275, 6.427950, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4190.401367, -1645.876953, 9.582941, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4196.386719, -1650.176636, 7.304234, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4200.842773, -1654.964355, 6.983436, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4205.780273, -1660.284302, 5.576230, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4207.409668, -1665.778076, 5.717142, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4214.979004, -1671.239624, 4.424974, 0.0000, 0.0000, 0.0000);
- CreateObject(658, 4210.820801, -1679.994141, 6.011795, 0.0000, 0.0000, 0.0000);
- CreateObject(800, 4184.065918, -1692.066162, 12.805120, 0.0000, 0.0000, 0.0000);
- CreateObject(800, 4187.585449, -1689.348633, 11.868803, 0.0000, 0.0000, 71.3332);
- CreateObject(801, 4182.896973, -1687.911621, 9.182002, 0.0000, 0.0000, 0.0000);
- CreateObject(803, 4177.067383, -1689.553345, 10.677214, 0.0000, 0.0000, 0.0000);
- CreateObject(804, 4180.183594, -1687.769043, 10.355478, 0.0000, 0.0000, 62.7389);
- CreateObject(818, 4165.123535, -1614.547852, 16.074409, 0.0000, 0.0000, 0.0000);
- CreateObject(818, 4167.103516, -1619.682861, 13.290346, 0.0000, 0.0000, 0.0000);
- CreateObject(818, 4168.309082, -1619.126343, 13.911998, 0.0000, 0.0000, 0.0000);
- CreateObject(818, 4168.501953, -1620.735596, 11.618527, 0.0000, 0.0000, 0.0000);
- CreateObject(818, 4172.362793, -1619.236206, 12.359555, 0.0000, 0.0000, 0.0000);
- CreateObject(818, 4171.444336, -1621.432739, 11.812219, 0.0000, 0.0000, 0.0000);
- CreateObject(822, 4172.621582, -1679.063843, 11.590391, 0.0000, 0.0000, 28.3614);
- CreateObject(822, 4174.230469, -1677.239746, 11.594109, 0.0000, 0.0000, 28.3614);
- CreateObject(822, 4199.485840, -1665.776001, 11.759916, 0.0000, 0.0000, 28.3614);
- CreateObject(822, 4195.325195, -1664.215454, 11.016867, 0.0000, 0.0000, 64.4578);
- CreateObject(873, 4175.638184, -1630.955811, 11.892777, 0.0000, 0.0000, 0.0000);
- CreateObject(873, 4173.715332, -1627.023315, 11.802841, 0.0000, 0.0000, 174.4658);
- CreateObject(873, 4170.419922, -1632.222656, 11.378857, 0.0000, 0.0000, 186.4979);
- CreateObject(874, 4174.414063, -1629.232178, 11.938376, 0.0000, 0.0000, 0.0000);
- CreateObject(8836, 4220.290039, -1632.153687, 12.127916, 0.0000, 0.0000, 0.0000);
- CreateObject(8836, 4220.027344, -1637.078247, 12.018527, 0.0000, 0.0000, 0.0000);
- CreateObject(8836, 4226.513672, -1633.863525, 12.078214, 0.0000, 0.0000, 306.7149);
- CreateObject(9153, 4180.330566, -1661.426270, 14.061169, 0.0000, 0.0000, 33.5180);
- CreateObject(647, 4171.834473, -1628.737183, 11.910480, 0.0000, 0.0000, 0.0000);
- CreateObject(647, 4176.197266, -1630.514648, 11.877828, 0.0000, 0.0000, 0.0000);
- CreateObject(647, 4172.699219, -1633.010864, 11.720899, 0.0000, 0.0000, 0.0000);
- CreateObject(1218, 4212.624023, -1627.588135, 10.928268, 40.3935, 239.6788, 154.6987);
- CreateObject(1218, 4212.332520, -1627.387085, 10.431797, 39.5341, 271.4780, 188.2168);
- CreateObject(1222, 4212.067383, -1628.519287, 10.675183, 0.0000, 0.0000, 0.0000);
- CreateObject(1222, 4211.019531, -1626.911743, 10.420916, 259.4460, 161.3666, 2.4746);
- CreateObject(2780, 4222.215820, -1620.167847, 10.765604, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4212.090820, -1628.531128, 9.655496, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4217.263184, -1623.766724, 13.712317, 71.3332, 0.0000, 321.3253);
- CreateObject(3461, 4215.707520, -1626.719360, 8.439608, 7.7349, 0.0000, 321.3253);
- CreateObject(3461, 4220.835938, -1625.463623, 14.030025, 182.9561, 0.0000, 321.3253);
- CreateObject(3461, 4217.566406, -1629.044556, 16.462524, 79.8237, 0.0000, 321.3253);
- CreateObject(918, 4242.319336, -1647.717529, 10.132179, 0.0000, 0.0000, 0.0000);
- CreateObject(918, 4242.182129, -1647.224365, 9.924934, 261.1648, 271.4780, 17.1887);
- CreateObject(3461, 4242.262207, -1647.483154, 8.181537, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4240.961914, -1647.359253, 7.839777, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4240.279297, -1647.382690, 8.174280, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4239.666016, -1646.448853, 8.173217, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4238.616211, -1645.565918, 8.187388, 0.0000, 0.0000, 0.0000);
- CreateObject(3461, 4238.900879, -1646.990356, 8.170744, 0.0000, 0.0000, 0.0000);
- CreateObject(647, 4220.498535, -1634.330566, 11.820221, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4226.610840, -1631.568604, 11.744338, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4228.044434, -1634.024536, 11.716819, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4225.833496, -1633.849365, 11.710730, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4233.779785, -1627.340332, 11.941751, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4233.659180, -1622.621948, 11.355304, 0.0000, 0.0000, 36.0963);
- CreateObject(647, 4237.471191, -1627.569702, 11.656716, 0.0000, 0.0000, 36.0963);
- CreateObject(745, 4212.211914, -1643.980225, 10.378855, 0.0000, 0.0000, 36.0963);
- CreateObject(745, 4216.067383, -1640.731445, 9.785460, 0.0000, 0.0000, 85.0842);
- CreateObject(745, 4209.976563, -1637.493042, 9.521328, 0.0000, 0.0000, 48.1285);
- CreateObject(746, 4209.179688, -1642.461670, 10.980800, 0.0000, 0.0000, 141.8071);
- CreateObject(879, 4186.029785, -1616.561768, 10.552260, 0.0000, 0.0000, 0.0000);
- CreateObject(746, 4197.501465, -1642.614380, 11.002655, 0.0000, 0.0000, 0.0000);
- CreateObject(746, 4206.760254, -1653.833740, 10.899881, 0.0000, 0.0000, 26.6425);
- return print("** Объекты загружены.");
- }
- IsPlayerInRaceVehicle(playerid){
- new vehicleid = GetPlayerVehicleID(playerid);
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return 0;
- if(rStruct[rCar][0] == vehicleid)return 1;
- if(rStruct[rCar][1] == vehicleid)return 1;
- if(rStruct[rCar][2] == vehicleid)return 1;
- if(rStruct[rCar][3] == vehicleid)return 1;
- return 0;
- }
- SetPlayerPosEx(playerid,Float:x,Float:y,Float:z,int,vw){
- SetPlayerPos(playerid,x,y,z);
- SetPlayerInterior(playerid,int);
- SetPlayerVirtualWorld(playerid,vw);
- }
- CMD:join(playerid,params[]){
- if(rStruct[rStage] == RACE_OFF)return SendClientMessage(playerid,color(),"Сначала начните гонку: /startrace");
- if(rStruct[rStage] == RACE_WORKS)return SendClientMessage(playerid,color(),"Подождите пока закончится гонка.");
- if(pStruct[playerid][rJoined])return SendClientMessage(playerid,color(),"Вы уже участвуете в гонке!");
- new str[128];
- if(rStruct[rPlayers][0] == INVALID_PLAYER_ID){
- rStruct[rPlayers][0] = playerid;
- pStruct[playerid][rJoined] = true;
- format(str,sizeof str,"Race: %s[%d] зарегистрировался в гонке. Нужно еще 3 гонщика.",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- return 1;
- }
- if(rStruct[rPlayers][1] == INVALID_PLAYER_ID){
- rStruct[rPlayers][1] = playerid;
- pStruct[playerid][rJoined] = true;
- format(str,sizeof str,"Race: %s[%d] зарегистрировался в гонке. Нужно еще 2 гонщика.",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- return 1;
- }
- if(rStruct[rPlayers][2] == INVALID_PLAYER_ID){
- rStruct[rPlayers][2] = playerid;
- pStruct[playerid][rJoined] = true;
- format(str,sizeof str,"Race: %s[%d] зарегистрировался в гонке. Нужно еще 1 гонщик.",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- return 1;
- }
- if(rStruct[rPlayers][3] == INVALID_PLAYER_ID){
- rStruct[rPlayers][3] = playerid;
- pStruct[playerid][rJoined] = true;
- format(str,sizeof str,"Race: %s[%d] зарегистрировался в гонке. Начинаем гонку!",pStruct[playerid][name],playerid);
- SendClientMessageToAll(color(),str);
- StartRace();
- return 1;
- }
- return 1;
- }
- CMD:startrace(playerid,params[]){
- if(rStruct[rStage])return SendClientMessage(playerid,color(),"Гонку уже начали войти: /join");
- if(sscanf(params,"dd",rStruct[rPrice],rStruct[rCarID]))return SendClientMessage(playerid,color(),"CMD: /startrace [price] [carid]");
- if(rStruct[rPrice] > 10000)return SendClientMessage(playerid,color(),"CMD: Приз не больше 10000$");
- if(rStruct[rCarID] < 400 || rStruct[rCarID] > 611)return SendClientMessage(playerid,color(),"CMD: Ид авто от 400 до 611");
- if(IsRaceCar(rStruct[rCarID]))return SendClientMessage(playerid,color(),"CMD: Это авто не подходит для гонки!");
- rStruct[rStage] = RACE_START;
- for(new i;i<4;i++)rStruct[rPlayers][i] = INVALID_PLAYER_ID;
- new str[128];
- format(str,sizeof str,"Race: Начинаются гонки 1 место приз {00ff00}%d$ На тачках: %s",rStruct[rPrice],CarName[rStruct[rCarID]-400]);
- SendClientMessageToAll(color(),str);
- SendClientMessageToAll(color(),"Race: 2 минуты на сборы гонщиков. Участники введите /join");
- rStruct[rTimer] = SetTimer("CheckRace",2*60000,false);
- return 1;
- }
- CMD:sethealth(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня!");
- if(!strlen(params[0]))return SendClientMessage(playerid,color(),"CMD: /sethealth [id] [health]");
- if(!IsPlayerConnected(strval(params[0])))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(!strlen(params[1]))return SendClientMessage(playerid,color(),"CMD: /sethealth [id] [health]");
- if(strval(params[1]) > 100)return SendClientMessage(playerid,color(),"Количество жизни не больше 100!");
- SetPlayerHealth(strval(params[0]),strval(params[1]));
- new str[48];
- format(str,sizeof str,"Health: %d",strval(params[1]));
- GameTextForPlayer(strval(params[0]),str,3000,1);
- return 1;
- }
- CMD:giveweapon(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня!");
- if(sscanf(params,"ddd",params[0],params[1],params[2]))return SendClientMessage(playerid,color(),"CMD: /giveweapon [id] [weaponid] [ammo]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(params[1] > 46)return SendClientMessage(playerid,color(),"Weaponid не больше 46");
- GiveWeapon(params[0],params[1],params[2]);
- new str[128],gunname[32];
- switch(params[1]){
- case 18:gunname = "Molotov";
- case 44:gunname = "Night Vis Goggles";
- case 45:gunname = "Thermal Goggles";
- default:GetWeaponName(params[1],gunname,sizeof gunname);
- }
- format(str,sizeof str,"%s[%d] получил %s патроны: %d",pStruct[params[0]][name],params[0],gunname,params[2]);
- SendClientMessage(playerid,color(),str);
- format(str,sizeof str,"Вы получил %s патроны: %d",gunname,params[2]);
- SendClientMessage(params[0],color(),str);
- return 1;
- }
- CMD:car(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня!");
- if(sscanf(params,"ddd",params[0],params[1],params[2]))return SendClientMessage(playerid,color(),"CMD: /car [id] [color1] [color2]");
- if(params[0] > 611 || params[0] < 400)return SendClientMessage(playerid,color(),"ID не меньше 400 не больше 611!");
- new str[128],Float:pp[4];
- GetPlayerPos(playerid,pp[0],pp[1],pp[2]);
- GetPlayerFacingAngle(playerid,pp[3]);
- if(pStruct[playerid][CarID] != INVALID_VEHICLE_ID)DestroyVehicle(pStruct[playerid][CarID]);
- pStruct[playerid][CarID] = CreateVehicle(params[0],pp[0],pp[1],pp[2],pp[3],params[1],params[2],500000);
- PutPlayerInVehicle(playerid, pStruct[playerid][CarID], 0);
- format(str,sizeof str,"Наколдовано: %s Model ID: %d",CarName[params[0]-400],params[0]);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- CMD:gmx(playerid,params[]){
- if(pStruct[playerid][admin] < 5)return SendClientMessage(playerid,color(),"Команда для администраторов выше 5 уровня!");
- GameModeExit();
- return 1;
- }
- CMD:mm(playerid,params[]){
- ShowServerMenu(playerid);
- return 1;
- }
- CMD:report(playerid,params[]){
- ShowPlayerDialog(playerid,D_REPORT,DIALOG_STYLE_INPUT,"Сообщение","{ffff00}Введите ваше сообшение администратору","Отправить","Отмена");
- return 1;
- }
- CMD:unmute(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня");
- if(sscanf(params,"d",params[0]))return SendClientMessage(playerid,color(),"CMD: /unmute [id]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(!pStruct[playerid][mute])return SendClientMessage(playerid,color(),"Игрок не заткнут!");
- pStruct[params[0]][mute] = 1;
- new str[128];
- format(str,sizeof str,"Игрок %s[%d] может писать в чат.",pStruct[params[0]][name],params[0]);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- CMD:mute(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня");
- new reason[64];
- if(sscanf(params,"ds[64]d",params[0],reason,params[2]))return SendClientMessage(playerid,color(),"CMD: /mute [id] [причина] [время] (в секундах)");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(params[2] < 10)return SendClientMessage(playerid,color(),"Время не меньше 10 секунд.");
- pStruct[params[0]][mute] = params[2];
- new str[256];
- format(str,sizeof str,"Администратор %s[%d] заткнул игрока %s[%d]. Причина: %s На %d секунд.",pStruct[playerid][name],playerid,pStruct[params[0]][name],params[0],reason,params[2]);
- SendClientMessageToAll(color(),str);
- return 1;
- }
- CMD:setadmin(playerid,params[]){
- if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,color(),"Команда для RCON администраторов!");
- if(sscanf(params,"dd",params[0],params[1]))return SendClientMessage(playerid,color(),"CMD: /setadmin [id] [lvl]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(params[1] > 5)return SendClientMessage(playerid,color(),"Админ уровень не больше 5!");
- pStruct[params[0]][admin] = params[1];
- new msg[256];
- format(msg,sizeof msg,"Вы получили админ права уровнем: %d",params[1]);
- SendClientMessage(params[0],color(),msg);
- format(msg,sizeof msg,"%s[%d] получил админ права уровнем: %d",pStruct[params[0]][name],params[0],params[1]);
- SendClientMessage(playerid,color(),msg);
- return 1;
- }
- CMD:admins(playerid,params[]){
- new admins[2048],str[64];
- for(new i;i<MAX_PLAYERS;i++){
- if(IsPlayerConnected(playerid) && pStruct[i][admin]){
- format(str,sizeof str,"{00FF00}%s | LVL: %d | ID: %d\n",pStruct[i][name],pStruct[i][admin],i);
- strcat(admins,str);
- }
- }
- if(!strlen(admins))admins = "Все администраторы offline";
- ShowPlayerDialog(playerid,D_ADMINS,DIALOG_STYLE_MSGBOX,"Admins online",admins,"Ok","");
- return 1;
- }
- CMD:freeze(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня");
- if(sscanf(params,"ds[64]d",params[0],params[1],params[2]))return SendClientMessage(playerid,color(),"CMD: /freeze [id] [reason] [time]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(params[2] < 10)return SendClientMessage(playerid,color(),"Время не меньше 10 секунд");
- TogglePlayerControllable(params[0],0);
- pStruct[params[0]][freeze] = params[2];
- new str[128];
- format(str,sizeof str,"Администратор %s[%d] заморозил игрока %s[%d]. Причина: %s Время: %d (сек)",pStruct[playerid][name],playerid,pStruct[params[0]][name],params[0],params[1],params[2]);
- SendClientMessageToAll(color(),str);
- return 1;
- }
- CMD:unfreeze(playerid,params[]){
- if(pStruct[playerid][admin] < 2)return SendClientMessage(playerid,color(),"Команда для администраторов выше 2 уровня");
- if(sscanf(params,"d",params[0]))return SendClientMessage(playerid,color(),"CMD: /unfreeze [id]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(!pStruct[playerid][freeze])return SendClientMessage(playerid,color(),"Игрок не заморожен!");
- pStruct[params[0]][freeze] = 1;
- new str[128];
- format(str,sizeof str,"Игрок %s[%d] разморожен.",pStruct[params[0]][name],params[0]);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- CMD:chouse(playerid,params[]){
- if(pStruct[playerid][admin] < 5)return SendClientMessage(playerid,color(),"Вы не главный администратор!");
- if(MAX_HOUSES == sStruct[Houses])return SendClientMessage(playerid,color(),"Лимит домов!");
- if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,color(),"Для создание дома выйдите на улицу!");
- if(sscanf(params,"dd",params[0],params[1]))return SendClientMessage(playerid,color(),"CMD: /chouse [цена] [интерьер]");
- if(params[0] > 100000 || params[0] < 10000)return SendClientMessage(playerid,color(),"Цена не меньше 10000$ не больше 100000$");
- if(params[1] > 8)return SendClientMessage(playerid,color(),"Интерьер от 0 до 9");
- GetPlayerPos(playerid,hStruct[sStruct[Houses]][hPos][0],hStruct[sStruct[Houses]][hPos][1],hStruct[sStruct[Houses]][hPos][2]);
- format(hStruct[sStruct[Houses]][hOwner],24,"None");
- format(hStruct[sStruct[Houses]][hName],24,"None");
- hStruct[sStruct[Houses]][hCost] = params[0];
- hStruct[sStruct[Houses]][hInt] = params[1];
- hStruct[sStruct[Houses]][hLoaded] = true;
- UpdateHouse(sStruct[Houses]);
- CreateHouseOnBD(sStruct[Houses]);
- new str[64];
- format(str,sizeof str,"House ID: %d | Цена: %d | Интерьер: %d",sStruct[Houses],hStruct[sStruct[Houses]][hCost],hStruct[sStruct[Houses]][hInt]);
- SendClientMessage(playerid,color(),str);
- sStruct[Houses]++;
- return 1;
- }
- CMD:exit(playerid,params[]){
- if(pStruct[playerid][InHouse] == false)return SendClientMessage(playerid,color(),"Вы не входили в дом!");
- pStruct[playerid][InHouse] = false;
- SetPlayerPosEx(playerid,hStruct[pStruct[playerid][CurrenthID]][hPos][0],hStruct[pStruct[playerid][CurrenthID]][hPos][1],hStruct[pStruct[playerid][CurrenthID]][hPos][2],0,0);
- return 1;
- }
- CMD:savebase(playerid,params[]){
- if(pStruct[playerid][admin] < 5)return SendClientMessage(playerid,color(),"Вы не главный администратор!");
- SaveAllHouses();
- for(new i;i<MAX_PLAYERS;i++)if(IsPlayerConnected(i))Savestructure(i);
- SendClientMessage(playerid,color(),"База данных успешно сохранена!");
- return 1;
- }
- CMD:setmoney(playerid,params[]){
- if(pStruct[playerid][admin] < 4)return SendClientMessage(playerid,color(),"Команда для администраторов выше 4 уровня");
- if(sscanf(params,"dd",params[0],params[1]))return SendClientMessage(playerid,color(),"CMD: /setmoney [id] [money]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(params[1] > 1000000)return SendClientMessage(playerid,color(),"Money не больше 1000000");
- pStruct[params[0]][money] = params[1];
- new str[256];
- format(str,256,"Администратор %s[%d] изменил количество ваших денег на: %d",pStruct[playerid][name],playerid,params[1]);
- SendClientMessage(params[0],color(),str);
- format(str,128,"%s[%d] Money: %d",pStruct[params[0]][name],params[0],params[1]);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- CMD:givemoney(playerid,params[]){
- if(sscanf(params,"dd",params[0],params[1]))return SendClientMessage(playerid,color(),"CMD: /givecash [id] [money]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- if(pStruct[playerid][money] < params[1])return SendClientMessage(playerid,color(),"У вас нет таких денег!");
- pStruct[params[0]][money] += params[1];
- pStruct[playerid][money] -= params[1];
- new str[128];
- format(str,sizeof str,"%s[%d] передал вам {00ff00}%d$",pStruct[playerid][name],playerid,params[1]);
- SendClientMessage(params[0],color(),str);
- format(str,sizeof str,"%s[%d] получил {00ff00}%d$",pStruct[params[0]][name],params[0],params[1]);
- SendClientMessage(playerid,color(),str);
- return 1;
- }
- CMD:goto(playerid,params[]){
- if(pStruct[playerid][admin] < 3)return SendClientMessage(playerid,color(),"Команда для администратора выше 2 уровня!");
- if(sscanf(params,"d",params[0]))return SendClientMessage(playerid,color(),"CMD: /goto [id]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- new str[128],Float:pos[3],int,vw;
- GetPlayerPos(params[0],pos[0],pos[1],pos[2]);
- int = GetPlayerInterior(params[0]);
- vw = GetPlayerVirtualWorld(params[0]);
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
- new id = GetPlayerVehicleID(playerid);
- SetVehiclePos(id,pos[0],pos[1],pos[2]);
- LinkVehicleToInterior(id,int);
- SetVehicleVirtualWorld(id,vw);
- }
- else SetPlayerPosEx(playerid,pos[0],pos[1],pos[2],int,vw);
- format(str,sizeof str,"Администратор %s[%d] телепортировался к тебе.",pStruct[playerid][name],playerid);
- SendClientMessage(params[0],color(),str);
- return 1;
- }
- CMD:get(playerid,params[]){
- if(pStruct[playerid][admin] < 3)return SendClientMessage(playerid,color(),"Команда для администратора выше 2 уровня!");
- if(sscanf(params,"d",params[0]))return SendClientMessage(playerid,color(),"CMD: /get [id]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- new str[128],Float:pos[3],int,vw;
- GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
- int = GetPlayerInterior(playerid);
- vw = GetPlayerVirtualWorld(playerid);
- if(GetPlayerState(params[0]) == PLAYER_STATE_DRIVER){
- new id = GetPlayerVehicleID(params[0]);
- SetVehiclePos(id,pos[0],pos[1],pos[2]);
- LinkVehicleToInterior(id,int);
- SetVehicleVirtualWorld(id,vw);
- }
- else SetPlayerPosEx(params[0],pos[0],pos[1],pos[2],int,vw);
- format(str,sizeof str,"Администратор %s[%d] телепортировал вас к себе.",pStruct[playerid][name],playerid);
- SendClientMessage(params[0],color(),str);
- return 1;
- }
- CMD:getinfo(playerid,params[]){
- if(pStruct[playerid][admin] < 3)return SendClientMessage(playerid,color(),"Команда для администратора выше 2 уровня!");
- if(sscanf(params,"d",params[0]))return SendClientMessage(playerid,color(),"CMD: /getinfo [id]");
- if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,color(),"Игрок не подключен!");
- ShowPlayerInfo(params[0],playerid);
- return 1;
- }
- CMD:acmds(playerid,params[]){
- if(!pStruct[playerid][admin])return SendClientMessage(playerid,color(),"Команда для администраторов.");
- new text[] = "\
- {FFFF00}[0] {FFFFFF}/sethealth [id] [health]\n\
- {FFFF00}[1] {FFFFFF}/giveweapon [id] [weapid] [ammo]\n\
- {FFFF00}[2] {FFFFFF}/car [modelid] [color1] [color2]\n\
- {FFFF00}[3] {FFFFFF}/unmute [id]\n\
- {FFFF00}[4] {FFFFFF}/mute [id] [reason] [time]\n\
- {FFFF00}[5] {FFFFFF}/freeze [id] [reason] [time]\n\
- {FFFF00}[6] {FFFFFF}/unfreeze [id]\n\
- {FFFF00}[7] {FFFFFF}/setmoney [id] [money]\n\
- {FFFF00}[8] {FFFFFF}/goto [id]\n\
- {FFFF00}[9] {FFFFFF}/get [id]\n\
- {FFFF00}[10] {FFFFFF}/getinfo [id]";
- ShowPlayerDialog(playerid,D_ACMDS,DIALOG_STYLE_MSGBOX,"Админ команды",text,"Okay","");
- return 1;
- }
- CMD:cmds(playerid,params[]){
- new text[] = "\
- {00FF00}[0] {FFFFFF}/join\n\
- {00FF00}[1] {FFFFFF}/startrace [price] [carid]\n\
- {00FF00}[2] {FFFFFF}/mm\n\
- {00FF00}[3] {FFFFFF}/report\n\
- {00FF00}[4] {FFFFFF}/admins\n\
- {00FF00}[5] {FFFFFF}/exit\n\
- {00FF00}[6] {FFFFFF}/givemoney [id] [money]";
- ShowPlayerDialog(playerid,D_CMDS,DIALOG_STYLE_MSGBOX,"Команды",text,"Okay","");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement