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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Выбор героя двойным кликом
rixt7956Дата: Среда, 04 Мая 2011, 14:42:01 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Хоть это реализуеться довольно просто, всё же часто возникают такие вопросы. Эта система сделана для тупого копирования себе в карту, что бы новички могли использовать её в своей карте, а нормальные джасеры сократить время проводимое за компом, которое может уйти на написание чего то подобного. :)

Импорт:


    1.Установите JNGP( Jass New Gen Pack ) 5d, если он не установлен вместе с AdicHelper.
    2.Скопируйте триггер SelectHero и переменную PlayerStartRect.
    3.Установите области появления. Как это сделать, вы можете увидеть в триггере Init.

Доп. функции :

    SH_GetPlayerUnit (integer p ) - Возвращает героя, выбранного игроком под указанным номером.
    SH_AllPlayersClick ( boolean OnOf ) - Включает/выключает выбор героя для всех игроков.

      SH_AllPlayersClick ( true ) - Включение
      SH_AllPlayersClick ( false ) - Выключение

    SH_toPlayerClick ( integer p, boolean OnOf ) - То же самое, что и SH_AllPlayersClick, только для определённого игрока под указанным номером.
    SH_Repick ( integer p ) - Перевыбор героя для игрока под указанным номером. Предыдущий юнит удаляеться. Камера не куда не передвинется.
    SH_GetPlayerColorText ( player p , string s ) - Окрашивает текст в цвет указанного игрока.
    SH_MoveUnit( integer PlayerId , boolean b ) - Включить/выключить перемещения юнита игрока под указанным номером в стартовую область при выборе. Только
    не используйтеэту функции в триггере с событием юнит выбран. Это надо делать заранее.

      SH_MoveUnit(номер игрока, true) - включить
      SH_MoveUnit(номер игрока, false) - выключить


Скачать:

http://rghost.ru/5463652
http://depositfiles.com/files/9icx1e4ix

Если кому надо, то вот сразу код.



Сообщение отредактировал rixt7956 - Среда, 04 Мая 2011, 14:45:23
 

DreiiДата: Среда, 04 Мая 2011, 14:52:18 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
опять этот сJass //

 

rixt7956Дата: Среда, 04 Мая 2011, 14:53:37 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (Dreii)
опять этот сJass
Не бойся его :)
Тем более я же тебе давал мануал по нему...
 

DreiiДата: Среда, 04 Мая 2011, 14:55:20 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
у меня мозгэ кипит от слова cJass...какой там мануал

 

rixt7956Дата: Среда, 04 Мая 2011, 15:05:09 | Сообщение # 5
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Dreii, На самом деле он намного проще чем обычный, и в 100 раз удобнее, к примеру сравни даже форму записи
Jass
Code
function A takes unit u returns nothing
local real x = GetRandomReal(0,1000)
local real y = GetRandomReal(0,1000)
call SetUnitPosition(u,x,y)
endfunction

cJass
Code
nothing A (unit u) {
real x = GetRandomReal(0,1000) , y = GetRandomReal(0,1000)
SetUnitPosition(u,x,y)
}
 

SirNikolasДата: Среда, 04 Мая 2011, 15:07:49 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Никак не могу понять, почему ты даешь библиотекам такие малопонятные имена... Сейчас почитаю.

 

rixt7956Дата: Среда, 04 Мая 2011, 15:17:36 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (SirNikolas)
Никак не могу понять, почему ты даешь библиотекам такие малопонятные имена... Сейчас почитаю.
SH=> SelectHero=> долго писать => SH
 

SirNikolasДата: Среда, 04 Мая 2011, 15:19:13 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (rixt7956)
GetPlayerColorText
Лучше создай массив этих строк и возвращай SH_PlayerColour[GetPlayerId(p)]
Извини, не подумал.
Quote (rixt7956)
IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO)
Эту функцию желательно употреблять с "== true".
Quote (rixt7956)
Code
if Click[Pid] == null {
       Click[Pid] = u
} elseif u == Click[Pid] {
/*

*/
} else {
       Click[Pid] = u
}
Code
if u == Click[Pid] {
/*

*/
} else {
       Click[Pid] = u
}

Скажи, это была такая задумка, что интервал между кликами может составлять сколько угодно времени?




Сообщение отредактировал SirNikolas - Среда, 04 Мая 2011, 17:37:30
 

rixt7956Дата: Среда, 04 Мая 2011, 15:21:50 | Сообщение # 9
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (SirNikolas)
Скажи, это была такая задумка, что интервал между кликами может составлять сколько угодно времени?

Да, зачем юзать хэш, из за одного таймера

Добавлено (04-05-2011, 15:21)
---------------------------------------------

Quote (SirNikolas)
Эту функцию желательно употреблять с "== true".
Почему?
 

SirNikolasДата: Среда, 04 Мая 2011, 15:26:30 | Сообщение # 10
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
private timer array Timer

private void FTimer() {
      handle h = GetExpiredTimer()
      int i = 0
      whilenot h == Timer[i++] {}
      /*
       Действия       
      */
      h = null
}

