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

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

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

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

Переделка War3mod'a

, вопросы по модификации вар3
Статус пользователя Aligatro
сообщение 21.2.2011, 23:07
Сообщение #1
Стаж: 15 лет

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

Здравствуйте дорогие форумчане, у меня есть небольшая проблема, хотя нет очень таки и большая)) Сам язык написания плагинов я не знаю, то-есть я могу сравнить посмотреть что где и после этого уже постараться на основе полученного опыта что-то где-то изменить, но такая практика как вы понимаете не очень хороша в программировании. Я очень хочу переделать сам мод варкрафта, но самому что либо изменить я так понимаю мне не удастся. Поэтому если кто-то сможет мне помочь, объясните несколько пунктов в самом коде sma файла варкрафтмода.
1. Есть такой вот участок кода отвечающий как я понимаю за работу скила у шадов хантера (hex).

CODE

// ****************************************
// Shadow Hunter's Hex
// ****************************************

public _Skill_Hex(parm[2]){
#if ADVANCED_DEBUG
writeDebugInfo("_Skill_Hex",parm[0])
#endif

if (!warcraft3)
return PLUGIN_CONTINUE

new id = parm[0]

if(!p_data_b[id][PB_ISCONNECTED])
return PLUGIN_CONTINUE

p_data_b[id][PB_RENDER] = true
p_data_b[id][PB_HEXED] = false

/* Reset the user's speed */
set_user_maxspeed(id, 250.0)

set_user_rendering(id)

emit_sound(id, CHAN_STATIC, SOUND_HEX, 1.0, ATTN_NORM, 0, PITCH_NORM)

return PLUGIN_CONTINUE
}

По сути дела действия скила мне нравится но хотелось добавить нечто свое допустим как мне изменить этот участок кода
Код: Выделить всё
CODE

set_user_maxspeed(id, 250.0)

set_user_rendering(id)

emit_sound(id, CHAN_STATIC, SOUND_HEX, 1.0, ATTN_NORM, 0, PITCH_NORM)

return PLUGIN_CONTINUE
}

чтобы у игрока не только заменялась скорость движения, но и начались допустим непроизвольные прыжки, через какой-то промежуток времени, или прицел уходил в сторону на 20 градусов через каждые 2 секунды и т.д. И еще чтобы при заражении игрока этим скилов у него менялась моделька на допустим зомби ну или любая по желанию.
2. Как и где можно редактировать действие того или иного предмета( и самое главное как сделать так чтобы эффект предметов с такими же функциями как и у скилов плюсовались друг с другом). Или как например можно сделать так чтобы при переключении на нож скорость бега увеличивалась у андеда, а при переключении на оружие замедлялась.
3. Где можно посмотреть полный список команд типа set_user, givemoney, drop weapon, и так далее.
4.Если я вам еще не надоел своими вопросами, подскажите пожалуйста как можно сделать Hud сообщение в правом нижнем углу экрана при срабатывании скила есльфа "evasion" и "возвращение урона".
5. И если вас не затруднит, объясните как можно сделать покупку вещей через чат, то-есть если игрок в чат пишет cloak то ему дается эта вещь и забираются деньги.

Простите за такое множество вопросов, но я надеюсь что найдутся понимающие люди готовые предложить свою помощь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя theaqua
сообщение 21.2.2011, 23:33
Сообщение #2


Стаж: 15 лет

Сообщений: 549
Благодарностей: 392
Полезность: 287

3. @ amxmodx.org. В скором времени вся эта вики будет переведена на русский.
4. Код бы в студию, который выполняется при срабатывании скилла. А так — HUD-сообщение ставится через:
Код
set_hudmessage ( красный=200, зеленый=100, синий=0, Float:x=-1.0, Float:y=0.35, эффекты=0, Float:fxtime=6.0, Float:holdtime=12.0, Float:fadeintime=0.1, Float:fadeouttime=0.2, канал=-1 )
show_hudmessage ( id, message[], ... )

  • Float:x — положение по оси x в системе координат (с геометрией/алгеброй не особо дружу в этой области)
  • Float:у — соот-но, по у оси.
  • Float:fxtime — %не знаю%
  • Float:holtime — сколько времени в секундах будет находиться сообщение на экране
  • Float:fadeintime — плавность появления. Ну… то есть, сколько времени пройдет от 000,000,000 до указанного RGB-значения в первых 3 аргументах.
  • Float:fadeouttime — то же самое, только наоборот и применяется в исчезании сообщения
  • Канал всегда лучше ставить -1 — будет искаться свободный.


Пример:
Код
set_hudmessage(255, 1, 1, -1.0, -1.0, 1, 6.0, 12.0, 0.1, 0.2, -1)
show_hudmessage(id, "Привет, братюнь :3")


5. Вообще легко. Смотри, есть функция покупки вещи, например buy_rings
Код
buy_rings ( id ) {
    set_user_money ( id, 13000 );
    give_ammo…
    blahblablah
}


Затем регаем в функции plugin_init простое сообщение в чат:
Код
register_clcmd ( "say /lolwut", "buy_rings" );

Т.е. при команде в чат /lolwut будет срабатывать функция buy_rings, которая выдает плюшки, отнимает деньги и т.д.

Вообще, я подробнее писал о регистрации команд и прочего тут, если заинтересует.


!
Аккаунт пользователя заблокирован до: 18.10.29390, 20:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Aligatro
сообщение 24.2.2011, 14:04
Сообщение #3
Стаж: 15 лет

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

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