Сейчас 04:43:50 Суббота, 20 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Система раздачи золота поровну
Система раздачи золота поровну
ShanaaДата: Вторник, 22 Ноября 2011, 12:05:54 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 17
Награды: 0
Репутация: 3
Блокировки:
Требуется сделать такую систему:
Допустим с моба при убийстве падает 30 золота.
Если его убивает один игрок и рядом никого нет, то он получает полную сумму, т.е. 30 золта, НО если рядом есть еще один персонаж (второй игрок), то они оба получают по 15 золта, если их 3 то по 10 и т.д.
Как такую систему сделать?
Я так понимаю тут нужны локальные переменные и да, нужно чтобы еще писало сумму которую получает игрок.

Если не затруднит, сделайте наработку.
Если уже было - извиняюсь.


nyan:3
 

SirNikolasДата: Вторник, 22 Ноября 2011, 12:55:33 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
var
__PlayerGroup: Группа игроков;
__Point: Точка;

События:
Боевая единица - A unit Умирает
Условия:
(Unit-type of (Triggering unit)) = Моб
Действия:
Set Point = (Position of (Triggering unit))
Отряд - Pick every unit in (Units within 500.00 range of Point matching ((Matching unit) is an enemy of (Owner of (Triggering unit)))) and do (Actions)
__Группа игроков - Add to PlayerGroup (Owner of (Picked unit))
Custom script: call RemoveLocation(udg_Point)
Игра - Display to PlayerGroup the message: ("+" + String(30 / (Count players in PlayerGroup)))
Группа игроков - Pick every player in PlayerGroup and do (Actions)
__Игрок - Add (30 / (Count players in PlayerGroup)) to (Picked player)'s Золото (текущ.)
Группа игроков - Remove all players from PlayerGroup


 

HexingДата: Вторник, 22 Ноября 2011, 14:19:35 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
скоко много утечек :'(

 

SirNikolasДата: Вторник, 22 Ноября 2011, 14:58:18 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Одна.
Quote (SirNikolas)
(Units within 500.00 range of Point matching ...)
И только потому, что GUI'шными методами ее не удалишь.


 

vov68Дата: Вторник, 22 Ноября 2011, 15:29:46 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1329
Награды: 3
Блокировки:
Quote (SirNikolas)
Units within 500.00 range of Point


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


Зачем делать для других новые карты...
... лучше устроить коту божественный почесон. :)
 

Ty3uKДата: Вторник, 22 Ноября 2011, 15:37:14 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
А как же создать переменную типа группа, дать ей значение "юниты в радиусе попадающие под условие", а потом через кастом скрипт удалять?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Вторник, 22 Ноября 2011, 17:57:54 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ty3uK, в этом проку даже меньше, чем в bj_wantDestroyGroup. Проблема в самой BJ на отлов юнитов:
Code
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
     local group g = CreateGroup()
     call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
     call DestroyBoolExpr(filter)
     return g
endfunction
В этой функции (как и во всех других, направленных на отлов юнитов/игроков) допускается грубейшая ошибка: значение локальной переменной не обнуляется. А как известно, невозможно удалить из памяти объект, на который ссылается хотя бы одна переменная (кэш и хэш не в счет).

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


 

Ty3uKДата: Вторник, 22 Ноября 2011, 18:40:48 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Еах, я и забыл совсем. Давайте коллективно исправим blizzard.j и кинем близзам с просьбой обновить его в патче? ^_^

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Вторник, 22 Ноября 2011, 19:05:05 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
1. можно щёлкнуть авто-дестрой у группы...
2. можно удалить точку если ещё ещё сначала запомнить...

Добавлено (22 Ноябрь 2011, 19:05:05)
---------------------------------------------

Quote (Ty3uK)
Еах, я и забыл совсем. Давайте коллективно исправим blizzard.j и кинем близзам с просьбой обновить его в патче?

ну если в мире стока мапмейкером и просто людей шаращих в коде... и этого ещё никак не сделали... то не думаю что сделают ((( хотя было бы круто
 

HexingДата: Вторник, 22 Ноября 2011, 19:17:34 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Extremator, не в тему сказал) автодестрой не спасет ибо там локалка, доступа к которой у нас нет, а точку удалять ненадо ибо это глобалка

 

Ty3uKДата: Вторник, 22 Ноября 2011, 19:26:23 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Можно переписать простые функи гуи с бж на нативки, вопрос, кто это сделает? Ведь все гуишники считают, что гуи непогрешим

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ExtrematorДата: Среда, 23 Ноября 2011, 00:28:32 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (SirNikolas)
И только потому, что GUI'шными методами ее не удалишь.

Quote (Hexing)
ибо там локалка,

ну если там локалка, то естественно поюзать кс можно...
или вообще перевести в жасс и вырезать кучу мусора...

Quote (Ty3uK)
Ведь все гуишники считают, что гуи непогрешим

Не все...
 

Ty3uKДата: Среда, 23 Ноября 2011, 07:15:06 | Сообщение # 13
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ты не отловишь локалку из бж на гуи. Даже через кс

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Среда, 23 Ноября 2011, 07:37:39 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Ватсон, он имеет ввиду написать свои бж-функции

 

Ty3uKДата: Среда, 23 Ноября 2011, 08:51:12 | Сообщение # 15
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Гуишник будет писать свои бж и вызывать их через кс? Да не в жисть

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Среда, 23 Ноября 2011, 11:58:21 | Сообщение # 16
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
Давайте коллективно исправим blizzard.j и кинем близзам с просьбой обновить его в патче? ^_^
Уже.
Extremator, можно разве что переписать функции из blizzard.j и импортировать его в свою карту.

Добавлено (23 Ноябрь 2011, 11:58:21)
---------------------------------------------

Quote (Ty3uK)
Гуишник будет писать свои бж и вызывать их через кс? Да не в жисть
+1. Для чего же тогда действие "Триггер - Run (Ignoring conditions)", как не для этого?)


 

Ty3uKДата: Среда, 23 Ноября 2011, 12:43:54 | Сообщение # 17
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вот-вот

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Система раздачи золота поровну
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz