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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [Наработка]: Имя для героя (Тема тут потому что ненаю где должна быть)
[Наработка]: Имя для героя
War-CryДата: Пятница, 04 Декабря 2009, 22:31:41 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
О чем наработка?
Вы вводите в чате имя своего героя, оно появляется над ним. Если имя было введено, то над героем выводится что ты написал.
Плюсы:
+ Можно использовать для мультиплеера
+ Инициализируется 1 строчкой
+ Идет на всех версиях вара
+ Обсолютно без утечек
Установка:
Копируем этот код в кустом скрипт карты, создаем 3 массивных переменные: u - юнит, name - строка, tt - плавающий текст
Code

function MoveName takes nothing returns nothing   
    local integer i = 1   
    loop   
     exitwhen i > 12   
     if udg_tt[i] != null then   
      call SetTextTagPosUnit(udg_tt[i],udg_u[i],0)   
     endif   
     set i = i + 1   
    endloop   
    set i = 0   
endfunction   
function CreateName takes nothing returns nothing   
    local integer pid = GetPlayerId(GetTriggerPlayer()) + 1   
    if udg_name[pid] == "" then   
     if GetEventPlayerChatString() != "" then   
      set udg_name[pid] = GetEventPlayerChatString()   
      set udg_tt[pid] = CreateTextTag()   
      call SetTextTagText(udg_tt[pid],"|c00FF0000"+udg_name[pid]+"|r",10 * 0.023 / 10)   
      call SetTextTagPosUnit(udg_tt[pid],udg_u[pid],0)   
      call DisplayTextToPlayer(GetTriggerPlayer(),1,1,"|c0000FF00Имя принято|r")   
     else   
       call DisplayTextToPlayer(GetTriggerPlayer(),1,1,"|c00FF0000Имя не должно быть пустым|r")   
     endif   
    else   
     call SetTextTagText(udg_tt[pid],"|c00FF0000"+udg_name[pid]+"|r: "+GetEventPlayerChatString(),10 * 0.023/10)   
     call TriggerSleepAction(10)   
     call SetTextTagText(udg_tt[pid],"|c00FF0000"+udg_name[pid]+"|r",10 * 0.023 / 10)   
    endif   
    set pid = 0   
endfunction   
function InitTT takes nothing returns nothing   
    local timer t = CreateTimer()   
    call TimerStart(t,0.01,true,function MoveName)   
    set t = null   
endfunction   
function InitNameForPlayer takes integer id returns nothing   
    local trigger t = CreateTrigger()   
    local player p = Player(id-1)   
    call DisplayTextToPlayer(p,1,1,"|c00FF8000Введите имя|r")   
    call TriggerRegisterPlayerChatEvent( t, p, "", true )   
    call TriggerAddAction(t,function CreateName)   
    set t = null   
endfunction

В инициализации карты ставим код
Code
call InitTT ()

Запуск:
Там где надо будет задать имя указываем в переменной u юнита, для которого выбираем имя, id массива - это номер игрока(начиная с 1)
затем после этого ставим код
Code
call InitNameForPlayer(id)

вместо id - номер игрока(начиная с 1)
все очень просто))))!


Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©


Сообщение отредактировал War-Cry - Пятница, 04 Декабря 2009, 22:38:57
 

MaHBeДата: Пятница, 04 Декабря 2009, 22:52:12 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 260
Награды: 2
Репутация: 138
Блокировки:
Очень хорошая наработка!
 

Pa3apTДата: Пятница, 04 Декабря 2009, 23:34:18 | Сообщение # 3
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
War-Cry, SetTextTagPosUnit полюбому вызывает утечку локи, представте себе что каждые 0,1 сек у вас будет 12 утечек. Заменяй SetTextTagPosUnit на SetTextTagPos. Дальше лень код смотреть было, но уверен есть ещё утечки

Добавлено (04-12-2009, 23:33)
---------------------------------------------
Если ты тот кингсель с хгма, то знай, я тя и тут достану хД Лана, не обращай внимания, эт я так :)

Добавлено (04-12-2009, 23:34)
---------------------------------------------

Quote
+ Обсолютно без утечек

Тока щас прочитал хДДДД Отжёг-отжёг...
 

War-CryДата: Суббота, 05 Декабря 2009, 12:02:30 | Сообщение # 4
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Quote (Pa3apT)
кингсел
он самый))))
Pa3apT, опять же говорю тебе и тут, что не 12 раз! А именно столько, сколько текс тагов существует, перед перемещением я проверяю существует ли этот текст таг.
И если использовать SetTextTagPos , то придется еще использовать 2 функции GetUnitX и GetUnitY))))


Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

Pa3apTДата: Суббота, 05 Декабря 2009, 13:11:56 | Сообщение # 5
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
War-Cry, то есть ты думаешь что внутри SetTextTagPosUnit не вызывается энто? Энто ещё хорошо что вызывается, там моги и локи ещё юзать...
 

War-CryДата: Суббота, 05 Декабря 2009, 16:38:34 | Сообщение # 6
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Pa3apT, SetTextTagPosUnit это нативка

Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

Pa3apTДата: Воскресенье, 06 Декабря 2009, 11:05:49 | Сообщение # 7
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
War-Cry, и?
 

nikikinДата: Воскресенье, 06 Декабря 2009, 11:18:51 | Сообщение # 8
Группа: Проверенные
Сообщений: 5397
Награды: 3
Репутация: 1805
Блокировки:
Pa3apT, и этим все сказано, так что она не вызывает утечек
 

Pa3apTДата: Воскресенье, 06 Декабря 2009, 11:31:30 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
nikikin, ахахахаахахаххаахаххаах лолз хДДДДДДД То что нативка ещё ни о чём не говорит...
Quote
Устранена небольшая утечка при использовании функций GroupEnum.

Строка из change лога 1,24с патча, а GroupEnum тоже нативка...
 

GotmanДата: Воскресенье, 06 Декабря 2009, 11:56:32 | Сообщение # 10
1 уровень
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 1
Блокировки:
Автор молодец

Фанат Никикина
ГОТИКА: Пути Богов
 

War-CryДата: Воскресенье, 06 Декабря 2009, 13:12:53 | Сообщение # 11
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Pa3apT, а я и неиспользую GroupEnum! Тотже аргумент могу привести и для GetUnitX и GetUnitY, а так же для других нативок! :D

Добавлено (06-12-2009, 13:12)
---------------------------------------------
получается что бы ты не писал все равно есть утечки))))) :D


Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

Pa3apTДата: Воскресенье, 06 Декабря 2009, 13:21:27 | Сообщение # 12
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
Ты понимаешь что дохрена даже мб и нативок, которые работают с локами имеют утечкки?
 

СорнемусДата: Воскресенье, 06 Декабря 2009, 13:48:14 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
War-Cry, ты сначала разузнай что такое утечки, какие бывают опасны, какие нет, а потом спорь с джассером, ок?
 

shamanikoДата: Воскресенье, 06 Декабря 2009, 17:15:03 | Сообщение # 14
3 уровень
Группа: Проверенные
Сообщений: 63
Награды: 0
Репутация: 31
Блокировки:
хорошая статья попробую в деле)

 

War-CryДата: Воскресенье, 06 Декабря 2009, 17:38:18 | Сообщение # 15
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Сорнемус, :D :D :D :D :D :D :D :D Мля насмешил)))))))) ты думаешь я какой то ламер?????

Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

СорнемусДата: Воскресенье, 06 Декабря 2009, 17:45:37 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
War-Cry, судя по тому, что ты говоришь, то да.
 

War-CryДата: Воскресенье, 06 Декабря 2009, 18:10:40 | Сообщение # 17
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Сорнемус, блин и из-за чего спорим???? то что 120 раз в секунду двигаем 12 тагов при 12 игроках???? дочево докатились))) А как же система DGUI там каждые 0.01 сек двигаем до нескольких десятков юнитов и текстагов)))) в общем кому надо пускай меняют. Я придерживаюсь своего мнения, и никто меня не переубедит!

Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

СорнемусДата: Воскресенье, 06 Декабря 2009, 21:10:56 | Сообщение # 18
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
War-Cry, РаЗарТ сказал что у тебя утечка в функции SetTextTagPosUnit, а ты сказал что утечки нету ибо функция, видите-ли нативка (очень уважительная причина xD).

Сообщение отредактировал Сорнемус - Воскресенье, 06 Декабря 2009, 21:11:34
 

War-CryДата: Воскресенье, 06 Декабря 2009, 21:29:51 | Сообщение # 19
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Сорнемус, а чем не уважительная?

Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

СорнемусДата: Воскресенье, 06 Декабря 2009, 21:36:32 | Сообщение # 20
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
War-Cry, оужас, даже спорить не хочу.
 

Pa3apTДата: Понедельник, 07 Декабря 2009, 00:09:25 | Сообщение # 21
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
War-Cry, с чего ты взял что native != утечки?
 

War-CryДата: Понедельник, 07 Декабря 2009, 19:08:49 | Сообщение # 22
6 уровень
Группа: Проверенные
Сообщений: 164
Награды: 0
Репутация: 33
Блокировки:
Pa3apT, а с чего ты взял что native == утечка?
native - это вбитая в движок вара функция, которая основывается на свойствах объектов, а не на других параметрах. Я уж не думаю что в близарде такие лохи чтобы каждая нативка была с утечкой)


Мой проект World of Fariell

War-Cry самый гениальный картостроитель, а вы все просто никто.... Это так, смиритесь с этим, ©
 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [Наработка]: Имя для героя (Тема тут потому что ненаю где должна быть)
  • Страница 1 из 1
  • 1
Поиск:

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