Ashley100
Умник
Ку всем. Данная система можно сказать немного приблизит действия на серве, к реальности.
Описание:
Вы кидаете гранату, и всего кого заденет волна взрыва, будут ослеплены на ~3 секунды.
Начнем...
Создаем переменную TD и переменные для проверок
Теперь создадим сам TD, для этого идем в OnGameModeInit()
И создадим команду
Далее идем в OnPlayerTakeDamage, для того чтобы узнать кого ослепить
Остались 2 паблика в которых и будет происходить действие
Вставить можете в конец мода:
Автор: CaveDweller
Описание:
Вы кидаете гранату, и всего кого заденет волна взрыва, будут ослеплены на ~3 секунды.
Начнем...
Создаем переменную TD и переменные для проверок
PHP:
new Text: FlashBang [ 5 ];
new FlashbangStage [ MAX_PLAYERS ];
new FlashbangSwayLevel [ MAX_PLAYERS ];
PHP:
for (new t = 1; t <= 4; t++)
{
FlashBang[t] = TextDrawCreate(-20.000000,2.000000,"|");
TextDrawUseBox(FlashBang[t],1);
TextDrawTextSize(FlashBang[t],660.000000,22.000000);
TextDrawAlignment(FlashBang[t],0);
TextDrawFont(FlashBang[t],3);
TextDrawLetterSize(FlashBang[t],1.000000,52.200000);
TextDrawBackgroundColor(FlashBang[t],0x000000ff);
TextDrawColor(FlashBang[t],0x000000ff);
TextDrawSetOutline(FlashBang[t],1);
TextDrawSetProportional(FlashBang[t],1);
TextDrawSetShadow(FlashBang[t],1);
}
TextDrawBoxColor(FlashBang[1],0xffffffff);
TextDrawBoxColor(FlashBang[2],0xffffffaa);
TextDrawBoxColor(FlashBang[3],0xffffff55);
TextDrawBoxColor(FlashBang[4],0xffffff22);
PHP:
CMD:flashka(playerid, params[])
{
new weaponId;
new ammoAmount;
GetPlayerWeaponData(playerid, 8, weaponId, ammoAmount);
if (weaponId == WEAPON_GRENADE && ammoAmount > 0)
{
return SendClientMessage(playerid, -1, "У вас уже есть зажигательная граната.");
}
SendClientMessage(playerid, -1, "Вы взяли зажигательную гранату.");
GivePlayerWeapon(playerid, WEAPON_GRENADE, 1);
return 1;
}
PHP:
if (weaponid == WEAPON_GRENADE || weaponid == 51)// Ну тут ясно, проверка на оружее(граната)
{
new Float:health;//->
GetPlayerHealth(playerid, health);// Получаем хп игрока
SetPlayerHealth(playerid, (health - (amount * 0.3)));// Отбираем хп
FlashbangStage[playerid] = 1;
HandleFlashbangStage(playerid);
}
Вставить можете в конец мода:
PHP:
forward HandleFlashbangStage(playerid);
public HandleFlashbangStage(playerid)
{
switch (FlashbangStage[playerid])
{
case 1 .. 5:
{
SetPlayerDrunkLevel(playerid, (FlashbangStage[playerid] == 1) ? 50000 : GetPlayerDrunkLevel(playerid));
if (FlashbangStage[playerid] == 2)
{
FlashbangSwayLevel[playerid] = 1;
HandleFlashbangSway(playerid);
}
if (FlashbangStage[playerid] < 5) TextDrawShowForPlayer(playerid, FlashBang[FlashbangStage[playerid]]);
if (FlashbangStage[playerid] > 1) TextDrawHideForPlayer(playerid, FlashBang[FlashbangStage[playerid] - 1]);
FlashbangStage[playerid] = ((FlashbangStage[playerid] == 5) ? -1 : FlashbangStage[playerid]);
}
}
if (FlashbangStage[playerid] < 5 && FlashbangStage[playerid] != -1)
{
FlashbangStage[playerid]++;
new time = (FlashbangStage[playerid] == 2) ? 1800 : 100;
SetTimerEx("HandleFlashbangStage", time, false, "i", playerid);
}
return 1;
}
forward HandleFlashbangSway(playerid);
public HandleFlashbangSway(playerid)
{
switch (FlashbangSwayLevel[playerid])
{
case 1 .. 6:
{
SetPlayerDrunkLevel(playerid, 10000 - (2000 * (FlashbangSwayLevel[playerid] - 1)));
if (FlashbangSwayLevel[playerid] == 6) FlashbangSwayLevel[playerid] = -1;
}
}
if (FlashbangSwayLevel[playerid] < 6 && FlashbangSwayLevel[playerid] != -1)
{
FlashbangSwayLevel[playerid]++;
new time = (FlashbangSwayLevel[playerid] == 5) ? 1000 : 600;
SetTimerEx("HandleFlashbangSway", time, false, "i", playerid);
}
}
Автор: CaveDweller
Последнее редактирование:
