dan4ik228
Дебютант
Здравствуйте:av:,я написал полную команду, здесь сразу есть всё для МП
Данная команда даёт ХП кто стоит возле вас на МП
--------------------------------------------------------------------------------------------------
Данная команда даёт броню кто стоит возле вас на МП
--------------------------------------------------------------------------------------------------
На всех рп серверах есть МП(конкурсы ивенты и.т.д), чтоб тп на МП , восновном все люди пишут в репорт свой ид но я сделал иначе!
для начало содаем enum для тп
затем создаем команду чтоб открыть/закрыть телепорт у нас будет /mp
идем в Public OnPlayerCommandText
чтоб открыть тп надо написать так: /mp [тип мероприятия от 1 до 10][радиус от 1 до 10][дать оружие1/0][зароморить1/0] .
чтоб закрыть тп пишем /mp 0 0 0 0!
____________________________________
Дальше суем это в конец мода!
и теперь идем в public OnPlayerText (это нужно чтоб если ты написал в чат свой ид то ты будешь тп!)
--------------------------------------------------------------------------------------------------
Данная команда даёт оружия кто стоит возле вас на МП
**************************
От + не откажусь :df:
**************************
Данная команда даёт ХП кто стоит возле вас на МП
PHP:
if(strcmp(cmd, "/hpmp", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 1 )// ИМ и старше
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetDistanceBetweenPlayers(playerid,i) < 32 && playerid != i )
{
SetPlayerHealth(i,100);
SendClientMessage(i, COLOR_GRAD1, " Администратор пополнил тебе здоровье.");
}
}
SendClientMessage(playerid, COLOR_GRAD1, " Ты пополнил здоровье рядом находящимся игрокам.");
return 1;
}
SendClientMessage(playerid, COLOR_GRAD1, " Нет прав для использования этой команды");
return 1;
}
Данная команда даёт броню кто стоит возле вас на МП
PHP:
if(strcmp(cmd, "/armormp", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 1 )// ИМ и старше
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetDistanceBetweenPlayers(playerid,i) < 32 && playerid != i )
{
SetPlayerArmour(i,100);
SendClientMessage(i, COLOR_GRAD1, " Администратор пополнил тебе Броню.");
}
}
SendClientMessage(playerid, COLOR_GRAD1, " Ты пополнил здоровье рядом находящимся игрокам.");
return 1;
}
SendClientMessage(playerid, COLOR_GRAD1, " Нет прав для использования этой команды");
return 1;
}
На всех рп серверах есть МП(конкурсы ивенты и.т.д), чтоб тп на МП , восновном все люди пишут в репорт свой ид но я сделал иначе!
для начало содаем enum для тп
PHP:
enum IMPEnum
{
IMPID,
IMPType, // тип ивента,если 0 то ивент отключен
IMPRW, // конфисковывать ли оружие?
IMPFreeze, // замораживать ли игроков?
IMPGunID, // оружие
IMPAmmo, // патроны к оружию
IMPCar, // модель машины если 0 = ент
Float:IMPPosX, // позиция X
Float:IMPPosY, // позиция Y
Float:IMPPosZ, // позиция Z
IMPInt, // интерьер
IMPObjInt, // интерьер обьектов
IMPPosR // радиус по XY
}
new IMP[IMPEnum];
идем в Public OnPlayerCommandText
PHP:
if(strcmp(cmd, "/mp", true) == 0 || strcmp(cmd, "/meropr", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] >= 3)
{
new type,radius,wr,stype[64];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, " Использование: /mp [тип ивента не более 10] [радиус телепорта] (конф оружие 1/0) (заморозка 1/0)");
return 1;
}
type = strval(tmp);
if(type>10 || type<0)
{
SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
return 1;
}
if(type==0)
{
if(IMP[IMPType]==0)
{
SendClientMessage(playerid, COLOR_GRAD1, " Мероприятие не было начато!");
return 1;
}
IMP[IMPType]=0;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), " Объявление: ТП завершен! Контракт: [%d]%s Номер: %d ", playerid,sendername,PlayerInfo[playerid][pPnumber]);
BroadCast(TEAM_GROVE_COLOR,string);
return 1;
}
IMP[IMPType]=type;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
radius = 4;
}
else radius = strval(tmp);
if(radius>10 || radius<0) return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
IMP[IMPPosR]=radius;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
wr=0;
}
else wr = strval(tmp);
if(wr<0 || wr >1)return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
IMP[IMPRW]=wr;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
wr=0;
}
else wr = strval(tmp);
if(wr<0 || wr >1)return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
IMP[IMPFreeze]=wr;
GetPlayerPos(playerid,IMP[IMPPosX],IMP[IMPPosY],IMP[IMPPosZ]);IMP[IMPInt]=GetPlayerInterior(playerid);
switch(type)// причина
{
case 1: format(stype,64, "Ивент: ДМ , после ТП сразу в линию!");
case 2: format(stype,64, "Ивент: Гонка , после ТП сразу по машинам и в Линию!");
case 3: format(stype,64, "Ивент: Дерби , после ТП сразу по машинам!");
case 4: format(stype,64, "Телепорт: к Мерии ");
case 5: format(stype,64, "Ивент: ТДМ, Террористы против Ментов!");
case 6: format(stype,64, "Телепорт: Осмотр местности для ТДМ, после ТП в Линию!");
case 7: format(stype,64, "Ивент: Гонка на Гидрах(В разрабоке) ");
case 8: format(stype,64, "Ивент: Скриптовый ДМ, после ТП сразу в Линию! ");
case 9: format(stype,64, "Ивент: Скриптовая гонка, после ТП сразу по машинам и в Линию! ");
case 10: format(stype,64, "Ивент: Скриптовый Дерби, после ТП сразу в Линию! ");
default: return 1;
}
// format(string, sizeof(string), " Администратор %s: [%s] Ипспользуйте: /tomp для телепорта.", sendername,stype);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), " Объявление: %s,пишем ИД! Контракт: [%d]%s Номер: %d ", stype,playerid,sendername,PlayerInfo[playerid][pPnumber]);
BroadCast(TEAM_GROVE_COLOR,string);
}
}
if (!strcmp("/tomp", cmd,true))
{
ToIvent(playerid);
return 1;
}
чтоб закрыть тп пишем /mp 0 0 0 0!
____________________________________
Дальше суем это в конец мода!
PHP:
ToIvent(playerid)
{
new carid;
if(PlayerInfo[playerid][pJailed]>0) SendClientMessage(playerid, COLOR_GREY, " Недопустимая комманда для заключенных.");
else
{
if(IMP[IMPType]>0)
{
if(IMP[IMPType]==4)//телепорт к мерии
{
SetPlayerPos(playerid,1498.0271,-1744.0148,13.5469);
SetPlayerFacingAngle(playerid,0);
SetPlayerInterior(playerid,0);
}
if(IMP[IMPType]==7) //телепорт на гидрах
{
SetPlayerPos(playerid,1214.2761,-903.8991,42.6997);
PutPlayerInVehicle(playerid,520,1);
LockCar(carid);
Gas[carid] = GasMax;
SetPlayerHealth(playerid,100);
SetPlayerVirtualWorld(playerid, 1);
}
if(IMP[IMPType]==9) //телепорт на гидрах
{
SetPlayerPos(playerid,PlayMission[kCP1][0],PlayMission[kCP1][1],PlayMission[kCP1][2]);
//PutPlayerInVehicle(playerid,520,1);
SetPlayerHealth(playerid,100);
SetPlayerVirtualWorld(playerid, 1);
}
else
{
SetPlayerPos(playerid,IMP[IMPPosX]+RandomEx(-IMP[IMPPosR],IMP[IMPPosR]),IMP[IMPPosY]+RandomEx(-IMP[IMPPosR],IMP[IMPPosR]),IMP[IMPPosZ]);
SetPlayerInterior(playerid,IMP[IMPInt]);
}
SetPlayerHealth(playerid,100);
if(IMP[IMPRW]) ResetPlayerWeapons(playerid);
if(IMP[IMPFreeze]) TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, COLOR_GREY, " Тебя телепортировали на ивент.");
}
else SendClientMessage(playerid, COLOR_GRAD1, " Ивент отключен.");
}
}
RandomEx(min, max)
{
return random(max - min) + min;
}
PHP:
if(IMP[IMPType]!=0)
{
new id=ReturnUser(text);
if(id==playerid)
ToIvent(playerid);
return 0;
}
Данная команда даёт оружия кто стоит возле вас на МП
PHP:
if(strcmp(cmd, "/givegunmp", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, COLOR_GRAD1, " Нет прав для использования этой команды");
new gun;
new ammo;
tmp = strtok(cmdtext, idx);
gun = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, " Используйте: /givegungro [Ид-оружия] [патроны]");
SendClientMessage(playerid, COLOR_GRAD4, "3(Club) 4(knife) 5(bat) 6(Shovel) 7(Cue) 8(Katana) 10-13(Dildo) 14(Flowers) 16(Grenades) 18(Molotovs) 22(Pistol) 23(SPistol)");
SendClientMessage(playerid, COLOR_GRAD3, "24(Eagle) 25(shotgun) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Flamethrower) 41(spray) 42(exting) 43(Camera) 46(Parachute)");
return 1;
}
if(gun < 1||gun > 46||gun==27||gun==1||gun==2||gun==9||gun==17||gun==19||gun==20||gun==21||gun==36||gun==38||gun==39||gun==40||gun==44||gun==45)
{ SendClientMessage(playerid, COLOR_GRAD1, " Неизвестное оружие!"); return 1; }
tmp = strtok(cmdtext, idx);
ammo = strval(tmp);
if(ammo <1||ammo > 999)
{ SendClientMessage(playerid, COLOR_GRAD1, " Патронов от 1 до 999 шт!"); return 1; }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetDistanceBetweenPlayers(playerid,i) < 32 && playerid != i )
{
// PyxiTime[playa] = 5;
ServerGivePlayerWeapons(i, gun, ammo);
SendClientMessage(i, COLOR_GRAD1, " Администратор выдал тебе оружие.");
}
}
SendClientMessage(playerid, COLOR_GRAD1, " Ты дал оружие рядом находящимся игрокам.");
printf("Использвалась команда %s",cmd);
return 1;
}
return 1;
}
От + не откажусь :df:
**************************
Последнее редактирование:
