Обсуждение Вопросы по программированию модификаций на Python

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
15 Фев 2014
Сообщения
5,520
Репутация
2,705
Спасибо
1,871
Монет
0
Да, что тебе жалко! Ты же понял о чём речь?!

Код:
from Avatar import PlayerAvatar
from constants import ARENA_PERIOD

def new(self, period, periodEndTime, periodLength, periodAdditionalInfo):
    pre(self, period, periodEndTime, periodLength, periodAdditionalInfo)
    
    if period == ARENA_PERIOD.BATTLE and period > -1: print 'Battle is Start!!!'
    
pre = PlayerAvatar._PlayerAvatar__onArenaPeriodChange
PlayerAvatar._PlayerAvatar__onArenaPeriodChange = new
 
Вот спасибо. А то зажал )))

И много ты таких фокусов знаешь?
Поделись инфой!

зы

Или это слишком нагло с моей стороны?
А вообще подобной информации очень не хватает ((((
 
Последнее редактирование:
Вот спасибо. А то зажал )))

И много ты таких фокусов знаешь?
Поделись инфой!

зы

Или это слишком нагло с моей стороны?
А вообще подобной информации очень не хватает ((((

В исходниках игры много чего волшебного, просто ориентироваться нужно или уметь пользоваться поиском по файлам подбирая ключевые слова. =
 
В исходниках игры много чего волшебного, просто ориентироваться нужно или уметь пользоваться поиском по файлам подбирая ключевые слова. =

Эти фокусы я пробую, но пока опыта маловато.

Может подскажешь ещё... Как определить перезарядку союзника? Что он перезаряжаться начал, или принудительную перезарядку нажал.
Всю голову я сломал уже.

Да, и ещё. Бьюсь об заклад, что у тебя есть файл заготовка - с вот такими функциями, что ты мне набросал - на определённые события (начало битвы, трассер полетел и т.д. и т.п.) ПОДЕЛИСЬ в личке ;)
 
Последнее редактирование:
Принудительно никак. Только перехватывать сообщения в чате.

Код:
pre_showTracer_init = PlayerAvatar.showTracer
pre_stopTracer_init = PlayerAvatar.stopTracer

def new_showTracer_init(current, shooterID, shotID, isRicochet, effectsIndex, refStartPoint, velocity, gravity, maxShotDist):
    pre_showTracer_init(current, shooterID, shotID, isRicochet, effectsIndex, refStartPoint, velocity, gravity, maxShotDist)

def new_stopTracer_init(current, shotID, endPoint):
    pre_stopTracer_init(current, shotID, endPoint)

PlayerAvatar.showTracer = new_showTracer_init
PlayerAvatar.stopTracer = new_stopTracer_init

Выстрел ловить через это, дальше фильтруй данные которые функция передает.
 
Принудительно никак. Только перехватывать сообщения в чате.

А можно через миникарту как-то, там же отображается перезаряд союзника? А в чате по умолчанию разве сообщается о перезарядке?!
 
А можно через миникарту как-то, там же отображается перезаряд союзника? А в чате по умолчанию разве сообщается о перезарядке?!

Там перехватывать нужно в отдельной функции, сервер отправляет нам данные и скрипт их выводит, нужно обрабатывать и фильтровать или через миникарту смотреть какая функция их принимает сразу и соответственно встраивать свое действие. Разжевывать не буду. Долго.

Из видео конечно ни чего не понял, ну и ладно. Есть идея,раз ты разбираешься во всем этом,нельзя ли сделать прицел который попадал бы в зоны пробития.Ну был привязан к определенным шкуркам зон пробития, я думаю это реально,есть же уже где то угол рикошета,в аим боте что ли,так вот если рикошет намечается,не целим,переводим на другую зону пробитий,ну если и там ничего на гуслю,ну и авто выстрел.Шкурки есть,даже полно,осталось только научить прицел выбирать приоритет цветов.

По Flash я делать не буду ничего на данный момент. По питону можно, но долго, когда нибудь - снова захочется мне сделать для себя, вот тогда и .. В видео не очень наглядно вышло, там 2 мода, 1 - лазеры, 2 - Шестое чувство, то бишь если убрать лазеры будут такие индикаторы пульсировать со сторонами показывает что на нас кто то наведен.. Вместо лазеров..
 
Последнее редактирование:
Спасибо и на этом.

ЗЫ

А у вас есть такой же..., но без крыльев ))))

Будем искать.

зызы

А это ты мне по приколу написал так PlayerAvatar._PlayerAvatar__onArenaPeriodChange
надо ж PlayerAvatar.__onArenaPeriodChange
 
Последнее редактирование:
Какие крылья

ффффффффффффффффффффффффффффффффффффф
 
Последнее редактирование:
Действительно работает так как ты написал! А почему добавилось _PlayerAvatar
есть какая-то тонкость?
 
Это Магия. :psyh:

Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 20 символов.
 
Смеёшься! :blea:
И правильно делаешь, я олень, но я учусь. Мог бы объяснить нубу в 2х словах.
 
Не если серьезно, то это на самом деле Магия.

Руководство по магическим методам в Питоне или набери в поисковике Магия в питоне.

Своего рода защита от любителей которые любят ковыряться в функциях. (в википедии есть раздел про это короткий - открыть, раздел - Инкапсуляция и доступ к свойствам)

Все остальное с опытом приходит, в мануале не всегда все описано.
 
У-ха-ха! Ну, удружил. Яж читал про это, но вот не приходилось сталкиваться и всё из дырявой башки вылетело )) Теперь хоть понятно как оно на практике получается.

Спасибо за урок, буду в курсе теперь как магией пользоваться. Вот они хитрецы, типа защита ))) _ИмяКласса__ИмяАтрибута
 
Последнее редактирование:
Тоже самое с переменными которые они в классе через self.__PARAM пишут, можно получить таким же способом как и функцию, только вернет само значение.
 
Тоже самое с переменными которые они в классе через self.__PARAM пишут, можно получить таким же способом как и функцию, только вернет само значение.

Это понятно, в питоне же всё - объект.
Значит самые хитрые функции у них начинаются на __
надо обратить на них внимание ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху