Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Weapon PLUS - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Weapon PLUS beta version Оценка: -----

#11
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDeimoS (10 Апрель 2018 - 19:26) писал:

Её и правда пока нет.

Меня тут другое заинтересовало. Почему инклуд будет называться Weapon FIX? Что он фиксит? Ты только расширяешь функционал ведь и не более


Самое главное - фикс перезарядки, но называть recharge fix тоже будет не правильно. :blush: Код скоро выложу, чтобы вы принцип поняли. Хотелось бы сделать ВСЁ, а потом выложить, чтоб уже исправлять.

Сообщение отредактировал Sonic X: 10 Апрель 2018 - 20:36

0

#12
Пользователь офлайн   Romzes 

  • © Pawn-Wiki.Ru
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSonic X (10 Апрель 2018 - 20:28) писал:

Самое главное - фикс перезарядки


Речь идет о колесике мышки? То есть когда его прокручиваешь, оружие само перезаряжается.
0

#13
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияRomzes (10 Апрель 2018 - 20:52) писал:

Речь идет о колесике мышки? То есть когда его прокручиваешь, оружие само перезаряжается.

Да, изначально хотел решить эту проблему. Потом же потихоньку функции начали сами собой вытекать. Поэтому сейчас довожу всё до ума.

Сообщение отредактировал Sonic X: 15 Апрель 2018 - 12:33

0

#14
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию
Обновлено! Обо всех недочётах сообщайте, постараюсь исправить. Также принимаю советы или готовые решения, как можно было сделать лучше :happy:
0

#15
Пользователь офлайн   SooBad 

  • SB org
  • Вставить ник
  • Раскрыть информацию
Вообще, все глобальные переменные, которые объявлены вначале инклюда можно было заменить на константы (макросы), все-таки это постоянные значения. Я бы вообще все на препроцессор положил.
Далее. Неверно построена структура перехватов внутри вызываемого коллбека. Посмотри любой урок в инете и исправь ошибку.
Ну и по мелочи, всё логирование передается с "префиксом" Weapon Fix.
0

#16
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSooBad (17 Апрель 2018 - 08:17) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


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

Исправил


Вообще, как код построен? Более менее приемлемо? Я думал насчёт массива, который будет хранить в себе значения максимального количества патрон, но это пришлось бы всё переписывать и тогда не получилось бы, наверное, сделать независимое количество патрон для двух оружий в руках (не просто ammo[№]*2).

Сообщение отредактировал Sonic X: 17 Апрель 2018 - 12:47

0

#17
Пользователь офлайн   SooBad 

  • SB org
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSonic X (17 Апрель 2018 - 08:20) писал:

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

С макросами прокатывает абсолютно то же самое. Правда, придётся писать чуть больше кода.
Практический пример (если я правильно тебя понял):
Скрытый текст [Показать]


Просмотр сообщенияSonic X (17 Апрель 2018 - 08:20) писал:

Вообще, как код построен? Более менее приемлемо?

Код построен нормально (моё субъективное мнение). В микрооптимизации нет смысла.

Сообщение отредактировал SooBad: 17 Апрель 2018 - 14:59

0

#18
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSooBad (17 Апрель 2018 - 14:56) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Понял тебя, спасибо за пример :smile:
0

#19
Пользователь офлайн   Nexius 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Из беглого просмотра кода наткнулся на пару небольших опечаток
stock WP_SetPlayerWeaponAmmo(id, wp_weapon, wp_ammo)
{
    if(wp_weapon < 0 || wp_weapon > 46 || wp_weapon == 39 || wp_weapon == 40) return printf("[ERROR Weapon PLUS] INVALID WEAPON ID \"%i\"", wp_weapon);
    if(wp_weapon < 0) return printf("[ERROR Weapon PLUS] INVALID AMMO AMOUNT \"%i\"", wp_ammo); //Здесь (wp_ammo < 0)
 
    wp[id][ammo][GetWeaponSlot(wp_weapon)] += wp_ammo;
 
    return 1;
 
}
 
stock WP_SetPlayerWeaponMag(id, wp_weapon, wp_ammo)
{
    if(wp_weapon < 0 || wp_weapon > 46 || wp_weapon == 39 || wp_weapon == 40) return printf("[ERROR Weapon PLUS] INVALID WEAPON ID \"%i\"", wp_weapon);
    if(wp_weapon < 0) return printf("[ERROR Weapon PLUS] INVALID AMMO AMOUNT \"%i\"", wp_ammo); //И здесь
 
    wp[id][mag][GetWeaponSlot(wp_weapon)] += wp_ammo;
 
    return 1;
 
}

//И ещё в некоторых похожих функциях ниже



Просмотр сообщенияSooBad (17 Апрель 2018 - 14:56) писал:

С макросами прокатывает абсолютно то же самое. Правда, придётся писать чуть больше кода.
Практический пример (если я правильно тебя понял):
Скрытый текст [Показать]

Не прокатит, потому что работают они совершенно иначе: изменённое значение макроса распространяется только на код, который идёт дальше этого изменения, и более того, изменения произойдёт независимо от обычных "runtime-условий" в коде.

Вот как пример два простых куска кода, которые ломают весь алгоритм с твоим редефайном вместо нормальной переменной:
1) Выведем значения макроса ещё раз до его фактического изменения, но после выполнения функции, в которой он изменяется:
Скрытый текст [Показать]

Результаты:
1: 40
2: 30

2) Вызовем вообще совершенно другую команду, чтобы никакие обычные условия для редефайна не сработали:
Скрытый текст [Показать]

Результаты:
40

Сообщение отредактировал Nexius: 17 Апрель 2018 - 21:14

1

#20
Пользователь офлайн   Sonic X 

  • X != Х
  • Вставить ник
  • Раскрыть информацию
Забирайте себе эти наработки, если вдруг захотите допилить систему. :biggrin: :wink: У меня в планах другая. В принципе, её уже можно использовать, только с транспортом нет взаимодействия. :blush:
По поводу TD [Показать]

Сообщение отредактировал Sonic X: Вчера, 21:49

0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей