Поясняю вопрос:
В карте передача ресурсов запрещена, но ее можно организовать иначе: я даю союзнику контроль, он покупает дорогую вещь в магазине моему персонажу, а я ее продаю. Не важно, что мне вернется лишь 50% от того, что потратил союзник. Важно то, что вообще мне упадет с этого голд. Вопрос: как можно этого избежать?
Вариант с обесцениванием вещей отпадает сразу!

Принятый ответ

EnergyFrost, юнит будет принадлежать игроку который контролировал
то есть владельцем юнита является тот игрок который совершил покупку а не тот кому принадлежал юнит совершивший покупку
таким образом мы получаем настоящего покупателя юнита
а сравнив владельцев купленного юнита и владельца юнита покупателя можно определить что юнит был куплен другим игроком
вернуть деньги игроку и не создавать предмет
таким образом игрок не сможет покупать предметы другим игрокам с помощью передачи контроля
EnergyFrost:
Покупка предмета будет совершена за счет игрока-контролера.
ну так отменяем покупку и все проблемы
как определить что купил не владелец героя я написал уже
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
30
8 лет назад
0
Запретить передачу контроля?
0
18
8 лет назад
0
При продаже отбирать золото обратно.
0
15
8 лет назад
0
Clamp, контроль должен оставаться.
Maniac_91, а как ты отловишь это? Может игрок сам купил?
0
28
8 лет назад
0
старые добрые бд
у предмета храним его настоящего владельца (первого кто получил/купил этот предмет)
если предмет продан и продал его не владелиц то отбираем голду и восстанавливаем предмет со словами "фиг тебе а не продажа"
0
15
8 лет назад
Отредактирован EnergyFrost
0
nvc123, настоящий владелец - игрок 15( тот кто продает предмет) . Игрок, который покупает - я. И не важно, что в этот момент меня контролировали. Варкрафт не отлавливает того, Кто в этот момент меня контролировал.
PS если я получил- не означает, что я купил из магазина.
0
28
8 лет назад
Отредактирован nvc123
0
EnergyFrost, настоящий владелец - тот кто купил предмет либо получил его первым
читай внимательно
контроль отловить будет сложно
0
15
8 лет назад
0
nvc123, я же дополнил свое сообщение.
И как отловить того, Кто купил предмет, Если в любом случае это буду я, несмотря на то, что меня контролировпли
0
28
8 лет назад
0
только зачем тебе его отлавливать?
0
15
8 лет назад
0
nvc123, чтобы ему бабки вернуть за предмет.
0
28
8 лет назад
0
EnergyFrost, запрети передавать контроль
или сделай вещи не продаваемыми
но это тоже самое что обесценить их
иначе пиши свою систему продажи предметов
например на основе юнитов
при покупке юнита создавать предмет где владельцем будет владелец купленного юнита
после чего удаляй юнита
0
15
8 лет назад
Отредактирован EnergyFrost
0
nvc123, ага в этом и есть вся проблема. У меня тут еще одна идея появилась: через событие, что у игрока голда становится >= 0. Но это слишком мутерно. Запоминать все шмотри и весь голд. У игрока был голд <3500, но появилась шмотка, цена которой в бд 3500- значит кто-то купил. Но это ужас будет. Каждое изменение в ресурсах игрока ( а их 12) будет теребонькать этот триггер. В общем, твой способ скорее всего самый лучший из худших.
Либо пойти на другие меры: сделать систему контроля, но пожалуй это не самый лучший вариант...
Кто не понял о чем я- посмотрите карту
Загруженные файлы
0
28
8 лет назад
0
EnergyFrost, а чем юниты плохи?
да придётся помучится с бд
но других проблем быть не должно
0
15
8 лет назад
0
nvc123, сейчас подумал. Проблема все равно останется. Юнит будет куплен за счет игрока, который контролировал твоего юнита. И в итоге все придет к началу. Покупка предмета будет совершена за счет игрока-контролера. А не твой счет
Скорее всего никак не удастся отследить. Мой способ очень труден, но других перспектив не вижу.
Была идея с 12 магазинами и GetLocalPlayer. Чтобы магазины могли продавать только своим владельцам, но реализовывать это тоже трудновато и + надо о десинхре задуматься на этой почве. И еще я не знаю, как поведет себя магазин союзника, если ты дал контроль. Скорее всего закуп будет возможен в одном магазине и тебе и союзу.
0
32
8 лет назад
0
Как насчет запредить вовсе продажу предметов, в привычном плане а сделать какой нить ящик или курьер - где будет кнопка утилизировать предмет, положил предмет, нажал кнопку предмет исчез а юнит получил голд.
Делаем это основе скилла - Поставка ресурсов, событие - наш утилизатор предметов отдал приказ без указания цели, условие - приказ разве поставка ресурсов, действия - создать новый триггер и добавить ему по событию типа - кол-во ресурсов игрока изменилось, действие триггера - выключить триггер, вот мы и нашли игрока который юзнул поставку ресурсов, GetTriggerPlayer - это тот игрок у которого в момент каста изменилось кол-во ресурсов.
Ах да, нужно у поставки ресуров поставить галочку - заряд игрока владельца.
По аналогии можно отследить кто юзал телескоп гоблина.
0
28
8 лет назад
0
EnergyFrost, юнит будет принадлежать игроку который контролировал
то есть владельцем юнита является тот игрок который совершил покупку а не тот кому принадлежал юнит совершивший покупку
таким образом мы получаем настоящего покупателя юнита
а сравнив владельцев купленного юнита и владельца юнита покупателя можно определить что юнит был куплен другим игроком
вернуть деньги игроку и не создавать предмет
таким образом игрок не сможет покупать предметы другим игрокам с помощью передачи контроля
EnergyFrost:
Покупка предмета будет совершена за счет игрока-контролера.
ну так отменяем покупку и все проблемы
как определить что купил не владелец героя я написал уже
Принятый ответ
0
15
8 лет назад
0
EnergyFrost, юнит будет принадлежать игроку который контролировал
то есть владельцем юнита является тот игрок который совершил покупку а не тот кому принадлежал юнит совершивший покупку
Хм. Это интересно. Попробую, спасибо. А то я подумал, что юнит будет принадлежать владельцу юнита. А не инициатору игроку.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.