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

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

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

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

Поменять выдачу

[РЕШЕНО]
Статус пользователя ThePhoenix
сообщение 23.8.2019, 7:37
Сообщение #1


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Приветствую.

У меня есть плагин, где выдаются мины игроку, но мне нужно поменять выдачу ПО РАУНДАМ на ЗА СПАВН, может кто-то подсказать, что именно нужно поменять?

код
Код
public CSGameRules_RestartRound_Pre()
{
    arrayset(mine_num, 0, sizeof(mine_num));

    new ent = -1;
    while((ent = rg_find_ent_by_class(ent, "mine")))
        set_entvar(ent, var_flags, get_entvar(ent, var_flags) | FL_KILLME);
}
}


Отредактировал: ThePhoenix, - 23.8.2019, 14:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mOdest
сообщение 23.8.2019, 12:09
Сообщение #2


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

нужно хукнуть спавн игрока и обнулять в хуке переменную
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 14:01
Сообщение #3


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(mOdest @ 23.8.2019, 13:09) *
нужно хукнуть спавн игрока и обнулять в хуке переменную

Так что ли?)

Код
public client_putinserver(id)
    mine_num[id] = 0;

public CSGameRules_RestartRound_Pre()
{
    new ent = -1;
    while((ent = rg_find_ent_by_class(ent, "mine")))
        set_entvar(ent, var_flags, get_entvar(ent, var_flags) | FL_KILLME);
}

public CBasePlayer_Spawn_Post(const id)
{
    arrayset(mine_num, 0, sizeof(mine_num));
}


Я просто не сильно разбираюсь, но я понимаю НА СЛОВАХ, как должно быть, а вот навыков не хватает, чтобы связать два и два правильно))
Ибо я хукаю спавн, но он засчитывается, как спавн вообще любого игрока на карте, а не мой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Shaft
сообщение 23.8.2019, 14:07
Сообщение #4


Стаж: 11 лет

Сообщений: 20
Благодарностей: 6
Полезность: 217

Код:

#include <hamsandwich>

RegisterHam(Ham_Spawn,"player","spawn_player_post",1);

public spawn_player_post(id)
{
if(is_user_connected(id) && is_user_alive(id))
mine_num[id] = 0;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 14:16
Сообщение #5


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Всё вроде, хукнул правильно. Если что, поправьте меня :)

Код
public CSGameRules_RestartRound_Pre()
{
    new ent = -1;
    while((ent = rg_find_ent_by_class(ent, "mine")))
        set_entvar(ent, var_flags, get_entvar(ent, var_flags) | FL_KILLME);
}


---->

Код
public CBasePlayer_Spawn_Post(const id)
{
    if(!is_user_alive(id))
        return HC_CONTINUE;

    if(bm_get_player_class(id) != class_id)
        return HC_CONTINUE;
    
    arrayset(mine_num, 0, sizeof(mine_num));
    
    new ent = -1;
    while((ent = rg_find_ent_by_class(ent, "mine")))
        set_entvar(ent, var_flags, get_entvar(ent, var_flags) | FL_KILLME);
}


Отредактировал: ThePhoenix, - 23.8.2019, 14:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 14:33
Сообщение #6


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Shaft, ты хуекаешь ХАМ, я хукаю через другой модуль - 1. Ты хукаешь обнуление количества мин, а я просил выдачу, (выдать мины, а не обнулить) это другой код. К тому же, оно будет выдавать если любой челик реснется.

Я уже сделал, как и написал выше, вроде работает нормально. Но, спасибо за попытку ! ;)

Отредактировал: ThePhoenix, - 23.8.2019, 14:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 23.8.2019, 14:43
Сообщение #7


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

Цитата(ThePhoenix @ 23.8.2019, 15:33) *
Shaft, ты хуекаешь ХАМ, я хукаю через другой модуль - 1. Ты хукаешь обнуление количества мин, а я просил выдачу, (выдать мины, а не обнулить) это другой код. К тому же, оно будет выдавать если любой челик реснется.

Я уже сделал, как и написал выше, вроде работает нормально. Но, спасибо за попытку ! ;)

ты очищаешь весь массив, тобишь обнуляешь всем игрокам
правильно так, как Shaft показал
Код
mine_num[id] = 0;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Shaft
сообщение 23.8.2019, 14:43
Сообщение #8


Стаж: 11 лет

Сообщений: 20
Благодарностей: 6
Полезность: 217

