shape1
shape2
shape3
shape4
shape7
shape8

Система ранений.


Omar

Новичок
Пользователь
31.07.2014
102
4
0
Здравствуйте!Сегодня я расскажу,как сделать систему ранений.С шансом 1 к 2 игрок упадет в обморок.При падении игрок будет заморожен,а время будет выбрана случайно.Время определится от 1 до 15 секунд.

И так,начнем!

1.Создаем паблик.

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
new ObmorokTime = random(45)+15;
new Obmorok = random (3);

2.Теперь,есть шанс того,что сила урона сможет убить игрока,а у него уже будет запущенна анимация,а это  приведет к отмене вызова   OnPlayerDeath.Что-бы этого не было,нужно сделать так,что-бы если у игрока меньше 10ХП,то скрипт не вызывается.

new Float:HP;
GetPlayerHealth(playerid, HP);
if (HP >=10 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{

3.Через swith проверям упал игрок в обморок или нет.Если упал - очищаем ему текущую анимацию, на время ObmorokTime применяем к нему анимацию и таймер для сброса этой анимации в указанное время.

switch (Obmorok)
{
case 2:
{
ClearAnimations(playerid);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.1, 0, 1, 1, 1, ObmorokTime*1000, 1);
SetTimerEx ("ClearAnimation", ObmorokTime*1000, false, "d", playerid);

4.Добавим информацию раненому и раневшему.

new string[128], victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME];
GetPlayerName(playerid, victim, sizeof (victim));
if (issuerid != INVALID_PLAYER_ID)
{
GetPlayerName(issuerid, attacker, sizeof (attacker));
format(string, sizeof(string), "%s ранил Вас!", attacker);
SendClientMessage(playerid, 0xFF110000, string);
format(string, sizeof(string), "Вы ранили %s!", victim);
SendClientMessage(issuerid, 0xFF110000, string);
}
else
{
SendClientMessage(playerid, 0xFF110000, "Вы ранены!");
}
}
}
}
return 1;
}

Прикрепил скрипт,для тех кому лень самому писать.

FPDamage.pwn

 

Вложения

  • FPDamage.pwn
    1,3 КБ · Просмотры: 19
Последнее редактирование модератором:

Sten

Unknown
Пользователь
08.05.2014
830
77
0
Неплохо. Вроде такой скрипт есть на УРМ.

 
Последнее редактирование модератором:

DeluX

Новичок
Пользователь
26.03.2015
34
7
0
1.Автора я не вижу

2.Скрипт просто убогий

3.Оптимизации 0

Такая система только для ДМ вот как CRMP сервер