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

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

^Место доступно для покупки - 4000 руб/мес^

Новости

17-апр
30-дек
29-дек
26-дек

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

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

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

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

Deathrun режим Денежный

Статус пользователя Captain
сообщение 10.1.2017, 18:58
Сообщение #1
Стаж: 3 года 8 месяцев

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

Всем привет. Столкнулся с тем, что во время этого режима, когда кт умирает, то у него деньги уходят в минус. С чем это может быть связано?

Исходник
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <dhudmessage>

#define PLUGIN_NAME "[DR] GAME :: Homeless"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OverGame"

new UserHomeless[64], Homeless_Active
new cvar_money
new PcvarMode

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

register_event("DeathMsg", "event_killing", "a")
register_logevent("round_start", 2, "1=Round_Start")
cvar_money = register_cvar("dr_homeless_money", "500")
register_clcmd("dr_bum", "function_hif")
PcvarMode = register_cvar("deathrun_mode", "NONE")
}

public round_start()
{
set_pcvar_string(PcvarMode, "NONE")

Homeless_Active = false

for (new iRead; iRead <= get_maxplayers(); iRead++)
UserHomeless[iRead] = false
}

public event_killing()
{
if(!Homeless_Active) return PLUGIN_HANDLED

new iKiller = read_data(1)
new iVictim = read_data(2)

if(get_user_team(iVictim) == 2 && iKiller != iVictim)
{
for(new iRead; iRead <= get_maxplayers(); iRead++)
{
cs_set_user_money(iVictim, cs_get_user_money(iVictim) - get_pcvar_num(cvar_money))

if(UserHomeless[iRead])
cs_set_user_money(iRead, cs_get_user_money(iRead) + get_pcvar_num(cvar_money))
}
}
return PLUGIN_CONTINUE
}

public function_hif(id)
{
if(get_user_team(id) == 2) return PLUGIN_HANDLED
if(Homeless_Active) return PLUGIN_HANDLED

dr_active_mode(id)

return PLUGIN_CONTINUE
}

public dr_active_mode(id)
{
set_pcvar_string(PcvarMode, "BUM")

Homeless_Active = true
UserHomeless[id] = true

set_dhudmessage(0, 255, 0, -1.0, 0.17, 0, 0.0, 8.0, 1.5, 1.5, false)
show_dhudmessage(0, "Денежный!^nУмрете вы, получит деньги террорист!")

return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Fullserver
сообщение 10.1.2017, 19:07
Сообщение #2


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

Стаж: 2 года 10 месяцев

Сообщений: 1816
Благодарностей: 913
Полезность: 741

Код:
cs_set_user_money(iVictim, cs_get_user_money(iVictim) - get_pcvar_num(cvar_money))


Чтобы не уходило в минус, нужно немного подправить:
Cкрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <dhudmessage>

#define PLUGIN_NAME "[DR] GAME :: Homeless"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OverGame"

new UserHomeless[64], Homeless_Active
new cvar_money
new PcvarMode

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

register_event("DeathMsg", "event_killing", "a")
register_logevent("round_start", 2, "1=Round_Start")
cvar_money = register_cvar("dr_homeless_money", "500")
register_clcmd("dr_bum", "function_hif")
PcvarMode = register_cvar("deathrun_mode", "NONE")
}

public round_start()
{
set_pcvar_string(PcvarMode, "NONE")

Homeless_Active = false

for (new iRead; iRead <= get_maxplayers(); iRead++)
UserHomeless[iRead] = false
}

public event_killing()
{
if(!Homeless_Active) return PLUGIN_HANDLED

new iKiller = read_data(1)
new iVictim = read_data(2)

if(get_user_team(iVictim) == 2 && iKiller != iVictim)
{
for(new iRead; iRead <= get_maxplayers(); iRead++)
{
if(cs_get_user_money(iVictim)<get_pcvar_num(cvar_money))
cs_set_user_money(iVictim,0)
else
cs_set_user_money(iVictim, cs_get_user_money(iVictim) - get_pcvar_num(cvar_money))

if(UserHomeless[iRead])
cs_set_user_money(iRead, cs_get_user_money(iRead) + get_pcvar_num(cvar_money))
}
}
return PLUGIN_CONTINUE
}

public function_hif(id)
{
if(get_user_team(id) == 2) return PLUGIN_HANDLED
if(Homeless_Active) return PLUGIN_HANDLED

dr_active_mode(id)

return PLUGIN_CONTINUE
}

public dr_active_mode(id)
{
set_pcvar_string(PcvarMode, "BUM")

Homeless_Active = true
UserHomeless[id] = true

set_dhudmessage(0, 255, 0, -1.0, 0.17, 0, 0.0, 8.0, 1.5, 1.5, false)
show_dhudmessage(0, "Денежный!^nУмрете вы, получит деньги террорист!")

return PLUGIN_CONTINUE
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Captain
сообщение 10.1.2017, 19:30
Сообщение #3
Стаж: 3 года 8 месяцев

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

Fullserver, спасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 13.1.2017, 19:41
Сообщение #4
Стаж: 3 года 8 месяцев

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

Код:
L 01/13/2017 - 16:34:27: [CSTRIKE] Invalid player 10
L 01/13/2017 - 16:34:27: [AMXX] Run time error 10 (plugin "dr_money.amxx") (native "cs_get_user_money") - debug not enabled!
L 01/13/2017 - 16:34:27: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


Выдает ошибку этот плагин. Если добавить проверку на коннект, то террористу перестает давать деньги за то что КТ умер. Как быть?

Код:
public event_killing()
{
if(!Homeless_Active) return PLUGIN_HANDLED

new iKiller = read_data(1)
new iVictim = read_data(2)

if(get_user_team(iVictim) == 2 && iKiller != iVictim)
{
for(new iRead; iRead <= get_maxplayers(); iRead++)
{
if(cs_get_user_money(iVictim)<get_pcvar_num(cvar_money))
cs_set_user_money(iVictim,0)
else
cs_set_user_money(iVictim, cs_get_user_money(iVictim) - get_pcvar_num(cvar_money))

if(UserHomeless[iRead])
cs_set_user_money(iRead, cs_get_user_money(iRead) + get_pcvar_num(cvar_money))
}
}
return PLUGIN_CONTINUE
}


Отредактировал: Captain, - 13.1.2017, 19:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя paffgame
сообщение 13.1.2017, 19:50
Сообщение #5


Стаж: 3 года 2 месяца

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

Captain, Код:
public event_killing()
{
if(!Homeless_Active) return PLUGIN_HANDLED

new iKiller = read_data(1)
new iVictim = read_data(2)

if(get_user_team(iVictim) == 2 && iKiller != iVictim && is_user_connected(iVictim))
{
for(new iRead; iRead <= get_maxplayers(); iRead++)
{
if(cs_get_user_money(iVictim)<get_pcvar_num(cvar_money))
cs_set_user_money(iVictim,0)
else
cs_set_user_money(iVictim, cs_get_user_money(iVictim) - get_pcvar_num(cvar_money))

if(UserHomeless[iRead] && is_user_connected(iRead))
cs_set_user_money(iRead, cs_get_user_money(iRead) + get_pcvar_num(cvar_money))
}
}
return PLUGIN_CONTINUE
}


Отредактировал: paffgame, - 13.1.2017, 19:51


Не "Говнокод", а "необъективность решений и извилистый подход к задаче".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: