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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
[ВАЖНО] Общалка кодеров
YRcompanyДата: Вторник, 13 Ноября 2012, 14:45:52 | Сообщение # 51
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Где скачать Jass дайте ссылкуу плиз

«Во тьме ночной, при свете дня,
Злу не укрыться от меня.
Те, злые мысли в ком царят
Страшитесь света Фонаря»!
 

Ty3uKДата: Вторник, 13 Ноября 2012, 15:02:34 | Сообщение # 52
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Что есть в Вашем понимании JASS?

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


Сообщение отредактировал Ty3uK - Вторник, 13 Ноября 2012, 15:02:56
 

tRu^SДата: Вторник, 13 Ноября 2012, 17:32:44 | Сообщение # 53
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Ty3uK, JNGP скорее всего, я непонимаю куда рвутся новички незнающие гуи.

 

Ty3uKДата: Вторник, 13 Ноября 2012, 17:50:47 | Сообщение # 54
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
учить JASS можно и не зная гуи

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

DEMON_CHETS_V2Дата: Вторник, 13 Ноября 2012, 18:27:09 | Сообщение # 55
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
С гуи можно быстрее понять алгоритм работы, ведь YRcompany, скорее всего, даже не способен сделать простой гуишный триггер.
 

Ty3uKДата: Вторник, 13 Ноября 2012, 18:48:04 | Сообщение # 56
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
нет, не правда

Добавлено (13 Ноября 2012, 18:48:04)
---------------------------------------------
гуи еще сильнее ломает "алгоритмическое" восприятие


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

SmartarosДата: Вторник, 13 Ноября 2012, 20:42:23 | Сообщение # 57
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
если бы не гуи, то рядовой человек бы не въехал в суть слова триггер, тем более с отсутствием наглядности у джасса для него по сравнению с гуи. Это тоже самое что учить английский не полным курсом, а с помощью разговорника, все фразы самые нужные, ничего лишнего, но сначала их не понять т.к. они ни чем не обьясняются кроме как переводом, т.е сначала ты больше заучиваешь, чем запоминаешь, но зато так быстрее, но взависимости от возможности понимания
 

Ty3uKДата: Среда, 14 Ноября 2012, 09:07:44 | Сообщение # 58
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
скажи это Нику lol

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

SmartarosДата: Среда, 14 Ноября 2012, 10:47:47 | Сообщение # 59
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
Ty3uK,
Quote (Smartaros)
но
взависимости от возможности
понимания
 

Ty3uKДата: Среда, 14 Ноября 2012, 11:16:48 | Сообщение # 60
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
ну ясное дело, что не шаря вообще в программировании так начать не получится

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

SmartarosДата: Среда, 14 Ноября 2012, 11:40:21 | Сообщение # 61
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
я не про это, возможность понимания это не знание, каждый человек по своему предрасположен, кто то кроме как тоскать тяжести больше ни на что не способен
 

