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

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

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

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

14 страниц V  « 7 8 9 ... 12 13 »

Crux Ansata. Плагин добавляет талисман жизни.

Статус пользователя ssx
сообщение 9.6.2015, 21:44
Сообщение #141


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(gamerman @ 9.6.2015, 21:55) *
Мои хотелки:
1. Сделать чтобы талисман оставался в новом раунде если игрок жив, но другой не выдавлся,
чтобы не получилось 2 талисмана одновременно
2. Устранить проблему с 2,3,4,5 сообщениями о поднятии талисмана
3. Где находится координата по вертикали выпадшего талисмана? Хочу его немного опустить вниз,
но не на саму землю, а просто на 30 см ниже чем счас. На земле и так много всего валяется.
4. Где находится подсветка (аура) талисмана, как её отключить?

4. effect 8 это и есть подсветка, удали строку для выключения.
2. попробуем совет выше (сперва удалять а потом выводить сообщение) - лично мне для ДМ нужен, поэтому сообщения лишь для теста .. а так то вырублю вовсе.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 9.6.2015, 23:18
Сообщение #142


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Следующий шаг:
что бы при дисконекте игрока дропало итем + свечение зеленым
Код:
public client_disconnect(id)
{
if(g_iPlayerId == id)
{
static Float:flOrigin[3];
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(id, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
// entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
// entity_set_int(iEnt, EV_INT_effects, 8);
fm_set_rendering(iEnt,kRenderFxGlowShell,0,250,0,kRenderNormal,32);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});

client_print(0,print_chat,"%s lost the talisman!", szName);
g_iPlayerId = 0;
}
}


Далее хочу запилить:
1. n сек если никто не поднимает талисман - либо в определенном месте респавнить либо выдавать случайному (или не случайному) игроку.
Это нужно что бы хитрожопые не умирали в плохих местах в которые не добраться.
2. Для фана: что бы при дропе писало в чат еще и растояние в метрах до талисмана.
3. сделать несколько талисманов с разными свойствами.
4. Сделать функцию дропа талисмана (к примеру что бы подобрать другой)


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 9.6.2015, 23:27
Сообщение #143


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

ssx,
1. вешаешь таск на нужное тебе время на функцию eRoundStart(), а там уже проверяешь условие if(!g_iPlayerId).
2. Расстояние от чего до чего? Не понял.
3. -
4. И добавить километр кода).


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
gamerman
сообщение 10.6.2015, 0:04
Сообщение #144
Стаж: 11 лет

Сообщений: 186
Благодарностей: 12
Полезность: < 0

Я бы ещё добавил покупку талисмана через чат,
для тех кому с рандомом не везёт и он готов выложить 8000 за талисман
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 10.6.2015, 8:43
Сообщение #145


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(Dukkhaz0r @ 10.6.2015, 0:27) *
ssx,
1. вешаешь таск на нужное тебе время на функцию eRoundStart(), а там уже проверяешь условие if(!g_iPlayerId).
2. Расстояние от чего до чего? Не понял.
3. -
4. И добавить километр кода).

4. почему километр кода ? если запилить пункт 1 (с конкретными кординатами респавна) то при дропе просто его пересоздавать на точке респавна .
Это на случай если не получится респавнить рядом с игроком. что бы автоматом не поднимался сразу.


gamerman, а что сложного то ?
Скрытый текст
Код:
if(cs_get_user_money(id) < 8000)
{
client_print(id,print_center,"Have no money!")
}
else
{
client_cmd(id, "talisman")
cs_set_user_money(id,cs_get_user_money(id) - 8000)
}




[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
gamerman
сообщение 10.6.2015, 9:29
Сообщение #146
Стаж: 11 лет

Сообщений: 186
Благодарностей: 12
Полезность: < 0

Цитата(ssx @ 10.6.2015, 11:43) *
gamerman, а что сложного то ?
Код:
if(cs_get_user_money(id) < 8000)
{
client_print(id,print_center,"Have no money!")
}
else
{
client_cmd(id, "talisman")
cs_set_user_money(id,cs_get_user_money(id) - 8000)
}


Как сделать, чтобы талисман переходил на следующий раунд, пока игрок жив.
А когда убьют - то тот кто поднимет оставался обладателем талисмана, тоже все время пока жив.

И ещё где координата высоты, чтобы талисман висел на пол-метра ниже.

Отредактировал: gamerman, - 10.6.2015, 9:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 10.6.2015, 9:32
Сообщение #147


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Цитата(ssx @ 10.6.2015, 0:18) *
Следующий шаг:
что бы при дисконекте игрока дропало итем + свечение зеленым
Код:
public client_disconnect(id)
{
if(g_iPlayerId == id)
{
static Float:flOrigin[3];
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(id, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
// entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
// entity_set_int(iEnt, EV_INT_effects, 8);
fm_set_rendering(iEnt,kRenderFxGlowShell,0,250,0,kRenderNormal,32);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});

client_print(0,print_chat,"%s lost the talisman!", szName);
g_iPlayerId = 0;
}
}


Далее хочу запилить:
1. n сек если никто не поднимает талисман - либо в определенном месте респавнить либо выдавать случайному (или не случайному) игроку.
Это нужно что бы хитрожопые не умирали в плохих местах в которые не добраться.
2. Для фана: что бы при дропе писало в чат еще и растояние в метрах до талисмана.
3. сделать несколько талисманов с разными свойствами.
4. Сделать функцию дропа талисмана (к примеру что бы подобрать другой)

Куды это пихать именно?


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
gamerman
сообщение 10.6.2015, 23:57
Сообщение #148
Стаж: 11 лет

Сообщений: 186
Благодарностей: 12
Полезность: < 0

Где координата высоты, хочу чтобы талисман висел на пол-метра ниже?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 11.6.2015, 5:21
Сообщение #149


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

gamerman, entity_set_vector(iEnt, EV_VEC_origin,....


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 8:50
Сообщение #150


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Кто-нибудь это уже проверял? мне как - бы это нужно crazy.gif
Цитата(ssx @ 10.6.2015, 0:18) *
что бы при дисконекте игрока дропало итем + свечение зеленым
Код:
public client_disconnect(id)
{
if(g_iPlayerId == id)
{
static Float:flOrigin[3];
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(id, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
// entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
// entity_set_int(iEnt, EV_INT_effects, 8);
fm_set_rendering(iEnt,kRenderFxGlowShell,0,250,0,kRenderNormal,32);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});

client_print(0,print_chat,"%s lost the talisman!", szName);
g_iPlayerId = 0;
}
}



https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 11.6.2015, 8:58
Сообщение #151


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(sot100 @ 11.6.2015, 9:50) *
Кто-нибудь это уже проверял? мне как - бы это нужно crazy.gif

я проверял, работает как часики.

тут же по сути та же самая функция что и при убийстве - проверяет есть ли талисман у вышедшего с сервера игрока - если да то выбрасывает его на земплю.

Отредактировал: ssx, - 11.6.2015, 8:59


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 9:09
Сообщение #152


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Цитата(ssx @ 11.6.2015, 9:58) *
я проверял, работает как часики.

тут же по сути та же самая функция что и при убийстве - проверяет есть ли талисман у вышедшего с сервера игрока - если да то выбрасывает его на земплю.


Дорогой друг, я плохо шарю в скриптинге, куда (с какой строчки) в исходнике мне это начинать вставлять?


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 11.6.2015, 9:40
Сообщение #153


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

да тут особо не нужно шарить .. берешь свою функцию public client_disconnect(id) заменяешь той что я скинул ..

А так то изучай павн .. хотя бы на уровне "склеить плагин с кусочков" .


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 9:59
Сообщение #154


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Цитата(ssx @ 11.6.2015, 10:40) *
да тут особо не нужно шарить .. берешь свою функцию public client_disconnect(id) заменяешь той что я скинул ..

А так то изучай павн .. хотя бы на уровне "склеить плагин с кусочков" .

Было бы время, уже бы изучил.


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 10:16
Сообщение #155


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Код
Код
/*
    Плагин: Crux Ansata
    Автор: DUKKHAZ0R | Сайт: http://aimbat.ru/plugins/
    
    Описание:
    Плагин добавляет на сервер талисман жизни, у человека имеющего его будет восстанавливаться 5 хп каждые 2 секунды.
    В начале рануда рандомному игроку выпадает талисман жизни, если человек умирает, то любой другой сможет подобрать талисман.
    Минимальное количество игроков для работы плагина, количество восстанавливаемого здоровья и интервал восстанавления можно настроить в исходнике.
    
*/

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 4
#define ROUND_ACCESS 2
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
    register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");
    
    register_touch("crux_ansata", "player", "fw_TouchEntity");
    
    register_logevent("eRoundStart", 2, "1=Round_Start");
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");
    
    set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
    precache_model(g_szModel);
}

public client_disconnect(id)
{
   if(g_iPlayerId == id)
   {
      static Float:flOrigin[3];
      new iEnt = create_entity("info_target");

      if(!is_valid_ent(iEnt))
         return;

      entity_get_vector(id, EV_VEC_origin, flOrigin);
      entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
      entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
      entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
//      entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
      entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
//      entity_set_int(iEnt, EV_INT_effects, 8);
      fm_set_rendering(iEnt,kRenderFxGlowShell,0,250,0,kRenderNormal,32);
      entity_set_model(iEnt, g_szModel);
      entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});

      client_print(0,print_chat,"%s lost the talisman!", szName);
      g_iPlayerId = 0;
   }
}
    
public eRoundRestart()
    g_iRoundCounter = 0;

public eRoundStart()
{
    if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
        return;
        
    static iEnt;
    
    while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
        remove_entity(iEnt);
        
    static apPlayers[32], iPlayers;
    get_players(apPlayers, iPlayers, "ach");
    
    g_iPlayerId = apPlayers[random(iPlayers-1)];
    get_user_name(g_iPlayerId, szName, charsmax(szName));
    
    ChatColor(0, "^4[ТАЛИСМАН HP] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
    static pVictim, Float:flOrigin[3]; pVictim = read_data(2);
    
    if(pVictim == g_iPlayerId)
    {
        new iEnt = create_entity("info_target");
        
        if(!is_valid_ent(iEnt))
            return;
        
        entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
        entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
        entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
        entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
        entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
        entity_set_int(iEnt, EV_INT_effects, 8);
        entity_set_model(iEnt, g_szModel);
        entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
        ChatColor(g_iPlayerId = 0, "^4[ТАЛИСМАН HP] ^3%s ^1потерял талисман жизни.", szName);
    }
}

public fw_TouchEntity(iEnt, id)
{
   if(!is_valid_ent(iEnt) || !is_user_alive(id))
      return;
        
    get_user_name(g_iPlayerId = id, szName, charsmax(szName));
    ChatColor(0,"^4[ТАЛИСМАН HP] ^3%s ^1поднял талисман жизни.",szName);
    
    entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
    if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
        return;
    
    static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);
    
    if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");
    
    if(fHealth < 100 && is_user_alive(g_iPlayerId))
    {
        static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);
        
        entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);
        
        message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
        write_byte(floatround(fHealth + giveHealth));
        message_end();
        
        message_begin(MSG_ONE_UNRELIABLE, 98, _, g_iPlayerId);
        write_short(1<<10);
        write_short(1<<10);
        write_short(0x0000);
        write_byte(0);
        write_byte(255);
        write_byte(0);
        write_byte(40);
        message_end();
    }
}

stock ChatColor(const id, const szMessage[], any:...)
{
    static szBuffer[191], apPlayers[32], iPlayers;
    vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    if(id)
    {
        if(!is_user_connected(id)) return;
        apPlayers[0] = id;
        iPlayers = 1;
    }
    else get_players(apPlayers, iPlayers, "ch");
    for(new i;i < iPlayers; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
        write_byte(apPlayers[i]);
        write_string(szBuffer);
        message_end();
    }
}


Не компилится(



https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 11.6.2015, 10:29
Сообщение #156


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(sot100 @ 11.6.2015, 11:16) *
Код
Код
/*
    Плагин: Crux Ansata
    Автор: DUKKHAZ0R | Сайт: http://aimbat.ru/plugins/
    
    Описание:
    Плагин добавляет на сервер талисман жизни, у человека имеющего его будет восстанавливаться 5 хп каждые 2 секунды.
    В начале рануда рандомному игроку выпадает талисман жизни, если человек умирает, то любой другой сможет подобрать талисман.
    Минимальное количество игроков для работы плагина, количество восстанавливаемого здоровья и интервал восстанавления можно настроить в исходнике.
    
*/

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 4
#define ROUND_ACCESS 2
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
    register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");
    
    register_touch("crux_ansata", "player", "fw_TouchEntity");
    
    register_logevent("eRoundStart", 2, "1=Round_Start");
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");
    
    set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
    precache_model(g_szModel);
}

public client_disconnect(id)
{
   if(g_iPlayerId == id)
   {
      static Float:flOrigin[3];
      new iEnt = create_entity("info_target");

      if(!is_valid_ent(iEnt))
         return;

      entity_get_vector(id, EV_VEC_origin, flOrigin);
      entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
      entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
      entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
//      entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
      entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
//      entity_set_int(iEnt, EV_INT_effects, 8);
      fm_set_rendering(iEnt,kRenderFxGlowShell,0,250,0,kRenderNormal,32);
      entity_set_model(iEnt, g_szModel);
      entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});

      client_print(0,print_chat,"%s lost the talisman!", szName);
      g_iPlayerId = 0;
   }
}
    