/*

*/
TimerStart(Timer[GetPlayerId(p)], .5, false, function FTimer)
/*

*/
Разумеется, в Init нужно вставить создание этих таймеров
Quote (rixt7956)
#include "cj_typesEX_priv.j"
Кстати, зачем ты это подключил? :)

Добавлено (04-05-2011, 15:26)
---------------------------------------------

Quote (rixt7956)
Почему?
Баг World Editor'а.




Сообщение отредактировал SirNikolas - Среда, 04 Мая 2011, 15:34:35
 

-Castro-Дата: Среда, 04 Мая 2011, 15:28:08 | Сообщение # 11
УГ продюсер
Группа: Ветераны
Сообщений: 2099
Награды: 3
Репутация: 1213
Блокировки:
По-моему быстрее самому сделать, чем:
Quote (rixt7956)
1.Установите JNGP( Jass New Gen Pack ) 5d, если он не установлен вместе с AdicHelper.
 

rixt7956Дата: Среда, 04 Мая 2011, 15:33:38 | Сообщение # 12
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (SirNikolas)
Баг World Editor'а.
fuck

Quote (SirNikolas)
Кстати, зачем ты это подключил?

Ну, я два раза переписывал систему, Первый раз с таймерами и хэшем, потом решил их удалить.
Просто мне намного удобней к примеру в место CreateTimer() или InitHashtable() или CreateTrigger() написать new timer или new hashtable или new trigger

Добавлено (04-05-2011, 15:33)
---------------------------------------------

Quote (-Castro-)
По-моему быстрее самому сделать, чем:
Quote (rixt7956)
1.Установите JNGP( Jass New Gen Pack ) 5d, если он не установлен вместе с AdicHelper.


У любого нормального мэпмэйкера есть JNGP
 

ZabeiДата: Среда, 04 Мая 2011, 15:39:07 | Сообщение # 13
7 уровень
Группа: Проверенные
Сообщений: 479
Награды: 0
Репутация: 125
Блокировки:
вопще можно было и на гуи сделать эту систему в 100500 раз быстрее smiletrollskip
 

rixt7956Дата: Среда, 04 Мая 2011, 15:52:05 | Сообщение # 14
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (Zabei)
в 100500 раз быстрее
Нет
 

ZabeiДата: Среда, 04 Мая 2011, 16:18:27 | Сообщение # 15
7 уровень
Группа: Проверенные
Сообщений: 479
Награды: 0
Репутация: 125
Блокировки:
ну может и не быстрее, но главное что и на гуи его можно сделать также легко
 

DreiiДата: Среда, 04 Мая 2011, 16:20:30 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Zabei, но не так безутечно и функциональней

Добавлено (04-05-2011, 16:20)
---------------------------------------------
Zabei, но не так безутечно и функциональней


 

SirNikolasДата: Среда, 04 Мая 2011, 17:41:07 | Сообщение # 17
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Zabei)
на гуи его можно сделать также легко
На GUI ты не отследишь текущий цвет игрока, разве что при каждом изменении записывать его в переменную. О функциональности и скорости работы я молчу.

Да, уже почти забыл GUI.




Сообщение отредактировал SirNikolas - Пятница, 06 Мая 2011, 11:08:36
 

RixtДата: Среда, 04 Мая 2011, 18:02:54 | Сообщение # 18
1 уровень
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Блокировки:
Quote (Zabei)
но главное что и на гуи его можно сделать также легко
Зачем, если на то лучше :)

Добавлено (04-05-2011, 18:02)
---------------------------------------------
всвысле на jass лучше

 

DreiiДата: Среда, 04 Мая 2011, 18:13:34 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Rixt, зачем тебе мульт?

 

RixtДата: Среда, 04 Мая 2011, 18:18:54 | Сообщение # 20
1 уровень
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Блокировки:
Quote (Dreii)
Rixt, зачем тебе мульт?

Quote (rixt7956)
Замечания: 100%
 

SirNikolasДата: Среда, 04 Мая 2011, 18:25:33 | Сообщение # 21
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:


 

LoireДата: Четверг, 05 Мая 2011, 21:18:35 | Сообщение # 22
100 уровень
ту зе мун говно пацаны
Группа: Проверенные
Сообщений: 2632
Награды: 1
Репутация: 1337
Блокировки:
А на триггерах нельзя?
 

rixt95Дата: Пятница, 06 Мая 2011, 18:02:44 | Сообщение # 23
1 уровень
Группа: Пользователи
Сообщений: 8
Награды: 0
Репутация: 0
Блокировки:
Loire,
Quote (SirNikolas)
О функциональности и скорости работы я молчу.
 

DragoNДата: Пятница, 06 Мая 2011, 20:25:21 | Сообщение # 24
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (rixt7956)
#include "cj_types_priv.j"
#include "cj_typesEX_priv.j"

уже провал
Quote (rixt7956)
boolean

по дефолту в подключённых дефайнах можно юзать bool
дальше не смотрел


El Psy Congroo
 

  • Страница 1 из 1
  • 1
Поиск:

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