tRu^SДата: Среда, 14 Ноября 2012, 13:33:18 | Сообщение # 62
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Code
scope Fire initializer Init {

globals
unit DUMMY
unit CASTER
lightning LIGHT
int TIMES = 8
endglobals

private bool SpellId(){ return GetSpellAbilityId() == 'A000' }
private bool SpellIdEffectOne(){ return GetSpellAbilityId() == 'A001' }
private bool SpellIdEffectTwo(){ return GetSpellAbilityId() == 'A002' }

private void Time() {
timer t = GetExpiredTimer();
if TIMES >= 1 {
TIMES--
TT("|cFFFF9403"+I2S(TIMES),DUMMY);
} else {
PauseTimer(t);DestroyTimer(t);
SetUnitVertexColor(CASTER,255,255,255,255);PauseUnit(CASTER,false);
UnitRemoveAbility(CASTER,'A001');UnitRemoveAbility(CASTER,'A002');
RemoveUnit(DUMMY);DestroyLightning(LIGHT);CASTER = null;DUMMY = null;LIGHT = null;
}
}

private void Up() {
timer t = GetExpiredTimer();group g = LoadGroupHandle(Hash,GetHandleId(t),0);
real xu = GetUnitX(CASTER),yu = GetUnitY(CASTER);
real xd = GetUnitX(DUMMY),yd = GetUnitY(DUMMY);
real angle = Atan2(yd-yu,xd-xu);
if DistanceBetweenCoords(xu,yu,xd,yd) > 35 {
SetUnitAnimationByIndex(CASTER,6);
SetUnitX(CASTER,xu+30.*Cos(angle));SetUnitY(CASTER,yu+30.*Sin(angle));SetUnitFacing(CASTER,angle*57.295827);
for(unit e;UnitsInRange(GetUnitX(CASTER),GetUnitY(CASTER),180.)use TG) {
if IsUnitEnemy(e,GetOwningPlayer(CASTER)) && IsUnitInGroup(e,g) == FALSE && IsUnitType(e,UNIT_TYPE_STRUCTURE)==false && GetWidgetLife(e)>.405 && !IsUnitType(e, UNIT_TYPE_MAGIC_IMMUNE) {
GroupAddUnit(g,e);DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Incinerate\\FireLordDeathExplode.mdl",e,"origin"));
UnitDamageTarget(CASTER,e,100+50*GetUnitAbilityLevel(CASTER,'A000')+.75+.25*GetUnitAbilityLevel(CASTER,'A000')/2,true,false,null,null,null);
}}
DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnBirthMissile.mdl",GetUnitX(CASTER),GetUnitY(CASTER)));
} else {
DestroyEffect(LoadEffectHandle(Hash,GetHandleId(t),1));DestroyEffect(LoadEffectHandle(Hash,GetHandleId(t),2));
PauseUnit(CASTER,false);SetUnitTimeScale(CASTER,1.);
PauseTimer(t);DestroyTimer(t);FlushChildHashtable(Hash,GetHandleId(t));RemoveUnit(DUMMY);DestroyLightning(LIGHT);
GroupClear(g);DestroyGroup(g);SetUnitVertexColor(CASTER,255,255,255,255);CASTER = null;DUMMY = null;LIGHT = null;
}
}

private void Back() {
timer t = GetExpiredTimer();group g = LoadGroupHandle(Hash,GetHandleId(t),0);
real xu = GetUnitX(CASTER),yu = GetUnitY(CASTER);
real xd = GetUnitX(DUMMY),yd = GetUnitY(DUMMY);
real angle = Atan2(yu-yd,xu-xd);
if DistanceBetweenCoords(xd,yd,xu,yu) > 35 {
SetUnitX(DUMMY,xd+30.*Cos(angle));SetUnitY(DUMMY,yd+30.*Sin(angle));
for(unit e;UnitsInRange(GetUnitX(DUMMY),GetUnitY(DUMMY),180.)use TG) {
if IsUnitEnemy(e,GetOwningPlayer(CASTER)) && IsUnitInGroup(e,g) == FALSE && IsUnitType(e,UNIT_TYPE_STRUCTURE)==false && GetWidgetLife(e)>.405 && !IsUnitType(e, UNIT_TYPE_MAGIC_IMMUNE) {
GroupAddUnit(g,e);DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Incinerate\\FireLordDeathExplode.mdl",e,"origin"));
UnitDamageTarget(CASTER,e,100+50*GetUnitAbilityLevel(CASTER,'A000')+.75+.25*GetUnitAbilityLevel(CASTER,'A000')/2,true,false,null,null,null);
}}
DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnBirthMissile.mdl",GetUnitX(DUMMY),GetUnitY(DUMMY)));
} else {
PauseTimer(t);DestroyTimer(t);FlushChildHashtable(Hash,GetHandleId(t));RemoveUnit(DUMMY);DestroyLightning(LIGHT);
GroupClear(g);DestroyGroup(g);CASTER = null;DUMMY = null;LIGHT = null;
}
}

private void MoveLighting() {  
timer t = GetExpiredTimer();
location lc = Location(GetUnitX(CASTER),GetUnitY(CASTER));
location ld = Location(GetUnitX(DUMMY),GetUnitY(DUMMY));
if TIMES >= 1 and GetWidgetLife(DUMMY) > .405 and DistanceBetweenPoints(lc,ld) <= 1000. {
MoveLightning(LIGHT,true,GetUnitX(CASTER),GetUnitY(CASTER),GetUnitX(DUMMY),GetUnitY(DUMMY));
SetUnitFacing(DUMMY,Atan2(GetUnitY(DUMMY)-GetUnitY(CASTER),GetUnitX(DUMMY)-GetUnitX(CASTER))*57.295827);
SetLightningColor(LIGHT,1.,1.,1.,1.00-DistanceBetweenPoints(lc,ld) / 1000.);
} else {
DestroyTimer(LoadTimerHandle(Hash,GetHandleId(t),0));PauseTimer(t);DestroyTimer(t);FlushChildHashtable(Hash,GetHandleId(t));
SetUnitVertexColor(CASTER,255,255,255,255);PauseUnit(CASTER,false);SetUnitTimeScale(CASTER,1.);
UnitRemoveAbility(CASTER,'A001');UnitRemoveAbility(CASTER,'A002');
RemoveUnit(DUMMY);DestroyLightning(LIGHT);
CASTER = null;DUMMY = null;LIGHT = null;TIMES = 0;
}
RemoveLocation(lc);RemoveLocation(ld);lc = null;ld = null;
}

private void DummyMovePointCast() {
timer t = GetExpiredTimer();int id = GetHandleId(t);
unit u = LoadUnitHandle(Hash,id,0),d = LoadUnitHandle(Hash,id,1);group g = LoadGroupHandle(Hash,id,2);
lightning l = LoadLightningHandle(Hash,id,3);
real xd = GetUnitX(d),yd = GetUnitY(d);
real xc = LoadReal(Hash,id,4),yc = LoadReal(Hash,id,5);
real angle = Atan2(yc-yd,xc-xd);
if DistanceBetweenCoords(xd,yd,xc,yc) > 35 {
SetUnitX(d,xd+30.*Cos(angle));SetUnitY(d,yd+30.*Sin(angle));
MoveLightning(l,true,GetUnitX(u),GetUnitY(u),GetUnitX(d),GetUnitY(d));
DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnBirthMissile.mdl",GetUnitX(d),GetUnitY(d)));
for(unit e;UnitsInRange(GetUnitX(d),GetUnitY(d),180.)use TG) {
if IsUnitEnemy(e,GetOwningPlayer(u)) && IsUnitInGroup(e,g) == FALSE && IsUnitType(e,UNIT_TYPE_STRUCTURE)==false && GetWidgetLife(e)>.405 && !IsUnitType(e, UNIT_TYPE_MAGIC_IMMUNE) {
GroupAddUnit(g,e);
UnitDamageTarget(u,e,100+50*GetUnitAbilityLevel(u,'A000')+.75+.25*GetUnitAbilityLevel(u,'A000'),true,false,null,null,null);
DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Incinerate\\FireLordDeathExplode.mdl",e,"origin"));
}}
}else{
UnitAddAbility(u,'A001');UnitAddAbility(u,'A002');
LIGHT = l;DUMMY = d;CASTER = u;
PauseTimer(t);DestroyTimer(t);GroupClear(g);DestroyGroup(g);FlushChildHashtable(Hash,id);timer to = CreateTimer();timer ti = CreateTimer();
TimerStart(to,.04,true,function MoveLighting);TimerStart(ti,1.,true,function Time);SaveTimerHandle(Hash,GetHandleId(to),0,ti);
}  
}

private void Trig_Fire_Actions() {
if SpellId() {
TIMES = 8
timer t = CreateTimer();int id = GetHandleId(t);
unit u = GetTriggerUnit(),d = CreateUnit(GetOwningPlayer(u),'u000',GetUnitX(u),GetUnitY(u),0.);
SaveUnitHandle(Hash,id,0,u);SaveUnitHandle(Hash,id,1,d);SaveGroupHandle(Hash,id,2,CreateGroup());
SaveReal(Hash,id,4,GetSpellTargetX());SaveReal(Hash,id,5,GetSpellTargetY())
SaveLightningHandle(Hash,id,3,AddLightning("LEAS",true,GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()),GetUnitX(LoadUnitHandle(Hash,id ,1)),GetUnitY(LoadUnitHandle(Hash,id,1))));
TimerStart(t,.04,true,function DummyMovePointCast);
}
if SpellIdEffectOne() {
UnitRemoveAbility(GetTriggerUnit(),'A001');UnitRemoveAbility(GetTriggerUnit(),'A002');
timer t1 = CreateTimer();TimerStart(t1,.04,true,function Back);SaveGroupHandle(Hash,GetHandleId(t1),0,CreateGroup());
}
if SpellIdEffectTwo() {
SetUnitTimeScale(GetTriggerUnit(),5.);SetUnitVertexColor(CASTER,255,100,100,100);PauseUnit(CASTER,true);
UnitRemoveAbility(GetTriggerUnit(),'A001');UnitRemoveAbility(GetTriggerUnit(),'A002');
timer t2 = CreateTimer();TimerStart(t2,.04,true,function Up);SaveGroupHandle(Hash,GetHandleId(t2),0,CreateGroup());
SaveEffectHandle(Hash,GetHandleId(t2),1,AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",CASTER,"weapon"));
SaveEffectHandle(Hash,GetHandleId(t2),2,AddSpecialEffectTarget("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",CASTER,"chest"));
}
}

private void Init() {
     set gg_trg_Fire = CreateTrigger()
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Fire, EVENT_PLAYER_UNIT_SPELL_EFFECT )
     TriggerAddAction( gg_trg_Fire, function Trig_Fire_Actions )
}
}

