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

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

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

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

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

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

Статус пользователя neygomon
сообщение 9.6.2015, 15:05
Сообщение #121


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

sot100, рандом из 2-х человек. лол.
вероятность повтора 50%
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 9.6.2015, 15:22
Сообщение #122


Стаж: 18 лет

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

Цитата(Bloo @ 9.6.2015, 15:28) *

Ставил эту

Цитата(neygomon @ 9.6.2015, 16:05) *
sot100, рандом из 2-х человек. лол.
вероятность повтора 50%

Сейчас поставлю на основной сервер, проверю.


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 9.6.2015, 15:26
Сообщение #123


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Прикольная идея, разнообразит привычный геймплей.
Сохранение талисмана, если игрок в раунде не умер, сделаете?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 9.6.2015, 15:32
Сообщение #124


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Даже скрины и то украли


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 9.6.2015, 15:39
Сообщение #125


Стаж: 18 лет

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

Беру свои слова назад.
Работает норм.
Поставил тестить на варик.
только сообщение о поднятии талисмана дублируется бывает.


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


Стаж: 12 лет

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

Перепилил под ДМ , поставил на ХЛДМ

Пока что полет отличный но есть неприятность - дублирование а то и троирование сообщений о поднятии талисмана.

Код:
public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
client_print(0,print_chat,"%s took the talisman!", szName);
entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}



П.С. Как броню выдавать ?
Скрытый текст
Код:
	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();
}


Хочу запилить что бы когда 100 хп то давало броник.


Отредактировал: ssx, - 9.6.2015, 15:51


[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
сообщение 9.6.2015, 16:13
Сообщение #127
Стаж: 11 лет

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

Цитата(tenb63rus @ 9.6.2015, 19:26) *
Прикольная идея, разнообразит привычный геймплей.
Сохранение талисмана, если игрок в раунде не умер, сделаете?


Это да, если игрок живой, то в следующем раунде талисман должен у него остаться
и новой выдачи не производиться.
Собщения 3-ятся иногда, не пойму почему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 16:16
Сообщение #128


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

ssx,
entity_set_float(g_iPlayerId, EV_FL_armorvalue, 100.0);
как то так)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя sot100
сообщение 9.6.2015, 16:37
Сообщение #129


Стаж: 18 лет

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

Цитата(ssx @ 9.6.2015, 16:48) *
Перепилил под ДМ , поставил на ХЛДМ

Пока что полет отличный но есть неприятность - дублирование а то и троирование сообщений о поднятии талисмана.

Код:
public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
client_print(0,print_chat,"%s took the talisman!", szName);
entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}



П.С. Как броню выдавать ?
Скрытый текст
Код:
	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();
}


Хочу запилить что бы когда 100 хп то давало броник.



мнеб версию под дм, у меня варик + amx_respawn


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


Стаж: 12 лет

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

Цитата(neygomon @ 9.6.2015, 17:16) *
ssx,
entity_set_float(g_iPlayerId, EV_FL_armorvalue, 100.0);
как то так)

а как быть с этими message'ами ?

Код:

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();

?

Не совсем понимаю для чего они нужны ..


[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, 17:16
Сообщение #131


Стаж: 12 лет

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

Стабильная версия со всеми фиксами залита в первый пост Всем спасибо за тесты!


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neygomon
сообщение 9.6.2015, 17:30
Сообщение #132


Стаж: 14 лет

Сообщений: 1644
Благодарностей: 515
Полезность: 363

Dukkhaz0r,
Код:
static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;

-->
Код:
static szBuffer[191], apPlayers[32], iPlayers;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 9.6.2015, 17:35
Сообщение #133


Стаж: 12 лет

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



Версия под ДМ

Код:
#include <amxmodx>
#include <engine>

#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";
new g_iPlayerId, szName[32];

public plugin_init()
{
register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");
register_touch("crux_ansata", "player", "fw_TouchEntity");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
register_concmd("talisman", "eRoundStart");
set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
precache_model(g_szModel);
}

public client_disconnect(id)
{
if(g_iPlayerId == id) g_iPlayerId = 0;
}

public eRoundStart(id)
{
static iEnt;

while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
remove_entity(iEnt);

g_iPlayerId = id
get_user_name(g_iPlayerId, szName, charsmax(szName));
client_print(0,print_chat,"%s have the talisman!", 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_NONE);
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});
client_print(0,print_chat,"%s lost the talisman!", szName);
g_iPlayerId = 0;
}
}

public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
client_print(0,print_chat,"%s took the talisman!", szName);
entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
if(!g_iPlayerId)
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();
}
}


Баги:
1. Когда убивают не всегда выпадает талисман. - пишет что lost а затем сразу took
2. Талисман при выпадении зависает в воздухе , что не есть гуд. Должно падать на пол.

В спойлере версия тестовая, так сказать, поэтому консольной командой вызываю талисман на себя, на будущее запилю (или автор запилит) что бы талисман выдавался тому кто сделает первый килл (First Blood)


[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
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 9.6.2015, 17:53
Сообщение #134


Стаж: 12 лет

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

Баг №1 похоже удалось пофиксить вот так:

Код:
public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

-->
Код:
public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt) || !is_user_alive(id))
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_NONE);
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});
client_print(0,print_chat,"%s lost the talisman!", szName);


[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, 17:54
Сообщение #135


Стаж: 12 лет

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

neygomon, не критично, не пугай народ лишний раз)

ssx, Попробуй добавить drop_to_floor(iEnt)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 9.6.2015, 18:04
Сообщение #136


Стаж: 12 лет

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

Цитата(Dukkhaz0r @ 9.6.2015, 18:54) *
neygomon, не критично, не пугай народ лишний раз)

ssx, Попробуй добавить drop_to_floor(iEnt)

С зависанием в воздухе разобрался!

Нужно:
Код:
		entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);

->
Код:
		entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_TOSS);


Теперь осталось запилить что бы давало талисман first blood'еру ...
И разобраться в цвете свечения.

Отредактировал: ssx, - 9.6.2015, 18:04


[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
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 9.6.2015, 18:30
Сообщение #137


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Цитата(ssx @ 9.6.2015, 18:04) *
Теперь осталось запилить что бы давало талисман first blood'еру ...

Гениально! сделать бы так и будет вообще идеально, тогда не нужно будет сохранять талисман для игрока в след. раунде...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 9.6.2015, 20:19
Сообщение #138


Стаж: 12 лет

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

Сделал отдельный плагин для FB что бы не чекать каждый раз или уже был ФБ в основном плаге.

Суть плагина - отлавливаем первый килл - посылаем команду игроку - отключаем плагин.
Посылать команду игроку не оч хорошо - нужно переделать под нативы\форварды или же как-то по другому выдавать талисман киллеру.

Скрытый текст
Код:
#include <amxmodx>

public plugin_init()
{
register_plugin("Crux Ansata FB", "1.0", "ISDP")
register_message(get_user_msgid("DeathMsg"), "death_check")
}

public death_check(msg_id, msg_dest, msg_entity)
{
new killer = get_msg_arg_int(1)
new victim = get_msg_arg_int(2)
if(killer == 0 || killer == victim || killer > 32) //first argument is the killer, 0 if worldspawn
return PLUGIN_HANDLED

client_cmd(killer, "talisman")
server_cmd("amxx pause crux_ansata_fb.amxx")
return PLUGIN_CONTINUE
}


Отредактировал: ssx, - 9.6.2015, 20:21


[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
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
gamerman
сообщение 9.6.2015, 20:55
Сообщение #139
Стаж: 11 лет

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

Мои хотелки:
1. Сделать чтобы талисман оставался в новом раунде если игрок жив, но другой не выдавлся,
чтобы не получилось 2 талисмана одновременно
2. Устранить проблему с 2,3,4,5 сообщениями о поднятии талисмана
3. Где находится координата по вертикали выпадшего талисмана? Хочу его немного опустить вниз,
но не на саму землю, а просто на 30 см ниже чем счас. На земле и так много всего валяется.
4. Где находится подсветка (аура) талисмана, как её отключить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nixon
сообщение 9.6.2015, 20:56
Сообщение #140


Стаж: 12 лет

Сообщений: 399
Благодарностей: 192
Полезность: 589

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