Да, невнимательно прочитал , а по поводу "любой челик реснется" я поспорю
в твоем варианте как раз строчкой
Код:

arrayset(mine_num, 0, sizeof(mine_num));

обнуляется как раз весь массив всем игрокам когда как раз "любой челик ресается"
Нужно ее заменить на
Код:

mine_num[id] = 0;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 14:58
Сообщение #9


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

mOdest, зачем мне обнулять каждый spawn, если мне нужно получать мины каждый spawn?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 15:10
Сообщение #10


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

В любом случае, даже мой вариант будет "удалять мины" и "давать мины", если умирает ЛЮБОЙ из тех у кого есть доступ до тех самых мин :D
Как это пофиксить, я ещё не придумал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 23.8.2019, 16:15
Сообщение #11


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

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

фикси сам, не создавай лишних тем на форуме

Отредактировал: Fullserver, - 23.8.2019, 16:47
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 16:33
Сообщение #12


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(mOdest @ 23.8.2019, 17:15) *
ты какой-то додик, ей богу. тебе дали правильный ответ, ты че-то споришь, возмущаешься.

фикси сам, не создавай лишних тем на форуме

Ей богу, ты разве не видишь, что я не понимаю? Ты говоришь фразу "обнуляешь всем игрокам", у меня в голове "зачем обнулять всем, если нужно только МНЕ". Вместо того, чтобы обьяснить, ты говоришь, что я додик, окей ;) (1)
(то, что понятно одному, кто шарит в коде - не понятно другому, кто не шарит, особенно, когда выражаемся так, что ещё и запутываем)

У меня ReAPI используется, зачем включать мне ХАМ, разве нету такого же на ReAPI? Чем подключать модуль, который не используется, ради одной функции? (2)

p.s. Как указал Shaft - работает правильно с ботами, с игроками ещё не проверял, но всё же мне бы на ReAPI, чтобы не подключать модуль лишний.

Отредактировал: ThePhoenix, - 23.8.2019, 16:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Shaft
сообщение 23.8.2019, 16:35
Сообщение #13


Стаж: 11 лет

Сообщений: 20
Благодарностей: 6
Полезность: 217

ThePhoenix,
public CBasePlayer_Spawn_Post(const id)
{
if(!is_user_alive(id))
return HC_CONTINUE;

if(bm_get_player_class(id) != class_id)
return HC_CONTINUE;

mine_num[id] = 0;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 17:18
Сообщение #14


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Shaft, Спасибо ещё раз, всё отлично работает :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 23.8.2019, 19:00
Сообщение #15


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

ThePhoenix, отвечу только на первый пункт. ты обнуляешь всем, но обнулять нужно одному игроку, задаешь вопрос "зачем мне обнулять ВСЕМ" и делаешь обнуление всем, тоесть всего массива. чта? после этого, конечно, додик. тебе дал шафт фикс, но ты его проигнорил, сделал своё. как я выше сказал, фикс тебе дали, но ты всё равно возмущаешься и че-то хочешь. неужели сложно в свой реапи хук спавна засунуть код от шафта и не набивать посты?

Отредактировал: mOdest, - 23.8.2019, 19:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 23.8.2019, 19:36
Сообщение #16


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

mOdest, Набивать посты? Я тебе сказал же, что я не понял, как это работает, в моём понимании другая строчка была выдачей, но ты же вместо того. чтобы обьяснить, что я неправильно понял, это работает так-то, на что я тебе и начал "дичь" писать, ПОТОМУ ЧТО Я НЕ ТАК ПОНЯЛ!!!

С парнем, который дал "правильный ответ", мы поговорили в личке, он обьяснил, что я не понял и я ему благодарен. А тебе я бы посоветовал поменять взгляды на жизнь, сагрился по мелочи и думаешь, что я набиваю посты...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 23.8.2019, 20:18
Сообщение #17


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

ThePhoenix, не нужно спорить, раз не знаешь
Цитата
Я уже сделал, как и написал выше, вроде работает нормально. Но, спасибо за попытку ! ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 24.8.2019, 7:13
Сообщение #18


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

mOdest, говорить не о чём с тобой! Ибо ты всё так же с агрессивной подачей пытаешься что-то доказать, когда я уже признал, что затупил. Я бы послал тебя "натрибу" сразу, когда ты ещё начал переходить на личности, но так не делают нормальные люди, имей ввиду.

Закрой тему, спасибо.

Отредактировал: ThePhoenix, - 24.8.2019, 7:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: