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

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

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

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

Замена кваров на переменные со значениями

, Почему происходит ошибка
yukish
сообщение 21.5.2014, 10:03
Сообщение #1
Стаж: 12 лет

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

В плагине решил убрать квары и объявить их просто как переменные и сразу задать значение, так как эти квары мне 100% не нужны.
Привожу только часть исходника.
Было вот так:

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#define BA_NORMAL (1<<0) // "a"
#define BA_HEAT (1<<1) // "b"
#define BA_USER (1<<2) // "c"
#define BA_NONE (1<<3) // "d"

#define SEQ_IDLE 0
#define SEQ_FIDGET 1
#define SEQ_RELOAD 2
#define SEQ_FIRE 3
#define SEQ_HOLSTER1 4
#define SEQ_DRAW1 5
#define SEQ_HOLSTER2 6
#define SEQ_DRAW2 7
#define SEQ_IDLE2 8
#define SEQ_FIDGET2 9

new mod_name[33]
new g_buyzone[33]
new Rocket_Mode[33]
new User_Control[33]
new Bazooka_Ammo1[33]
new Bazooka_Ammo2[33]
new Bazooka_Ammo3[33]
new Team_Kill_Count[33]
new Old_Rocket_Mode[33]

new bool:RoundEnd
new bool:is_cstrike

new bool:Has_Bazooka[33]
new bool:Allow_Shooting[33]
new bool:Bazooka_Active[33]
new bool:g_restart_attempt[33]

new cvar_bazooka_cost
new cvar_bazooka_ammo1
new cvar_bazooka_ammo2
new cvar_bazooka_ammo3
new cvar_bazooka_buyable
new cvar_bazooka_dropping
new cvar_bazooka_restrict
new cvar_bazooka_velocity
new cvar_bazooka_trailtime
new cvar_bazooka_gib_death
new cvar_bazooka_tkpunish1
new cvar_bazooka_tkpunish2
new cvar_bazooka_max_damage
new cvar_bazooka_trailcolor
new cvar_bazooka_obeyffcvar
new cvar_bazooka_obeybuyzone
new cvar_bazooka_damage_radius
new cvar_bazooka_animation

new iFlags
new RocketSmoke
new mdl_gib_head
new mdl_gib_lung
new mdl_gib_meat
new mdl_gib_flesh
new mdl_gib_spine
new spr_blood_drop
new spr_blood_spray
new mdl_gib_legbone
new g_sModelIndexSmoke
new g_sModelIndexFireball
new gmsgDeathMsg, gmsgScoreInfo

new bool:E_KeyPress_Delay[33]

static PLUGIN_NAME[] = "Bazooka_2_Slot3"
static PLUGIN_AUTHOR[] = "Can't Shoot"
static PLUGIN_VERSION[] = "2.2.1"

new Float:g_flNextPrimaryAttack[33]