public eRoundRestart()
    g_iRoundCounter = 0;

public eRoundStart()
{
    if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
        return;
        
    static iEnt;
    
    while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
        remove_entity(iEnt);
        
    static apPlayers[32], iPlayers;
    get_players(apPlayers, iPlayers, "ach");
    
    g_iPlayerId = apPlayers[random(iPlayers-1)];
    get_user_name(g_iPlayerId, szName, charsmax(szName));
    
    ChatColor(0, "^4[ТАЛИСМАН HP] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
    static pVictim, Float:flOrigin[3]; pVictim = read_data(2);
    
    if(pVictim == g_iPlayerId)
    {
        new iEnt = create_entity("info_target");
        
        if(!is_valid_ent(iEnt))
            return;
        
        entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
        entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
        entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
        entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
        entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);
        entity_set_int(iEnt, EV_INT_effects, 8);
        entity_set_model(iEnt, g_szModel);
        entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
        ChatColor(g_iPlayerId = 0, "^4[ТАЛИСМАН HP] ^3%s ^1потерял талисман жизни.", szName);
    }
}

public fw_TouchEntity(iEnt, id)
{
   if(!is_valid_ent(iEnt) || !is_user_alive(id))
      return;
        
    get_user_name(g_iPlayerId = id, szName, charsmax(szName));
    ChatColor(0,"^4[ТАЛИСМАН HP] ^3%s ^1поднял талисман жизни.",szName);
    
    entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
    if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
        return;
    
    static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);
    
    if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");
    
    if(fHealth < 100 && is_user_alive(g_iPlayerId))
    {
        static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);
        
        entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);
        
        message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
        write_byte(floatround(fHealth + giveHealth));
        message_end();
        
        message_begin(MSG_ONE_UNRELIABLE, 98, _, g_iPlayerId);
        write_short(1<<10);
        write_short(1<<10);
        write_short(0x0000);
        write_byte(0);
        write_byte(255);
        write_byte(0);
        write_byte(40);
        message_end();
    }
}

stock ChatColor(const id, const szMessage[], any:...)
{
    static szBuffer[191], apPlayers[32], iPlayers;
    vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    if(id)
    {
        if(!is_user_connected(id)) return;
        apPlayers[0] = id;
        iPlayers = 1;
    }
    else get_players(apPlayers, iPlayers, "ch");
    for(new i;i < iPlayers; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
        write_byte(apPlayers[i]);
        write_string(szBuffer);
        message_end();
    }
}


Не компилится(


Добавь #include <fakemeta_util>


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 11:07
Сообщение #157


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Цитата(ssx @ 11.6.2015, 11:29) *
Добавь #include <fakemeta_util>


Скомпилился с 1 варнингом


строка 119
Код
    get_user_name(g_iPlayerId = id, szName, charsmax(szName));


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 11.6.2015, 11:08
Сообщение #158


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

sot100, отступ не верный в этой строке, ничего критичного.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 11.6.2015, 11:09
Сообщение #159


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Даем сперва ХП а затем Броню

public RegenerationHealth()
Код:
public RegenerationHealth()
{
if(!g_iPlayerId)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);
static Float:fArmor, MsgId_Armor; fArmor = entity_get_float(g_iPlayerId, EV_FL_armorvalue);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);
entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);
}
else if(fArmor < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveArmor; giveArmor = (fArmor + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fArmor);
entity_set_float(g_iPlayerId, EV_FL_armorvalue, fArmor + giveArmor);
}
}


Отредактировал: ssx, - 11.6.2015, 11:11


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя sot100
сообщение 11.6.2015, 11:12
Сообщение #160


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Цитата(ssx @ 11.6.2015, 12:09) *
Даем сперва ХП а затем Броню

public RegenerationHealth()
Код:
public RegenerationHealth()
{
if(!g_iPlayerId)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);
static Float:fArmor, MsgId_Armor; fArmor = entity_get_float(g_iPlayerId, EV_FL_armorvalue);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);
entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);
}
else if(fArmor < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveArmor; giveArmor = (fArmor + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fArmor);
entity_set_float(g_iPlayerId, EV_FL_armorvalue, fArmor + giveArmor);
}
}

Куда это вживить?)


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
14 страниц V  « 7 8 9 ... 12 13 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: