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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
[ВАЖНО] Помощь по JASS
SvyagaДата: Вторник, 02 Марта 2010, 15:54:14 | Сообщение # 226
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DiR94)
Почему лучше использовать координаты

Сравни:
Точки - создаётся точка из координат, затем ты её используешь, затем удаляешь точку
Координаты - просто используешь координаты
 

DiR94Дата: Вторник, 02 Марта 2010, 15:54:46 | Сообщение # 227
5 уровень
Группа: Проверенные
Сообщений: 133
Награды: 0
Репутация: 59
Блокировки:
Svyaga, понял :)
 

[DUОS]Дата: Вторник, 02 Марта 2010, 17:14:38 | Сообщение # 228
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
DiR94,
Я всё это тут детальнейшим образом расписал.

Добавлено (02-03-2010, 17:14)
---------------------------------------------

Quote (Svyaga)
"все" значит все

Svyaga,
Ну, "не все", не так выразился :)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

SvyagaДата: Вторник, 02 Марта 2010, 19:29:57 | Сообщение # 229
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (|DUОS|)
Ну, "не все", не так выразился :)

Ок =)
Кста, раз не используют jngp, то какую-либо альтернативу ему? А что именно? =) (считаю это вопросом по теме, так как это относится к jass =) ) Я пользовался только jngp и jass craft'ом, но первое удобнее для меня так как редактирую непосредственно в самой карте.
 

DoctorGesterДата: Вторник, 02 Марта 2010, 21:20:27 | Сообщение # 230
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Сегодня выложу код. Разница в производительности очевидно. На довольно хорошем ноутбуке разница в 20 фпс. Код на сжассе, но никаких фишек не использовано только сокращение кода.
 

Artas_UndeadДата: Вторник, 02 Марта 2010, 22:54:16 | Сообщение # 231
9 уровень
Группа: Проверенные
Сообщений: 1953
Награды: 0
Репутация: 365
Блокировки:
Quote (Ramazan(off))
без JNGP

Какие у нас высокие требования к коду О_о Тааааак слоооожно скачать один архивчик и повесить ярлык на десктоп О_о Даже инсталлить не надо...
Svyaga, я кстати знаю такой типаж людей, как ты. Нет, не оскорбление. Просто ты не зная человека думаешь что он ничего не знает и начинаешь спорить с ним, а если приходит какой-нибудь хороший и известный тут кодер, Драгон93 или Дуос фор экзампл, который говорит какую-нибуть решающюю фразу которая в 90% случаев не в твою пользу, то ты начинаешь увиливать фразами типа "Так я ж так и говорил" и тп. Я не знаю DoctorGester, но уверен на 70%, что он с ХГМ (это значит не просто зареган там, а регулярно там сидит и его относительно хорошо знают) т.е. хороший кодер. Даже если сюда прийдёт Векс (Ты его не знаешь? О_О) ВНЕЗАПНО знающий русский и не называя своей личности будет спорить с тобой, то ты будет с пеной у рта спорить с ним, даже если ты не прав (а это 95% случаев, что какбы намекает на...), но если он скажет и докажет, что он Векс то ты начнёшь всячески прогибаться под него. И не надо это отрицать (хотя зачем я это говорю =) Всё равно же будет спор).
Quote (|DUОS|)
а все джассеры не юзают JNGP и vJass.

А это провокация знаете-ли о_О Я ж могу и нахоливарить) Правильно)) Они юзают ТЕШ и сДжасс))) Шутка, если что))


Сообщение отредактировал Artas_Undead - Вторник, 02 Марта 2010, 22:58:28
 

DoctorGesterДата: Вторник, 02 Марта 2010, 23:52:22 | Сообщение # 232
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Code


private nothing ont(nothing) {
timer tm = GetExpiredTimer()
  integer id = GetHandleId(tm)
  real Slo = LoadReal(ht, id, 0)
  real Ang = LoadReal(ht, id, 1)
  real Str = LoadReal(ht, id, 2)
  unit u = LoadUnitHandle(ht, id, 3)
  real x = GetUnitX(u) + Str * Cos(Ang * 0.01745327)
  real y = GetUnitY(u) + Str * Sin(Ang * 0.01745327)
  group g = CreateGroup()
  real Angle = .0
  unit tmp = null
if Str <= 0 then
call DestroyTimer(tm)
Ender = u
exec(2)
  tm = null
  u = null
call FlushChildHashtable(ht,id)
return
endif
call SaveReal(ht,id,2,Str - Slo)
if x < GetRectMaxX(bj_mapInitialPlayableArea) and x > GetRectMinX(bj_mapInitialPlayableArea) and y < GetRectMaxY(bj_mapInitialPlayableArea) and y > GetRectMinY(bj_mapInitialPlayableArea) then
call SetUnitX(u,x)
call SetUnitY(u,y)
endif
call GroupEnumUnitsInRange(g, GetUnitX(u), GetUnitY(u), 90, null)
set tmp = FirstOfGroup(g)  
loop
exitwhen tmp == null  
if tmp != null and tmp != u and GetWidgetLife(tmp) > 0. and GetUnitFlyHeight(u) + 100. > GetUnitFlyHeight(tmp) and GetUnitFlyHeight(u) - 100. < GetUnitFlyHeight(tmp) and GetUnitTypeId(tmp) != 'msle' then
CollisionSource = u
CollisionUnit = tmp
Angle = 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(u), GetUnitX(tmp) - GetUnitX(u))
exec(5)
tmp = null
call SaveReal(ht,id,2,Str/1.3)
if Angle > 90 and Angle < 180 then
call SaveReal(ht,id,1,Angle - (180 - Angle))
elseif Angle < 90 and Angle > 0 then
call SaveReal(ht,id,1,Angle + (180 - Angle))
elseif Angle < 0 and Angle > -90 then
call SaveReal(ht,id,1,Angle + (180 - Angle))
elseif Angle < -90 and Angle > -180 then
call SaveReal(ht,id,1,Angle - (180 - Angle))
endif
endif
set tmp = null
endloop
call DestroyGroup(g)
set g = null
set tmp = null
set tm = null
set u = null
}

Мой вариант.

Code


private nothing ont(nothing) {
  group g = CreateGroup()
  unit tmp = null
if LoadReal(ht,GetHandleId(GetExpiredTimer()), 2) <= 0 then
DestroyTimer(GetExpiredTimer())
Ender = LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)
exec(2)
FlushChildHashtable(ht,GetHandleId(GetExpiredTimer()))
return
endif
SaveReal(ht,GetHandleId(GetExpiredTimer()),2,LoadReal(ht ,GetHandleId(GetExpiredTimer()), 2) - LoadReal(ht,GetHandleId(GetExpiredTimer()), 0))
if GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Cos(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327) < GetRectMaxX(bj_mapInitialPlayableArea) and GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Cos(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327) > GetRectMinX(bj_mapInitialPlayableArea) and GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Sin(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327) < GetRectMaxY(bj_mapInitialPlayableArea) and GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Sin(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327) > GetRectMinY(bj_mapInitialPlayableArea) then
SetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3),GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Cos(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327))
SetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3),GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + LoadReal(ht,GetHandleId(GetExpiredTimer()),2) * Sin(LoadReal(ht,GetHandleId(GetExpiredTimer()), 1) * 0.01745327))
endif
GroupEnumUnitsInRange(g, GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), 90, null)
tmp = FirstOfGroup(g)  
loop
exitwhen tmp == null  
if tmp != null and tmp != LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3) and GetWidgetLife(tmp) > 0. and GetUnitFlyHeight(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) + 100. > GetUnitFlyHeight(tmp) and GetUnitFlyHeight(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)) - 100. < GetUnitFlyHeight(tmp) and GetUnitTypeId(tmp) != 'msle' then
CollisionSource = LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)
CollisionUnit = tmp
Angle = 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)))
exec(5)
tmp = null
SaveReal(ht,GetHandleId(GetExpiredTimer()),2,LoadReal(ht,GetHandleId(GetExpiredTimer()), 2)/1.3)
if 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) > 90 and 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) < 180 then
SaveReal(ht,GetHandleId(GetExpiredTimer()),1,57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) - (180 - 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)))))
elseif 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) < 90 and 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) > 0 then
SaveReal(ht,GetHandleId(GetExpiredTimer()),1,57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) + (180 - 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)))))
elseif 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) < 0 and 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) > -90 then
SaveReal(ht,GetHandleId(GetExpiredTimer()),1,57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) + (180 - 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)))))
elseif 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) < -90 and 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) > -180 then
SaveReal(ht,GetHandleId(GetExpiredTimer()),1,57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3))) - (180 - 57.2958279 * Atan2(GetUnitY(tmp) - GetUnitY(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)), GetUnitX(tmp) - GetUnitX(LoadUnitHandle(ht,GetHandleId(GetExpiredTimer()), 3)))))
endif
endif
tmp = null
endloop
DestroyGroup(g)
g = null
tmp = null
}

Твой "элегантный" вариант.

Code

public function AddForce takes unit u, real angle, real strength, real slow returns nothing
timer tm = CreateTimer()
call SaveReal(ht, GetHandleId(tm), 0, slow)
call SaveReal(ht, GetHandleId(tm), 1, angle)
call SaveReal(ht, GetHandleId(tm), 2, strength)
call SaveUnitHandle(ht, GetHandleId(tm), 3, u)
call TimerStart(tm, 0.025, true, function ont)
set tm = null
endfunction

Общая функия, которая всю эту красоту запускает. Можешь сравнить.

Artas_Undead, О_О, преклоняюсь, дедукция рулит =)

 

SvyagaДата: Среда, 03 Марта 2010, 08:01:14 | Сообщение # 233
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Artas_Undead)
Просто ты не зная человека думаешь что он ничего не знает и начинаешь спорить с ним, а если приходит какой-нибудь хороший и известный тут кодер, Драгон93 или Дуос фор экзампл, который говорит какую-нибуть решающюю фразу которая в 90% случаев не в твою пользу, то ты начинаешь увиливать фразами типа "Так я ж так и говорил" и тп. Я не знаю DoctorGester, но уверен на 70%, что он с ХГМ (это значит не просто зареган там, а регулярно там сидит и его относительно хорошо знают...............

Ну вообще-то это тут вечно про меня говорят что я ничего не знаю и так далее (нубом называли и т.д., хоть я и был прав) в то время как я лишь утверждаю то, что знаю на 100% (если не знаю на 100% то попросту не спорю :) ). И если я что-то и писал про человека, то ничего оскорбительного и лишь в ответ :) Тем более Драгон93 например говорил в мою пользу)) А Дуос ничего против меня не сказал, просто сказал что должно быть без jngp, а я спросил что тогда используют для удобства вместо него из интереса. Иными словами, было адекватное общение =) И если уж говорить о ХГМ, то как раз там тоже и написано то, что подтверждает мою правоту, я уже скидывал цитату, но скину ещё раз:
Quote (Svyaga)
Код:
local unit u=GetTriggerUnit()
// ---> ---> --->
set u=null

медленне чем

Код:
call GetTriggerUnit()
call GetTriggerUnit()

т.е. если вам надо вызвать какую либо функцию несколько раз, крепко подумайте, стоит ли ее результат заносить в локальную переменную.


Но узнал я это очень давно и на хайве, т.к. на хгм не сижу. Искать и оттуда цитату неохото :)
Да и ты похоже читал как-то криво. В прошлых спорах я оказался прав, как и в этом, доказательство - цитата с ХГМ, так что если и 95%, то прав скорее чем наоборот =)
Да и если бы например был неправ, то прогибаться бы не стал, а просто признал что неправ и извинился (кстати независимо от того, кем этот человек является), что является нормальным поведением :)


Сообщение отредактировал Svyaga - Среда, 03 Марта 2010, 08:19:25
 

MinatoNimikazeДата: Среда, 03 Марта 2010, 15:34:06 | Сообщение # 234
6 уровень
Группа: Проверенные
Сообщений: 189
Награды: 0
Репутация: -34
Блокировки:
всем прива у меня вапрос а что такое джасс обьесните пожалусто подоробно а то я скольк раз не слышал всё понять не могу
 

DragoNДата: Среда, 03 Марта 2010, 15:47:58 | Сообщение # 235
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
MinatoNimikaze, читай статьи

El Psy Congroo
 

SvyagaДата: Среда, 03 Марта 2010, 17:14:30 | Сообщение # 236
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
public function AddForce takes unit u, real angle, real strength, real slow returns nothing
timer tm = CreateTimer()
call SaveReal(ht, GetHandleId™, 0, slow)
call SaveReal(ht, GetHandleId™, 1, angle)
call SaveReal(ht, GetHandleId™, 2, strength)
call SaveUnitHandle(ht, GetHandleId™, 3, u)
call TimerStart(tm, 0.025, true, function ont)
set tm = null
endfunction

Всё равно что:
Code
public function AddForce takes unit u, real angle, real strength, real slow returns nothing
call SaveReal(ht, GetHandleId(tm), 0, slow)
call SaveReal(ht, GetHandleId(tm), 1, angle)
call SaveReal(ht, GetHandleId(tm), 2, strength)
call SaveUnitHandle(ht, GetHandleId(tm), 3, u)
call TimerStart(CreateTimer(), 0.025, true, function ont)
endfunction

Только 2 вариант бысирее


Сообщение отредактировал Svyaga - Среда, 03 Марта 2010, 17:55:55
 

DoctorGesterДата: Среда, 03 Марта 2010, 17:59:43 | Сообщение # 237
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Ты упал? Ты неправ, и сейчас пытаешься выкрутиться. Ты просил код, я тебе его дал. Сейчас ты просто уклоняешься от ответа. Что же ты не попробуешь этот код а?

Добавлено (03-03-2010, 17:59)
---------------------------------------------
Ты лол? Эта функция вызывается по одному разу для каждого объекта, я тебе говорю про ту функцию что я тебе дал изначально, то есть ту что ты просил.

 

SvyagaДата: Среда, 03 Марта 2010, 18:08:41 | Сообщение # 238
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Ну вообще-то я говорил про ненужные локальные, а не про все подряд. Тем более ты ничего не сказал про хэндлы сначала (я не обладаю сверхестесственными способностями :D ). Естесственно каждый раз просчитывать хэндлы медленнее, ибо они просчитываются, повторюсь, КАЖДЫЙ раз (недаром в названии функции есть слово LOAD) и сравнительно долго, в отличие от натив например, ну или какого-нибудь числа (целочисленная или реальная). Но если ты не заметил, то я говорил про нативы, ну и некоторые другие случаи, в том числе и про то, что указал выше (насчёт таймера).

Добавлено (03-03-2010, 18:08)
---------------------------------------------

Quote (DoctorGester)
Ты лол? Эта функция вызывается по одному разу для каждого объекта, я тебе говорю про ту функцию что я тебе дал изначально, то есть ту что ты просил.

О даа, я смех :D


Сообщение отредактировал Svyaga - Среда, 03 Марта 2010, 18:11:54
 

DoctorGesterДата: Среда, 03 Марта 2010, 18:11:32 | Сообщение # 239
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Ты вообще в курсе что такое нативы?
 

SvyagaДата: Среда, 03 Марта 2010, 18:17:51 | Сообщение # 240
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Ты вообще в курсе что такое нативы?

Таак, начал понимать что-ли что неправ, и начинается типа "да ты ничё не понимаешь"? :D Вот объяснение.
Я говорил что использовать локалки в НЕКОТОРЫХ случаях глупо, я привёл пример с нативой (GetTriggerUnit(), цитата с ХГМ), с таймером (1-2 страницы назад, и в твоей системе, в итоге 2 раза), я даже написал несколько примеров когда реально следует применять локалки. (чтобы и к этому не придрался, сразу говорю: НЕ ВСЕ ПРИМЕРЫ, А НЕСКОЛЬКО) (1 стр. назад). А ты сказал про свою систему (при этом умолчал про хэндлы, изза чего я какбы и оказался неправ, но на самом деле я просто не экстрасенс), и теперь уже нечего сказать и начались эти фразы..Ну да, отлично :D
 

DoctorGesterДата: Среда, 03 Марта 2010, 18:40:47 | Сообщение # 241
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Лол опять же. Нативка - родная функцию движка. Можно заметить, у меня в коде ВСЕ на нативках.
Мой код к твоим примерам не относится. Тут же мгновенное действие, следовательно локалки использовать не нужно, так?
Я вообще не понимаю что ты считаешь под хендлами. Если что GetTriggerUnit возвращает хендл, так что ты несешь ересь.
 

SvyagaДата: Среда, 03 Марта 2010, 18:53:41 | Сообщение # 242
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Иными словами ты утверждаешь что я не прав, хотя даже не понимаешь что я пишу?
Quote (DoctorGester)
Нативка - родная функцию движка. Можно заметить, у меня в коде ВСЕ на нативках.

Лол. Читай дальше пост, насчёт хэндлов.
Quote (DoctorGester)
Мой код к твоим примерам не относится.

ОМГ, я же уже указал это:
Quote (Svyaga)
чтобы и к этому не придрался, сразу говорю: НЕ ВСЕ ПРИМЕРЫ, А НЕСКОЛЬКО

Дальше:
Quote (DoctorGester)
Я вообще не понимаю что ты считаешь под хендлами.

Лол. Почитай внимательнее свой код... (LoadUnitHandle к примеру) Естественно занести хэндл в локалку будет правильно, так как быстрее создать локалку со значением чем каждый раз это значение загружать (вот и отличие, из-за которого лучше с локалкой - хэндл каждый раз его загружает, а не просто задаёт) Но про хэндлы я НИЧЕГО не говорил до этого, и не знал что в твоей системе они есть (повторю ещё раз, я не экстрасенс).
Quote (DoctorGester)
Если что GetTriggerUnit возвращает хендл, так что ты несешь ересь.

Интересно где вообще можно увидеть что-то подобное в моём посте о_О


Сообщение отредактировал Svyaga - Среда, 03 Марта 2010, 18:56:43
 

DoctorGesterДата: Среда, 03 Марта 2010, 19:03:19 | Сообщение # 243
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Не тупи, если что это хеш называется. Если не знаешь лучше бы промолчал.
Хм, то есть функция загрузки из хеша не нативка? Интересно...
Ты в курсе что получение юнита или любого другого значения занимает время?
 

SvyagaДата: Среда, 03 Марта 2010, 19:20:53 | Сообщение # 244
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Не тупи, если что это хеш называется. Если не знаешь лучше бы промолчал.

О, ну да, раз я не так назвал, то значит я не прав :D
Quote (DoctorGester)
Хм, то есть функция загрузки из хеша не нативка? Интересно...

КТО ГОВОРИЛ ЧТО ЭТО НЕ НАТИВКА? ТЫ ЧИТАТЬ УМЕЕШЬ? Я написал что использование этой функции много раз медленее, чем занесения её в локалку (в отличие от многих дургих натив, я уже НЕСКОЛЬКО РАЗ указал пример, точнее ОДИН ИЗ ПРИМЕРОВ - GetTriggerUnit(), и я не знаю сколько ещё повторять прежде чем ты всё-таки прочитаешь), но я НИЧЕГО не писал насчёт того что это не натива. Хватит уже играть словами и коверкать их как захочется.
Всё, чем ты и занимаешься сейчас - это как раз-таки коверкаешь то, что я пишу, ибо я пишу одно, а ты это представляешь как совсем другое. И это ВСЁ что ты сделал. А, нет, ещё и пытаешься всё показать так, типа я ничего не знаю, и таким образом выиграть спор... Это называется обычным школьным поведением (не считаю это оскорблением, так как ничего осорбительного не сказал). Ты даже ни разу никакого утверждения не написал, в то время как я и цитаты из туторов выписывал, и показывал твои ошибки (Мысли вслух - с лучшими намерениями кстати...Может изза этого так поступаешь?), и даже подробно описывал что я имею ввиду, настолько, что даже не знающий джасс поймёт что я имею ввиду, а ты придираешься к словам (даже когда я уже предугадываю это и заранее пишу пояснение чтоб придраться не к чему было).

Добавлено (03-03-2010, 19:20)
---------------------------------------------
Да и вообще я не пойму что ты пытаешься доказать, если честно...
В предыдущем споре я был прав, так как в ТЕХ случаях локалки следовало убрать.
В ТВОЕЙ системе локалки нужны, но я писал что не нужны, так как ты умолчал про хеш. Так что правого или неправого нет, так как и сам спор был скорее о моих способностях в джассе (что бралось из воздуха), что смешно.
Вот и весь спор. А если тебе хочется выпендриться или просто выдать всё так, что я не прав, то это уже флуд)
{EDIT}
Ой, виноват. Я не писал что не нужны, я заранее попросил твою систему "в студию" :D

Сообщение отредактировал Svyaga - Среда, 03 Марта 2010, 19:26:42
 

DragoNДата: Четверг, 04 Марта 2010, 17:38:02 | Сообщение # 245
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
вы всё холиварите...

для особо одарённых:
Функции:

Все функции в варкрафт делятся на 2 типа: Native и BJ
Теперь по подробнее:

Native:

Это функции, которые находятся непосредственно в
самом движке вара, и не могут быть изменены
или добавлены стандартными методами. Они
находятся в common.j

BJ:

Это функции, которые являются дополнительными и
могут быть созданы самим джассером,
они состоят из native функции и/или других BJ функций.
Они находятся в blizzard.j

а в варе хэндл - ссылка на игровой объект(на юнита и т.д)

Svyaga, и кстати DoctorGester, в большинстве случаев прав


El Psy Congroo
 

SvyagaДата: Четверг, 04 Марта 2010, 21:25:02 | Сообщение # 246
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Dragon93)
вы всё холиварите...

Да вроде прекратили уже, к счастью)
Quote (Dragon93)
Svyaga, и кстати DoctorGester, в большинстве случаев прав

Например?
Да, он прав, когда говорил что локалки нужны, и я говорю то же самое, но я лишь сказал, что в некоторых случаях их использовать глупо, что также является правдой.
Да, он прав что в его системе нужны локалки, но я бы согласился с ним сразу, если бы он заранее сказал про хеш (да я и согласился сразу как они выдал систему <_< ), а не умолчал. (я повторю уже в неизвестно какой раз, что я не экстрасенс :D )
Да, он прав, когда говорил, чем являются нативы и подобное, но я не отрицал этого, да и не говорил ничего противоположного <_<
Вот это и есть большинство случаев)
Но можно сказать, что это было "в перерывах" между "ты вообще ничего не понимаешь", придиранием к словам и многим подобным.
Из придираний я 1 выпишу для примера, которое больше всех улыбнуло, когда я предугадал это и сразу написал ответ, но он всё-равно написал это:
Quote (Svyaga)
я даже написал несколько примеров когда реально следует применять локалки. (чтобы и к этому не придрался, сразу говорю: НЕ ВСЕ ПРИМЕРЫ, А НЕСКОЛЬКО)

Quote (DoctorGester)
Мой код к твоим примерам не относится. Тут же мгновенное действие, следовательно локалки использовать не нужно, так?


Сообщение отредактировал Svyaga - Четверг, 04 Марта 2010, 21:36:27
 

DragoNДата: Четверг, 04 Марта 2010, 23:10:42 | Сообщение # 247
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Svyaga, мм..и что ты хочешь этим доказать?
свою крутость или что?0о


El Psy Congroo
 

SvyagaДата: Четверг, 04 Марта 2010, 23:25:18 | Сообщение # 248
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Ну вообще-то я хотел всего-лишь помочь (это всё-таки раздел помощи по JASS), поэтому и выложил совет насчёт локалок (впоследствии чего начался первый спор), а на меня наехал он насчёт его этой системы (в том смысле наехал, что начал из меня делать ничего не знающего и т.д., хотя мы говорили о разных вещах, и в том, о чём я говорил, я был прав, а то, что он говорил, я и не отрицал, поэтому выше и написал что неправых нет), ну и понеслось.
Да и спор я пытался поскорее закончить наоборот.
Так что это не я пытался что-либо доказать, а он как раз-таки (ну я выше описал намерения и не только в этом посте, хоть и до сих пор их не пойму) =)
И после того как я закончил этот спор наконец-таки ты ещё говоришь что это я что-то там пытался доказать... Как-будто я это называл других нубом,посмещищем(из 1 спора), и я писал типа "ты лол?" и придирался к словам (2 спор) <_< Тем более, что то, что я хотел доказать, я доказал ещё в первом споре, а точнее то, что в некоторых случаях лучше не использовать локалки, и хотел доказать чтоб код того, с кем я спорил, был лучше (ну а какие другие намерения ещё могут быть, я просто не пойму :D )
Давайте уже забудем плохое, и начнём наконец помогать по джассу гы :D
 

DoctorGesterДата: Пятница, 05 Марта 2010, 00:54:14 | Сообщение # 249
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Svyaga, крут, безусловно :D
Все, закончили. Ведь все началось с того что ты пытался мне доказать что нельзя разделить типы урона, я тебе систему дал, на этом и порешили. На все последующие притязания отвечать не считаю нужным.
 

SvyagaДата: Пятница, 05 Марта 2010, 07:11:20 | Сообщение # 250
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Все, закончили. Ведь все началось с того что ты пытался мне доказать что нельзя разделить типы урона, я тебе систему дал, на этом и порешили. На все последующие притязания отвечать не считаю нужным.

Не, я говорил что есть способ сделать тот спелл и без дамми, но я не знаю как это можно сделать =)
Всё, мир :D


Сообщение отредактировал Svyaga - Пятница, 05 Марта 2010, 15:05:11
 

Поиск:

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