Много феилов?


 

SirNikolasДата: Среда, 14 Ноября 2012, 16:19:02 | Сообщение # 63
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Smartaros)
Это то же самое, что учить английский не полным курсом, а с помощью разговорника - все фразы самые нужные, ничего лишнего, но сначала их не понять, т.к. они ничем не объясняются, кроме как переводом, т.е сначала ты больше заучиваешь, чем запоминаешь, но зато так быстрее, но взависимости от возможности понимания
Если ты "выучил" английский с помощью разговорника, ты не знаешь английский. Ты помнишь пару сотен фраз, но ты не способен составить предложение самостоятельно (я не говорю о простой замене одного слова на другое). Во всем нужно быть последовательным, в том числе и в изучении языков.
Если ты хочешь выучить JASS (C++/C#/Python/Delphi, подчеркнуть нужное), ты выучишь его, с начала и до конца. Если же ты хочешь только заставить что-либо работать, тебе хватит и GUI, но тогда в душе ты не программист.

Сам не могу судить, т. к. начинал с GUI.


 

Ty3uKДата: Понедельник, 19 Ноября 2012, 16:07:54 | Сообщение # 64
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Снова взялся за JASP, понемножку привожу код к ООПшному стилю. Написал класс для карты. Ник, посмотри, все ли я правильно сделал? Интересует, правильно ли я конструктор/деструктор написал?
Code
public class Map
{
     public readonly int MPQ;
     public string[] script;
     public readonly string PATH;

     public Map(string mapPath, string aName)
     {
         PATH = mapPath;
         MPQ = SFMpq.MpqOpenArchiveForUpdate(aName, SFMpq.MOAU_OPEN_EXISTING + SFMpq.MOAU_MAINTAIN_LISTFILE, 0);
         SFMpq.MpqExtractFileTo(MPQ, "war3map.j", PATH + "\\war3map.j");
         script = File.ReadAllLines(PATH + "\\war3map.j");
     }

     ~Map()
     {
         SFMpq.MpqAddFileToArchiveEx(MPQ, PATH + "\\war3map_parsed.j", "war3map.j", SFMpq.MAFA_REPLACE_EXISTING + SFMpq.MAFA_COMPRESS, SFMpq.MAFA_COMPRESS_DEFLATE, SFMpq.Z_BEST_COMPRESSION);
         SFMpq.MpqCompactArchive(MPQ);
         SFMpq.MpqCloseUpdatedArchive(MPQ, 0);
     }
}


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


Сообщение отредактировал Ty3uK - Понедельник, 19 Ноября 2012, 17:00:58
 

SirNikolasДата: Понедельник, 19 Ноября 2012, 16:54:37 | Сообщение # 65
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
SFMpq.MpqExtractFileTo(MPQ, "war3map.j", PATH + "\\war3map.j");
script = File.ReadAllLines(PATH + "\\war3map.j");
PATH = mapPath;
Может, третью строку в начало?)
И да, не знаю, как в C#, но в C++ деструктор должен быть публичным. Иначе это бред получится.

Теперь по поводу логики. Как я понял, ты считаешь, что код может быть только внутри архива и только в war3map.j. Я бы не был столь уверен. Пусть лучше Map будет включать класс(ы), отвечающий за код.


 

Ty3uKДата: Понедельник, 19 Ноября 2012, 16:56:23 | Сообщение # 66
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, упс, и правда D:
Ну, пока что я не нацеливаюсь на работу без карты, но да, ты прав. :)

Добавлено (19 Ноября 2012, 16:56:23)
---------------------------------------------
И на публичный деструктор он ругается - нужно писать без public :)


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

AloofДата: Понедельник, 19 Ноября 2012, 17:52:07 | Сообщение # 67
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 14
Блокировки:
Code
SFMpq.MOAU_OPEN_EXISTING + SFMpq.MOAU_MAINTAIN_LISTFILE

Code
SFMpq.MAFA_REPLACE_EXISTING + SFMpq.MAFA_COMPRESS

Флаги принято объединять с помощью побитового "|".
 

Ty3uKДата: Понедельник, 19 Ноября 2012, 18:39:05 | Сообщение # 68
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Aloof, эти флаги - обычные уинты. Их даже в ассемблере принято объединять с помощью плюсов.
А вообще можно и так, и так. Но первая запись очевиднее и "стара как мир" trollface


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