public plugin_init () {

register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

/* Register pcvar cvars */
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
cvar_bazooka_ammo1 = register_cvar("bazooka_ammo1","3",FCVAR_UNLOGGED)
cvar_bazooka_ammo2 = register_cvar("bazooka_ammo2","1",FCVAR_UNLOGGED)
cvar_bazooka_ammo3 = register_cvar("bazooka_ammo3","1",FCVAR_UNLOGGED)
cvar_bazooka_buyable = register_cvar("bazooka_buyable","1",FCVAR_SERVER)
cvar_bazooka_dropping = register_cvar("bazooka_dropping","1",FCVAR_SERVER)
cvar_bazooka_restrict = register_cvar("bazooka_restrict","d",FCVAR_SERVER)
cvar_bazooka_velocity = register_cvar("bazooka_velocity","1200",FCVAR_UNLOGGED)
cvar_bazooka_animation = register_cvar("bazooka_animation","1",FCVAR_UNLOGGED)
cvar_bazooka_trailtime = register_cvar("bazooka_trailtime","10",FCVAR_UNLOGGED)
cvar_bazooka_gib_death = register_cvar("bazooka_gib_death","1",FCVAR_SERVER)
cvar_bazooka_tkpunish1 = register_cvar("bazooka_tkpunish1","1",FCVAR_SERVER)
cvar_bazooka_tkpunish2 = register_cvar("bazooka_tkpunish2","3",FCVAR_SERVER)
cvar_bazooka_max_damage = register_cvar("bazooka_max_damage","150",FCVAR_UNLOGGED)
cvar_bazooka_trailcolor = register_cvar("bazooka_trailcolor","1",FCVAR_UNLOGGED)
cvar_bazooka_obeyffcvar = register_cvar("bazooka_obeyffcvar","1",FCVAR_SERVER)
cvar_bazooka_obeybuyzone = register_cvar("bazooka_obeybuyzone","1",FCVAR_SERVER)
cvar_bazooka_damage_radius = register_cvar("bazooka_damage_radius","250",FCVAR_UNLOGGED)

register_concmd("bazooka","cmd_Drop_Bazooka",ADMIN_BAN)
register_concmd("buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")

register_clcmd("say /buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")
register_clcmd("say_team /buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")
register_clcmd("bazooka_give","cmd_GiveBazooka",ADMIN_BAN,"<@all/ct/t>/userid - Gives free bazooka")
// ну и так дальше.....


Решил часть кваров закоментировать, а при объявлении переменных сразу указать нужное значение в цифрах,
короче вот так:


Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#define BA_NORMAL (1<<0) // "a"
#define BA_HEAT (1<<1) // "b"
#define BA_USER (1<<2) // "c"
#define BA_NONE (1<<3) // "d"

#define SEQ_IDLE 0
#define SEQ_FIDGET 1
#define SEQ_RELOAD 2
#define SEQ_FIRE 3
#define SEQ_HOLSTER1 4
#define SEQ_DRAW1 5
#define SEQ_HOLSTER2 6
#define SEQ_DRAW2 7
#define SEQ_IDLE2 8
#define SEQ_FIDGET2 9

new mod_name[33]
new g_buyzone[33]
new Rocket_Mode[33]
new User_Control[33]
new Bazooka_Ammo1[33]
new Bazooka_Ammo2[33]
new Bazooka_Ammo3[33]
new Team_Kill_Count[33]
new Old_Rocket_Mode[33]

new bool:RoundEnd
new bool:is_cstrike

new bool:Has_Bazooka[33]
new bool:Allow_Shooting[33]
new bool:Bazooka_Active[33]
new bool:g_restart_attempt[33]

new cvar_bazooka_cost = 2500
new cvar_bazooka_ammo1 = 3
new cvar_bazooka_ammo2 = 1
new cvar_bazooka_ammo3 = 1
new cvar_bazooka_buyable = 1
new cvar_bazooka_dropping
new cvar_bazooka_restrict
new cvar_bazooka_velocity
new cvar_bazooka_trailtime
new cvar_bazooka_gib_death
new cvar_bazooka_tkpunish1
new cvar_bazooka_tkpunish2
new cvar_bazooka_max_damage
new cvar_bazooka_trailcolor
new cvar_bazooka_obeyffcvar
new cvar_bazooka_obeybuyzone
new cvar_bazooka_damage_radius
new cvar_bazooka_animation

new iFlags
new RocketSmoke
new mdl_gib_head
new mdl_gib_lung
new mdl_gib_meat
new mdl_gib_flesh
new mdl_gib_spine
new spr_blood_drop
new spr_blood_spray
new mdl_gib_legbone
new g_sModelIndexSmoke
new g_sModelIndexFireball
new gmsgDeathMsg, gmsgScoreInfo

new bool:E_KeyPress_Delay[33]

static PLUGIN_NAME[] = "Bazooka_2_Slot3"
static PLUGIN_AUTHOR[] = "Can't Shoot"
static PLUGIN_VERSION[] = "2.2.1"

new Float:g_flNextPrimaryAttack[33]

public plugin_init () {

register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

/* Register pcvar cvars */
// cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
// cvar_bazooka_ammo1 = register_cvar("bazooka_ammo1","3",FCVAR_UNLOGGED)
// cvar_bazooka_ammo2 = register_cvar("bazooka_ammo2","1",FCVAR_UNLOGGED)
// cvar_bazooka_ammo3 = register_cvar("bazooka_ammo3","1",FCVAR_UNLOGGED)
// cvar_bazooka_buyable = register_cvar("bazooka_buyable","1",FCVAR_SERVER)
cvar_bazooka_dropping = register_cvar("bazooka_dropping","1",FCVAR_SERVER)
cvar_bazooka_restrict = register_cvar("bazooka_restrict","d",FCVAR_SERVER)
cvar_bazooka_velocity = register_cvar("bazooka_velocity","1200",FCVAR_UNLOGGED)
cvar_bazooka_animation = register_cvar("bazooka_animation","1",FCVAR_UNLOGGED)
cvar_bazooka_trailtime = register_cvar("bazooka_trailtime","10",FCVAR_UNLOGGED)
cvar_bazooka_gib_death = register_cvar("bazooka_gib_death","1",FCVAR_SERVER)
cvar_bazooka_tkpunish1 = register_cvar("bazooka_tkpunish1","1",FCVAR_SERVER)
cvar_bazooka_tkpunish2 = register_cvar("bazooka_tkpunish2","3",FCVAR_SERVER)
cvar_bazooka_max_damage = register_cvar("bazooka_max_damage","150",FCVAR_UNLOGGED)
cvar_bazooka_trailcolor = register_cvar("bazooka_trailcolor","1",FCVAR_UNLOGGED)
cvar_bazooka_obeyffcvar = register_cvar("bazooka_obeyffcvar","1",FCVAR_SERVER)
cvar_bazooka_obeybuyzone = register_cvar("bazooka_obeybuyzone","1",FCVAR_SERVER)
cvar_bazooka_damage_radius = register_cvar("bazooka_damage_radius","250",FCVAR_UNLOGGED)

register_concmd("bazooka","cmd_Drop_Bazooka",ADMIN_BAN)
register_concmd("buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")

register_clcmd("say /buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")
register_clcmd("say_team /buybazooka","cmd_BuyBazooka",ADMIN_USER,"- Buys a bazooka")
register_clcmd("bazooka_give","cmd_GiveBazooka",ADMIN_BAN,"<@all/ct/t>/userid - Gives free bazooka")
// ну и так дальше.....


Плагин компилится без ошибок, установил на сервер.
Но когда берёшь базуку в руки и делаешь первый выстрел - сервер падает.
Что не так сделал?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя CH0CAPIC
сообщение 21.5.2014, 10:40
Сообщение #2


Стаж: 12 лет

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

не нужны не используй проста, зачем голову ломаешь за эта ? что изменится ?

Отредактировал: CH0CAPIC, - 21.5.2014, 10:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
yukish
сообщение 21.5.2014, 11:17
Сообщение #3
Стаж: 12 лет

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

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

Подскажите в чем проблема?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CH0CAPIC
сообщение 21.5.2014, 11:22
Сообщение #4


Стаж: 12 лет

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

я не скриптер прасти, но если ты меняешь толька за этого я думаю возможна проста отключить чтоб не видно была.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
yukish
сообщение 21.5.2014, 11:50
Сообщение #5
Стаж: 12 лет

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

Цитата(CH0CAPIC @ 21.5.2014, 12:22) *
я не скриптер прасти, но если ты меняешь толька за этого я думаю возможна проста отключить чтоб не видно была.

Я и собирался отключить квары - тупо убрать их. Заменив просто числами.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CH0CAPIC
сообщение 21.5.2014, 12:20
Сообщение #6


Стаж: 12 лет

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

я имел ввиду отключить чтобы на мониторингах не было видно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 21.5.2014, 12:49
Сообщение #7


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

При регистрации квара убери флаги типа "FCVAR_SERVER", должно помочь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magiczoltrix
сообщение 21.5.2014, 12:58
Сообщение #8
Стаж: 12 лет

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

я не вижу разницы между
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
и
new cvar_bazooka_cost = 2500
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Surf
сообщение 21.5.2014, 13:13
Сообщение #9


Стаж: 14 лет

Сообщений: 1089
Благодарностей: 501
Полезность: 583

Цитата(magiczoltrix @ 21.5.2014, 16:58) *
я не вижу разницы между
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
и
new cvar_bazooka_cost = 2500

А я вижу. В первом случае переменная содержит указатель для дальнейшей работы с кваром. Во втором - значение квара
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vasabla
сообщение 21.5.2014, 13:34
Сообщение #10


Стаж: 14 лет

Сообщений: 97
Благодарностей: 35
Полезность: 276

Cvar Utilites -> HookChange -> сохранять в локальную переменную
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magiczoltrix
сообщение 21.5.2014, 13:46
Сообщение #11
Стаж: 12 лет

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

Цитата(Surf @ 21.5.2014, 16:13) *
А я вижу. В первом случае переменная содержит указатель для дальнейшей работы с кваром. Во втором - значение квара


как правильно заменить
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
если new cvar_bazooka_cost = 2500 замена не правильная,
может вот так - new cvar_bazooka_cost = "2500"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 21.5.2014, 20:08
Сообщение #12
Стаж: 12 лет

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

Как ты собираешся заменить cvar_bazooka_restrict = register_cvar("bazooka_restrict","d",FCVAR_SERVER)
там ваще буква присваивается!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 21.5.2014, 20:13
Сообщение #13
Стаж: 12 лет

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

csgamerok,
точно так же...
Код:
new cvar_bazooka_restrict = "d"

или с этим какие то проблемы нынче?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 21.5.2014, 22:31
Сообщение #14
Стаж: 12 лет

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

Если чесно я не совсем доганяю почему замена строчки
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
на new cvar_bazooka_cost = 2500 - не правильная,
а на new cvar_bazooka_cost = "2500" - правильная
Компилятор же выбрасывает кавычки на числах.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 22.5.2014, 17:20
Сообщение #15
Стаж: 12 лет

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

может кто объяснит
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magiczoltrix
сообщение 26.5.2014, 20:04
Сообщение #16
Стаж: 12 лет

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

Цитата(csgamerok @ 22.5.2014, 1:31) *
Если чесно я не совсем доганяю почему замена строчки
cvar_bazooka_cost = register_cvar("bazooka_cost","2500",FCVAR_SERVER)
на new cvar_bazooka_cost = 2500 - не правильная,
а на new cvar_bazooka_cost = "2500" - правильная
Компилятор же выбрасывает кавычки на числах.


Я так понял 2500 - цифра, а "2500" просто текст
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamerok
сообщение 28.5.2014, 21:39
Сообщение #17
Стаж: 12 лет

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

Цитата(magiczoltrix @ 26.5.2014, 23:04) *
Я так понял 2500 - цифра, а "2500" просто текст


"2500" - это стоимость, значит ЦЫФРА
короче из умных тебе обяснят, я не понимаю в плагинах
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: