Сейчас 12:12:59 Пятница, 19 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как распределить деньги? (Помогите плз!)
Как распределить деньги?
falgetДата: Понедельник, 31 Января 2011, 16:38:07 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Как сделать распределение денег?
Допустим есть команда из 5 человек и дано команде 4000 золота то как сделать чтоб при старте карты это количество золота распределялось между игроками поровну, например играет два игрока каждому по 2000, играет три каждому по 1,333 тысяч и тд...
Как это сделать тригерно??
 

KartohaДата: Понедельник, 31 Января 2011, 16:45:50 | Сообщение # 2
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
falget, самый простой, но довольно громоздкий способ:
События:
Общие параметры Map Initialization
Условия:
Нет
Действия:
Общие параметры - If/Then/Else
If
Integer comparision - Count Player In Player Group = 1 Then Общие параметры - Set variable - Set <переменная типа целочиселнная> = 4000
Else
Call DoNothing
Общие параметры - If/Then/Else
If
Integer comparision - Count Player In Player Group = 2 Then Общие параметры - Set variable - Set <переменная типа целочиселнная> = 2000
Else
Call DoNothing
Общие параметры - If/Then/Else
If
Integer comparision - Count Player In Player Group = 3 Then Общие параметры - Set variable - Set <переменная типа целочиселнная> = 1333
Else
Call DoNothing
Общие параметры - If/Then/Else
If
Integer comparision - Count Player In Player Group = 4 Then Общие параметры - Set variable - Set <переменная типа целочиселнная> = 1000
Else
Call DoNothing
Integer comparision - Count Player In Player Group = 5 Then Общие параметры - Set variable - Set <переменная типа целочиселнная> = 800
Else
Call DoNothing

Дальше добавляеш всем игрокам по<переменная целочисленная> золота.

 

falgetДата: Понедельник, 31 Января 2011, 16:48:52 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Спс все понял кроме этого как это?
Quote (Kartoha)
Дальше добавляеш всем игрокам по<переменная целочисленная> золота.
 

KartohaДата: Понедельник, 31 Января 2011, 16:51:05 | Сообщение # 4
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Есть действие Игрок - Добавить золото, применяеш его на всех игроках и в качестве золота указываеш переменную.
 

falgetДата: Понедельник, 31 Января 2011, 16:57:19 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
ааа все понял большое спасибо, поставил бля плюс в репу но не знаю как.
 

DreiiДата: Понедельник, 31 Января 2011, 16:59:07 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Kartoha, Kartoha, а не проще забить игроков в переменную и разделить?
например так
Code
local integer i=0
loop  
exitwhen i==5
if IsPlayerAlly(Player(i), Player(5)) then  
    set i= i+1
   call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD) + 4000\i)
      endif  
endloop


 

SirNikolasДата: Понедельник, 31 Января 2011, 17:06:52 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Kartoha, согласен с тобой лишь наполовину. Да, это действительно громоздкий способ, но не самый простой.

События:
Map initialization
Действия:
Set PlayerGroup = (All players matching ((Matching player)'s slot status равно Играет))
For each (Integer Integer), from 1 to 12, do (Actions)
_Игрок - Set Player(Integer)'s золото (текущ.) as ((Player(Integer)'s золото (текущ.)) + (Count players in PlayerGroup))
Custom script: call DestroyForce(udg_PlayerGroup)

Добавлено (31-01-2011, 17:05)
---------------------------------------------
Dreii, это будет работать не совсем так, как нужно. Если быть точным, то первый игрок получит 4000, второй - 2000 и т. д. А если быть еще точнее, то игра зависнет из-за бесконечного цикла, если хоть один из них окажется врагом оранжевому.

Добавлено (31-01-2011, 17:06)
---------------------------------------------

Quote (Dreii)
4000\i
И вообще он выдаст ошибку компиляции.


 

DreiiДата: Понедельник, 31 Января 2011, 17:07:15 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
SirNikolas, хм не знал)Просто предположил)

 

falgetДата: Понедельник, 31 Января 2011, 18:31:20 | Сообщение # 9
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
SirNikolas, Не понял как сделать твоим методом?
В действиях нет такого как PlayerGroup или All players matching и тд. Объясни по подробнее пожалуйста.
 

DreiiДата: Понедельник, 31 Января 2011, 18:39:22 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (falget)
PlayerGroup

Это переменная


 

falgetДата: Понедельник, 31 Января 2011, 18:43:53 | Сообщение # 11
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Это я понял а дальше
Quote (SirNikolas)
= (All players matching ((Matching player)'s slot status равно Играет))
For each (Integer Integer), from 1 to 12, do (Actions)
 

DreiiДата: Понедельник, 31 Января 2011, 18:45:36 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
falget, Всех игроков Сопосостовляювиащавыщаыщваывщ слот игрока играет
Цикл от 1 до 12


 

falgetДата: Понедельник, 31 Января 2011, 18:55:43 | Сообщение # 13
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (SirNikolas)
(All players matching ((Matching player)'s slot status равно Играет))
где найти это???
 

SirNikolasДата: Понедельник, 31 Января 2011, 19:23:39 | Сообщение # 14
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:


 

lawsonДата: Понедельник, 31 Января 2011, 20:03:23 | Сообщение # 15
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
SirNikolas
Все правильно dreii написал только забыл
перед лупом надо было сделать деление
gold / число игроков
а потом loop
и раздать деньги игрокам.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

falgetДата: Понедельник, 31 Января 2011, 20:59:13 | Сообщение # 16
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
А если две команды игроков то это будет действовать отдельно на каждую из команд?
 

SirNikolasДата: Вторник, 01 Февраля 2011, 13:35:27 | Сообщение # 17
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Тогда нужно проверить, что игрок является союзником кого-нибудь из команды №1 и при этом играет. То же самое с командой №2.

 

[stebashka]Дата: Вторник, 01 Февраля 2011, 13:47:56 | Сообщение # 18
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Исли игрок играет уст переменную (целочисленную) = (твоя переменная) +1
выглядит так
Действия:
Общие параметры - If/Then/Else
Условия - (сравнение статуса игрока) если статус игрока красный = играет
То действия - Установить (твоя переменная +1)
и там со всеми игроками


Установить голд как (твое число например 4000 разделить на (твоя переменная))


 

SirNikolasДата: Вторник, 01 Февраля 2011, 13:59:09 | Сообщение # 19
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Точно, можно и так, но надо в цикл поставить.

 

DreiiДата: Вторник, 01 Февраля 2011, 14:01:55 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Quote (SirNikolas)
Точно, можно и так, но надо в цикл поставить.

Quote (Dreii)
local integer i=0 loop   exitwhen i==5 if IsPlayerAlly(Player(i), Player(5)) then      set i= i+1    call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD) + 4000\i)       endif   endloop

Тоже самое но с ошибками синтаксиса


 

SirNikolasДата: Вторник, 01 Февраля 2011, 14:17:59 | Сообщение # 21
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Dreii, золото надо устанавливать после цикла.

 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как распределить деньги? (Помогите плз!)
  • Страница 1 из 1
  • 1
Поиск:

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