Сообщение отредактировал Ty3uK - Понедельник, 19 Ноября 2012, 18:40:02
 

SirNikolasДата: Понедельник, 19 Ноября 2012, 18:54:57 | Сообщение # 69
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Не знаю, я всегда видел, что объединяют через |. Но если программист, писавший их, не дурак, и флаги не перекрываются, то можно и через +.
Quote (Ty3uK)
Но первая запись очевиднее
Не сказал бы.


 

AloofДата: Понедельник, 19 Ноября 2012, 19:10:49 | Сообщение # 70
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 14
Блокировки:
Quote (Ty3uK)
Их даже в ассемблере принято объединять с помощью плюсов.
А вообще можно и так, и так. Но первая запись очевиднее и "стара как мир"

Нет ни одной причины для объединения через плюс. Если ты где-то видел такую запись, то это просто bad practice.
 

Ty3uKДата: Понедельник, 19 Ноября 2012, 19:13:29 | Сообщение # 71
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Aloof, есть. В ассемблере не объединишь через | насколько я помню

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

AloofДата: Понедельник, 19 Ноября 2012, 19:16:09 | Сообщение # 72
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 14
Блокировки:
Quote (Ty3uK)
loof, есть. В ассемблере не объединишь через | насколько я помню

Да господи,
Code
OR EAX, EBX

Добавлено (19 Ноября 2012, 19:16:09)
---------------------------------------------
Просто фишка в том, что если будет перекрытие битов (в обоих операндах на каком-то месте будет и там и там "1"), то ты получишь неожиданный результат.

 

Ty3uKДата: Понедельник, 19 Ноября 2012, 19:16:59 | Сообщение # 73
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Aloof, я про передачу параметров в функции. К чему мне константы в регистры помещать, если я их могу через + сразу в функцию передать?

Добавлено (19 Ноября 2012, 19:16:59)
---------------------------------------------

Quote (Aloof)
Просто фишка в том, что если будет перекрытие битов (в обоих операндах на каком-то месте будет и там и там "1"), то ты получишь неожиданный результат.

Думаю Шарп мне такого не позволит сделать trollface


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

AloofДата: Понедельник, 19 Ноября 2012, 19:19:55 | Сообщение # 74
5 уровень
Группа: Проверенные
Сообщений: 107
Награды: 0
Репутация: 14
Блокировки:
Quote (Ty3uK)
Aloof, я про передачу параметров в функции. К чему мне константы в регистры помещать, если я их могу через + сразу в функцию передать?

Если уж ты упомянул ассемблер, то это один из способов передачи аргументов в ассемблере --- fastcall называется. Естественно, ты там не можешь писать через "|" тупо без каких-либо макросов --- это не тот уровень.

Quote (Ty3uK)
Думаю Шарп мне такого не позволит сделат

Причем тут шарп? Это не зависит от языка.
 

Ty3uKДата: Понедельник, 19 Ноября 2012, 19:21:27 | Сообщение # 75
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Aloof, ладно, я вижу, что не шарю, не вижу смысла дальше препираться :)

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

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Общалка кодеров (Обмен опытом | Обсуждение проблем)
Поиск:

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