Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Жизни на Deathrun сервере

Статус пользователя Gfx
сообщение 9.8.2010, 8:04
Сообщение #1


Стаж: 17 лет

Сообщений: 72
Благодарностей: 8
Полезность: 90

Возможно ли сделать так, чтобы возрождаться можно было только по команде, например say /respawn.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя STR@TEG
сообщение 9.8.2010, 11:33
Сообщение #2
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Это когда есть дополнительная жизнь, а воспользоваться ей можно написанием в чате /respawn?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gfx
сообщение 10.8.2010, 6:37
Сообщение #3


Стаж: 17 лет

Сообщений: 72
Благодарностей: 8
Полезность: 90

STR@TEG,
да, а то не всегда хочешь воскреситься, а сервер уже воскресил тебя
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 10.8.2010, 15:28
Сообщение #4
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Нужно изменять плагин, отвечающий за дополнительные жизни. Какой именно я не знаю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 11.8.2010, 0:21
Сообщение #5


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Цитата(STR@TEG @ 10.8.2010, 16:28) *
Нужно изменять плагин, отвечающий за дополнительные жизни. Какой именно я не знаю.

http://forums.alliedmods.net/showthread.php?p=692544
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gfx
сообщение 11.8.2010, 11:06
Сообщение #6


Стаж: 17 лет

Сообщений: 72
Благодарностей: 8
Полезность: 90

вот вроде бы эта часть кода отвечает за респавн
тык!
Код
public EventDeath( ) {
    if( !g_bEnabled )
        return PLUGIN_CONTINUE;
    
#if defined FAKE_PLAYER
    new iVictim = read_data( 2 );
    new iTeam = get_user_team( iVictim );
    
    if( iTeam == 1 && is_user_alive( g_iFakeplayer ) )
        fakedamage( g_iFakeplayer, "worldspawn", 100.0, DMG_GENERIC );
    
    if( !get_pcvar_num( g_pLifeSystem ) )
        return PLUGIN_CONTINUE;
#else
    if( !get_pcvar_num( g_pLifeSystem ) )
        return PLUGIN_CONTINUE;
    
    new iVictim = read_data( 2 );
    new iTeam = get_user_team( iVictim );
#endif
    
    new iKiller = read_data( 1 );
    
    if( iKiller != iVictim && get_user_team(iKiller) != iTeam )
        g_Lifes[iKiller]++;
    
    if( cs_get_user_team( iVictim ) == CS_TEAM_CT && g_Lifes[ iVictim ] > 0 ) {
        new iCTcount;
        for( new i = 1; i <= g_iMaxplayers; i++ ) {
            if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
                iCTcount++;
        }
        
        if( iCTcount > 1 ) {
            set_task(3.2, "fnRevivePlayer", iVictim);
            
            ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_RESPAWN" );
        }
        /*else
            ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_CANT" );*/
    }
    
    return PLUGIN_CONTINUE;
}

public fnRevivePlayer( id ) {
    if( g_bConnected[ id ] ) {
        if( cs_get_user_team( id ) == CS_TEAM_CT ) {
            new iCTcount;
            for( new i = 1; i <= g_iMaxplayers; i++ )
                if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
                    iCTcount++;
            
            if( iCTcount > 1 ) {
                ExecuteHamB( Ham_CS_RoundRespawn, id );
                
                g_Lifes[ id ]--;
            }
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 11.8.2010, 15:40
Сообщение #7
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Gfx,
Вот, попробуй:
Для начала регистрируешь команду для респавна:
Код
register_clcmd("say /respawn", "fnRevivePlayer")

Затем заменяешь функции, приведенные тобой на эти:
CODE
public EventDeath( ) {
if( !g_bEnabled )
return PLUGIN_CONTINUE;

#if defined FAKE_PLAYER
new iVictim = read_data( 2 );
new iTeam = get_user_team( iVictim );

if( iTeam == 1 && is_user_alive( g_iFakeplayer ) )
fakedamage( g_iFakeplayer, "worldspawn", 100.0, DMG_GENERIC );

if( !get_pcvar_num( g_pLifeSystem ) )
return PLUGIN_CONTINUE;
#else
if( !get_pcvar_num( g_pLifeSystem ) )
return PLUGIN_CONTINUE;

new iVictim = read_data( 2 );
new iTeam = get_user_team( iVictim );
#endif

new iKiller = read_data( 1 );

if( iKiller != iVictim && get_user_team(iKiller) != iTeam )
g_Lifes[iKiller]++;

return PLUGIN_CONTINUE;
}

public fnRevivePlayer( id ) {
if( g_bConnected[ id ] ) {
if( cs_get_user_team( id ) == CS_TEAM_CT && g_Lifes[ id ] > 0 ) {
new iCTcount;
for( new i = 1; i <= g_iMaxplayers; i++ )
if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
iCTcount++;

if( iCTcount > 1 ) {
ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_RESPAWN" );
ExecuteHamB( Ham_CS_RoundRespawn, id );
g_Lifes[ id ]--;
}
/*else {
ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_CANT" );
}*/
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 11.8.2010, 16:24
Сообщение #8


Стаж: 16 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

плохой метод для восстановления))
флуда в чате не оберешься

п.с. лучше уж вопросом :
Восстановится :
Да
Нет

Отредактировал: LaFA1702, - 11.8.2010, 16:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 11.8.2010, 18:27
Сообщение #9
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Слово /respawn можно скрыть из чата. У вас на серверах все до выперду пишут в чате /respawn?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Gfx
сообщение 12.8.2010, 7:56
Сообщение #10


Стаж: 17 лет

Сообщений: 72
Благодарностей: 8
Полезность: 90

LaFA1702,
писать будут только те, кто имеет жизни
STR@TEG,
код работает, спасибо :) но после воскрешения он пишет в чате Вы воскреситесь через 3 секунды
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 12.8.2010, 9:53
Сообщение #11
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Gfx @ 12.8.2010, 9:56) *
STR@TEG,
код работает, спасибо :) но после воскрешения он пишет в чате Вы воскреситесь через 3 секунды
Можно отредактировать это сообщение или вовсе его убрать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gfx
сообщение 12.8.2010, 11:13
Сообщение #12


Стаж: 17 лет

Сообщений: 72
Благодарностей: 8
Полезность: 90

STR@TEG,
я так и сделал, написал Вы воскресились %)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: