14

» Помойка Макебы / Варкрафт 3 котинк 2023

я на второй день уже устал в этом копаться, как вы вообще можете карты для варкрафта на постоянке делать
ай кнов ват фил бро
poisoNDealer:
Короч потестил. Ну так, жить можно
так что? WASD нибудид? хотя по предпоследнему видосу вроде WASD, играбельно
тока яркие красные мишени на земле - чёт слишком легко
14

» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)

Итог
ну а Loop0 я всё-таки тоже добил - и получилось максимум 23000 операций i+1
при 24000 уже ничего не выведет на экран после цикла
т.е. loop лучше вообще нигде не использовать (больше сотни итераций)
function Loop0_test takes nothing returns nothing
	local integer i=0
	call BJDebugMsg("--S--")
	loop
		set i=i+1
		exitwhen i == 24000 //23000 max
	endloop
	call BJDebugMsg("--E--")
	call BJDebugMsg("i="+I2S(i))
endfunction
14

» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)

Вышла новая версия!
Прокрутить к ресурсу
в статью добавлен пункт "производительность"
в карту добавлена превьюшка и wts, а также Loop13 замедлен с 0.001 до 0.005
14

» WarCraft 3 / Синхронизация данных

а еще есть такие "нативки":
которые позволяют сихрить в 5 строк все координаты
native JNSetSyncDelay takes integer delay returns nothing
native JNGetSyncDelay takes nothing returns integer
native DzGetTriggerSyncPlayer takes nothing returns player
native DzGetTriggerSyncData takes nothing returns string
native DzSyncData takes string prefix,string data returns nothing
native DzTriggerRegisterSyncData takes trigger trig,string prefix,boolean server returns nothing



пример кода, приводящего к потере контроля
а где пример кода по синхронизации чужих кликов мышки или положения камеры?
или там опять на 2000 строк?
14

» IrInA Host Bot / Обновление коннектора (анонс)

У UjApi есть нативки, которые позволяют с бота толкать данные в карту. Но есть один подвох - нужен фейкплеер
а у JNLoader фейкплеер не требуется:
\JN_Loader_0.25\JassNative-0.25 source\JNWEImport\JNServer.j
\JN_Loader_0.25\JassNative-0.25 source\JNWEImport\tesh_keywords.db
native JNObjectCharacterServerConnectCheck takes nothing returns boolean
native JNObjectCharacterSave takes string MapId,string UserId,string SecretKey,string Character returns string
native JNPublicMapServerLog takes string MapId,string SecretKey,string Version,string Loging returns string
native JNSetSaveCode takes string MapId, string UserId, string SecretKey, string Character, string Code returns string
native JNGetLoadCode takes string MapId, string UserId, string SecretKey, string Character returns string
можно не только гонять туда сюда данные, но и есть команда публичного лога , который отображается на странице карты на сайте
полный лист серверных нативок
JNServer.j
library JNServer
static if not REFORGED_MODE then
native JNUse takes nothing returns boolean
native JNServerPluginVersion takes nothing returns integer
native JNCheckNameHack takes string UserId returns boolean
native JNOpenBrowser string Address returns nothing
native JNServerTime takes string Format returns string
native JNServerUnixTime takes nothing returns integer
native JNPushReg takes string MapId returns nothing
native JNGetPushMessage takes nothing returns string
native JNSetLog takes string MapId, string UserId, string SecretKey, string Character, string Version, string Loging returns string
native JNSetLogUseType takes string MapId, string UserId, string SecretKey, string Character, string Version, string Loging, string LogType returns string
native JNMapServerLog takes string MapId, string SecretKey, string Version, string Loging returns string
native JNMapServerLogUseType takes MapId, string SecretKey, string Version, string Loging, string LogType returns string
native JNReplayReg takes string MapId, string SecretKey, string UserId, string Character, string Loging returns nothing
native JNScreenShotReg string MapId, string SecretKey, string UserId, string Character, string Loging returns boolean
native JNPublicScreenShotReg takes string MapId, string SecretKey, string UserId, string Character, string Tag, string Loging returns boolean
native JNUseUserRoleItemInfo takes string MapId, string SecretKey, string UserId, string ItemName returns string
native JNSetSaveCode takes string MapId, string UserId, string SecretKey, string Character, string Code returns string
native JNGetLoadCode takes string MapId, string UserId, string SecretKey, string Character returns string
native JNRPGGetCharacterCount takes string MapId, string UserId, string SecretKey returns integer
native JNRPGGetCharacterNameByIndex takes string UserId, string Index returns string
native JNObjectCharacterServerConnectCheck takes nothing returns boolean
native JNObjectCharacterInit takes string MapId, string UserId, string SecretKey, string Character returns integer
native JNObjectCharacterSave takes string MapId, string UserId, string SecretKey, string Character returns string
native JNObjectCharacterSetInt takes string UserId, string Field, integer Value returns nothing
native JNObjectCharacterGetInt takes string UserId, string Field returns integer
native JNObjectCharacterSetReal takes string UserId, string Field, real Value returns nothing
native JNObjectCharacterGetReal takes string UserId, string Field returns real
native JNObjectCharacterSetString takes string UserId, string Field, string Value returns nothing
native JNObjectCharacterGetString takes string UserId, string Field returns string
native JNObjectCharacterSetBoolean takes string UserId, string Field, boolean Value returns nothing
native JNObjectCharacterGetBoolean takes string UserId, string Field returns boolean
native JNObjectCharacterRemoveField takes string Userid, string Field returns nothing
native JNObjectCharacterClearField takes string UserId returns nothing
native JNObjectCharacterResetCharacter takes string UserId returns nothing
native JNObjectScoreInit takes MapId, string SecretKey, string UserId, string Character returns integer
native JNObjectScoreGet takes string UserId, string Field returns integer
native JNObjectScoreAdd takes string UserId, string Field, integer Value returns nothing
native JNObjectScoreSet takes string UserId, string Field, integer Value returns nothing
native JNObjectScoreSave takes string MapId, string SecretKey, string UserId, string Character returns string
native JNObjectCharacterUseEndGameSave takes string MapId, string UserId, string SecretKey, string Character returns nothing
native JNObjectCharacterPopGlobalMessage takes nothing returns string
native JNObjectCharacterSendGlobalMessage takes string message returns nothing
native JNObjectCharacterGetCharacterCount takes string MapId, string UserId, string SecretKey returns integer
native JNObjectCharacterGetCharacterNameByIndex takes string UserId, integer Index returns string
native JNObjectUserInit takes string MapId, string Userid, string SecretKey, string Character returns integer
native JNObjectUserSave takes string MapId, string UserId, string SecretKey, string Character returns string
native JNObjectUserSetInt takes string UserId, string Field, integer Value returns nothing
native JNObjectUserGetInt takes string UserId, string Field returns integer
native JNObjectUserSetReal takes string UserId, string Field, real Value returns nothing
native JNObjectUserGetReal takes string UserId, string Field returns real
native JNObjectUserSetString takes string UserId, string Field, string Value returns nothing
native JNObjectUserGetString takes string UserId, string Field returns string
native JNObjectUserSetBoolean takes string UserId, string Field, boolean Value returns nothing
native JNObjectUserGetBoolean takes string UserId, string Field returns boolean
native JNObjectUserRemoveField takes string UserId, string Field returns nothing
native JNObjectUserClearField takes string UserId returns nothing
native JNObjectUserResetCharacter takes string UserId returns nothing
native JNObjectUserUseEndGameSave takes string MapId, string UserId, string SecretKey, string Character returns nothing
native JNObjectMapInit takes string MapId, string SecretKey returns integer
native JNObjectMapGetInt takes string Field returns integer
native JNObjectMapGetReal takes string Field returns real
native JNObjectMapGetString takes string Field returns string
native JNObjectMapGetBoolean takes string Field returns boolean
endif
endlibrary
14

» Блог им. Steal nerves / Конвертация чисел

не стал вписывать кучу других систем, найденных мной. Ведь они похожи. Но я все разные системы скинул в одну карту. Может быть одна из них вам понравится. ВОТ ПРИМЕР КАРТЫ
а я вот впишу за тебя из твоей карты:
globals
    // User-defined
string array udg_sOutput
integer array udg_RAWINT
string array udg_RAWSTR

    // Generated
trigger gg_trg_R= null
trigger gg_trg_S= null
trigger gg_trg_AA= null
trigger gg_trg_BB= null
trigger gg_trg_TEST= null
trigger gg_trg_integer= null
trigger gg_trg_int_string= null
trigger gg_trg_string= null
trigger gg_trg_____________________________________001= null
trigger gg_trg_Int= null
trigger gg_trg_test= null
trigger gg_trg_____________________________________001_____________________u= null
trigger gg_trg_NNN= null
integer array Pow2x
integer array Pow8x
integer array Pow16x
integer array Pow256x
string array CharMap2x16
string array CharMap2x8
string array CharMap16
string array CharMap256
integer array CharInx16
integer array CharInx256


//JASSHelper struct globals:

endglobals


//===========================================================================
// 
// Еще одна карта
// 
//   Warcraft III map script
//   Generated by the Warcraft III World Editor
//   Date: Tue Jun 12 04:56:40 2018
//   Map Author: Неизвестно
// 
//===========================================================================

//***************************************************************************
//*
//*  Global Variables
//*
//***************************************************************************


function InitGlobals takes nothing returns nothing
    local integer i= 0
    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_sOutput[i]=""
        set i=i + 1
    endloop

    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_RAWINT[i]=0
        set i=i + 1
    endloop

    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_RAWSTR[i]=""
        set i=i + 1
    endloop

endfunction

//***************************************************************************
//*
//*  Custom Script Code
//*
//***************************************************************************
//TESH.scrollpos=0
//TESH.alwaysfold=0

//***************************************************************************
//*
//*  Triggers
//*
//***************************************************************************

//===========================================================================
// Trigger: R
//
// Перевод символа в 256-число = Str2Int256
// Перевод символа в 16-число = Str2Int16
// Перевод 256-числа в 10-число = ASCII2DEC
// Перевод 10-числа в 256-число = DEC2ASCII
// Перевод 16-числа в 10-число = HEX2DEC
// Перевод 10-числа в 16-число = DEC2HEX
// Перевод 10-числа в двоичное = DEC2Binary
// Перевод двоичного числа в 10-чное = Binary2DEC
// Перевод двоичного числа в 8-ричное = Binary2Octal
// Перевод двоичного числа в 16-ричное = Binary2Hex
//===========================================================================
//TESH.scrollpos=180
//TESH.alwaysfold=0


//function S2Ix takes string s returns integer
    //return GetHandleId(s) // changed, 20.03.2012
    //return StringHash(s) // changed by ScorpioT1000, 03.04.2012
    //return s
    //return 0
//endfunction




function Str2Int256 takes string s returns integer
    local integer i= 32
    local integer n=- 1
    
    loop
        if s == CharMap256[i] then
            set n=i
        endif
        exitwhen ( i > 126 or s == CharMap256[i] )
        set i=i + 1
    endloop
    
    return n //если такого символа не существует вернет -1, иначе вар фаталит с ошибкой

endfunction

function Str2Int16 takes string s returns integer
    local integer i= 0
    local integer n=- 1
    
    loop
        if s == CharMap16[i] then
            set n=i
        endif
        exitwhen ( i > 16 or s == CharMap16[i] )
        set i=i + 1
    endloop
    
    return n //если такого символа не существует вернет -1, иначе вар фаталит с ошибкой

endfunction


function ASCII2DEC takes string num256 returns integer
    local integer num10= 0
    local integer i= 0
    local integer len= StringLength(num256)
    loop
        exitwhen i >= len
        set num10=num10 + CharInx256[Str2Int256(SubString(num256, i, i + 1))] * Pow256x[len - i - 1]
        set i=i + 1
    endloop
    return num10
endfunction

function DEC2ASCII takes integer num10 returns string
    local string num256= ""
    local integer i= 3
    local integer CodeCh
    loop
        exitwhen i < 0
        set CodeCh=0
        loop
            exitwhen num10 < Pow256x[i]
            set CodeCh=CodeCh + 1
            set num10=num10 - Pow256x[i]
        endloop
        if CodeCh > 0 then
            set num256=num256 + CharMap256[CodeCh]
        endif
        set i=i - 1
    endloop
    return num256
endfunction

function DEC2Binary takes integer num10 returns string
    local string s1= ""
    local string s2= ""
    
    local integer e= num10
    local integer C= num10
    
    loop
        set e=e / 2 //делим число e на основание 2, до сих пор пока число e не станет меньше или равно 1
        set s1=s1 + I2S(ModuloInteger(C, 2)) //извлекаем остаток при делении на основание
        set C=e //перезаписываем так как число e изменилось, и от него будет брать остаток
        exitwhen e <= 0 //делится число до сих пор пока не станет равно или меньше 1
    endloop
    
    set C=StringLength(s1) //кол-во рядов
    set e=C
    
    call BJDebugMsg("Получилось при делений на основание 2: " + s1 + ". Кол-во рялов - " + I2S(C))
    call BJDebugMsg("Переворачиваем символы")
    
    loop
        exitwhen e < 1
        set s2=s2 + SubString(s1, e - 1, e)
        call BJDebugMsg(SubString(s1, e - 1, e))
        set e=e - 1
    endloop
    
    return s2
endfunction

function Binary2Octal takes string num2 returns string
    local string z1= ""
    local string z2= ""
    local integer len= StringLength(num2)
    local integer i= len
    local integer start
    local integer k
    local integer n

    loop
        exitwhen i <= 0
        
        set start=i - 3 //порядок строки
        if start <= 0 then //если порядок строки меньше 0, то выдает не символы. Поэтому делаем проверку
            set start=0
        endif
        
        set z1=SubString(num2, start, i)
        set k=0
        loop
            exitwhen k > 7
            if ( S2I(z1) == S2I(CharMap2x8[k]) ) then //решающая функция это S2I иначе при переборе CharMap2x8 не всегда можно подобрать подходящую
                //так как варкрафт не добирает нулей при разложении на триады - 3 разряда (10101 = 10 101. тут у 10 нет нуля, 010). их походу самому придеться добавлять
                set z2=z2 + I2S(k)
                set n=k
            endif
            set k=k + 1
        endloop
    
        call BJDebugMsg(I2S(i) + " - выбрана триада: " + z1 + " получили из таблицы: " + I2S(n) + " это из 8-ричной системы ")
        set i=i - 3
    endloop
    call BJDebugMsg("Переворачиваем символы")
    
    set k=StringLength(z2) //кол-во рядов
    set i=k
    set z1=""
    loop
        exitwhen k < 1
        set z1=z1 + SubString(z2, k - 1, k)
        call BJDebugMsg(SubString(z2, k - 1, k))
        set k=k - 1
    endloop
    
    return z1
endfunction


function Binary2Hex takes string num2 returns string
    local string z1= ""
    local string z2= ""
    local integer len= StringLength(num2)
    local integer i= len
    local integer start
    local integer k
    local integer n

    loop
        exitwhen i <= 0
        
        set start=i - 4 //порядок строки
        if start <= 0 then //если порядок строки меньше 0, то выдает не символы. Поэтому делаем проверку
            set start=0
        endif
        
        set z1=SubString(num2, start, i)
        set k=0
        loop
            exitwhen k > 15
            if ( S2I(z1) == S2I(CharMap2x16[k]) ) then //решающая функция это S2I иначе при переборе CharMap2x16 не всегда можно подобрать подходящую
                //так как варкрафт не добирает нулей при разложении на тетрады - 4 разряда (100101 = 10 0101. тут у 100 нет нуля, 0100). их походу самому придеться добавлять
                set z2=z2 + CharMap16[k]
                set n=k
            endif
            set k=k + 1
        endloop
    
        call BJDebugMsg(I2S(i) + " - выбрана Тетрада: " + z1 + " получили из таблицы: " + I2S(n) + " это из 8-ричной системы ")
        set i=i - 4
    endloop
    call BJDebugMsg("Переворачиваем символы")
    
    set k=StringLength(z2) //кол-во рядов
    set i=k
    set z1=""
    loop
        exitwhen k < 1
        set z1=z1 + SubString(z2, k - 1, k)
        call BJDebugMsg(SubString(z2, k - 1, k))
        set k=k - 1
    endloop
    
    return z1
endfunction

function Binary2DEC takes string num2 returns integer
    local integer num10= 0
    local integer i= 0
    local integer len= StringLength(num2)
    loop
        exitwhen i >= len
        set num10=num10 + S2I(SubString(num2, i, i + 1)) * Pow2x[len - i - 1]
        set i=i + 1
    endloop
    return num10
endfunction

function HEX2DEC takes string num16 returns integer
    local integer num10= 0
    local integer i= 0
    local integer len= StringLength(num16)
    loop
        exitwhen i >= len
        set num10=num10 + CharInx16[Str2Int256(SubString(num16, i, i + 1))] * Pow16x[len - i - 1]
        set i=i + 1
    endloop
    return num10
endfunction

function DEC2HEX takes integer num10 returns string
    local string num16= ""
    local integer i= 7
    local integer CodeCh
    loop
        exitwhen i < 0
        set CodeCh=0
        loop
            exitwhen num10 < Pow16x[i]
            set CodeCh=CodeCh + 1
            set num10=num10 - Pow16x[i]
        endloop
        if CodeCh > 0 then
            set num16=num16 + CharMap16[CodeCh]
        endif
        set i=i - 1
    endloop
    return num16
endfunction

//-

function ForLoadMap2 takes nothing returns nothing
    call BJDebugMsg("ЗАГРУЗКА 1")
    set CharInx16[Str2Int16("0")]=0
    set CharInx16[Str2Int16("1")]=1
    set CharInx16[Str2Int16("2")]=2
    set CharInx16[Str2Int16("3")]=3
    set CharInx16[Str2Int16("4")]=4
    set CharInx16[Str2Int16("5")]=5
    set CharInx16[Str2Int16("6")]=6
    set CharInx16[Str2Int16("7")]=7
    set CharInx16[Str2Int16("8")]=8
    set CharInx16[Str2Int16("9")]=9
    set CharInx16[Str2Int16("A")]=10
    set CharInx16[Str2Int16("a")]=10
    set CharInx16[Str2Int16("B")]=11
    set CharInx16[Str2Int16("b")]=11
    set CharInx16[Str2Int16("C")]=12
    set CharInx16[Str2Int16("c")]=12
    set CharInx16[Str2Int16("D")]=13
    set CharInx16[Str2Int16("d")]=13
    set CharInx16[Str2Int16("E")]=14
    set CharInx16[Str2Int16("e")]=14
    set CharInx16[Str2Int16("F")]=15
    set CharInx16[Str2Int16("f")]=15
    

    set CharInx256[Str2Int256("!")]=33
    set CharInx256[Str2Int256(" ")]=34
    set CharInx256[Str2Int256("#")]=35
    set CharInx256[Str2Int256("$")]=36
    set CharInx256[Str2Int256("%")]=37
    set CharInx256[Str2Int256("&")]=38
    set CharInx256[Str2Int256("'")]=39
    set CharInx256[Str2Int256("(")]=40
    set CharInx256[Str2Int256(")")]=41
    set CharInx256[Str2Int256("*")]=42
    set CharInx256[Str2Int256("+")]=43
    set CharInx256[Str2Int256(",")]=44
    set CharInx256[Str2Int256("-")]=45
    set CharInx256[Str2Int256(".")]=46
    set CharInx256[Str2Int256("/")]=47
    set CharInx256[Str2Int256("0")]=48
    set CharInx256[Str2Int256("1")]=49
    set CharInx256[Str2Int256("2")]=50
    set CharInx256[Str2Int256("3")]=51
    set CharInx256[Str2Int256("4")]=52
    set CharInx256[Str2Int256("5")]=53
    set CharInx256[Str2Int256("6")]=54
    set CharInx256[Str2Int256("7")]=55
    set CharInx256[Str2Int256("8")]=56
    set CharInx256[Str2Int256("9")]=57
    set CharInx256[Str2Int256(":")]=58
    set CharInx256[Str2Int256(";")]=59
    set CharInx256[Str2Int256("<")]=60
    set CharInx256[Str2Int256("=")]=61
    set CharInx256[Str2Int256(">")]=62
    set CharInx256[Str2Int256(".")]=63
    set CharInx256[Str2Int256("@")]=64
    set CharInx256[Str2Int256("A")]=65
    set CharInx256[Str2Int256("B")]=66
    set CharInx256[Str2Int256("C")]=67
    set CharInx256[Str2Int256("D")]=68
    set CharInx256[Str2Int256("E")]=69
    set CharInx256[Str2Int256("F")]=70
    set CharInx256[Str2Int256("G")]=71
    set CharInx256[Str2Int256("H")]=72
    set CharInx256[Str2Int256("I")]=73
    set CharInx256[Str2Int256("J")]=74
    set CharInx256[Str2Int256("K")]=75
    set CharInx256[Str2Int256("L")]=76
    set CharInx256[Str2Int256("M")]=77
    set CharInx256[Str2Int256("N")]=78
    set CharInx256[Str2Int256("O")]=79
    set CharInx256[Str2Int256("P")]=80
    set CharInx256[Str2Int256("Q")]=81
    set CharInx256[Str2Int256("R")]=82
    set CharInx256[Str2Int256("S")]=83
    set CharInx256[Str2Int256("T")]=84
    set CharInx256[Str2Int256("U")]=85
    set CharInx256[Str2Int256("V")]=86
    set CharInx256[Str2Int256("W")]=87
    set CharInx256[Str2Int256("X")]=88
    set CharInx256[Str2Int256("Y")]=89
    set CharInx256[Str2Int256("Z")]=90
    set CharInx256[Str2Int256("[")]=91
    set CharInx256[Str2Int256("]")]=93
    set CharInx256[Str2Int256("^")]=94
    set CharInx256[Str2Int256("_")]=95
    set CharInx256[Str2Int256("`")]=96
    set CharInx256[Str2Int256("a")]=97
    set CharInx256[Str2Int256("b")]=98
    set CharInx256[Str2Int256("c")]=99
    set CharInx256[Str2Int256("d")]=100
    set CharInx256[Str2Int256("e")]=101
    set CharInx256[Str2Int256("f")]=102
    set CharInx256[Str2Int256("g")]=103
    set CharInx256[Str2Int256("h")]=104
    set CharInx256[Str2Int256("i")]=105
    set CharInx256[Str2Int256("j")]=106
    set CharInx256[Str2Int256("k")]=107
    set CharInx256[Str2Int256("l")]=108
    set CharInx256[Str2Int256("m")]=109
    set CharInx256[Str2Int256("n")]=110
    set CharInx256[Str2Int256("o")]=111
    set CharInx256[Str2Int256("p")]=112
    set CharInx256[Str2Int256("q")]=113
    set CharInx256[Str2Int256("r")]=114
    set CharInx256[Str2Int256("s")]=115
    set CharInx256[Str2Int256("t")]=116
    set CharInx256[Str2Int256("u")]=117
    set CharInx256[Str2Int256("v")]=118
    set CharInx256[Str2Int256("w")]=119
    set CharInx256[Str2Int256("x")]=120
    set CharInx256[Str2Int256("y")]=121
    set CharInx256[Str2Int256("z")]=122
    set CharInx256[Str2Int256("{")]=123
    set CharInx256[Str2Int256("|")]=124
    set CharInx256[Str2Int256("}")]=125
    set CharInx256[Str2Int256("~")]=126
    call BJDebugMsg("ЗАГРУЗКА 2")
endfunction



function ForLoadMap1 takes nothing returns nothing
    local string s
    
    call BJDebugMsg("СТАРТ")
//====================================
// Pow256x - число 256 в n-степени 
//  Pow256x нужен для вычисления, для работы с rawcode (в тос числе в переводе десятичной и 256-ричной систем)

//Напомню, что первый бит числа - знаковый бит, и он определяет будет ли оно положительным (0) или отрицательным (1). 
//Положительные числа идут от 0x00000000 (0dec) до 0x7fffffff (2147483647dec), отрицательные от 0xffffffff (-1dec) до 0x80000000 (-2147483648dec). 
//Что бы изменить знак числа надо инвертировать (где было 1 написать 0, где был 0 написать один) все биты числа и потом к нему прибавить 1.
// Короче (0x<hex-число> или 1x<hex-число>) это hex, короче 16-ричная система счисления

    set Pow256x[0]=0x00000001 //256^0=1
    set Pow256x[1]=0x00000100 //256^1=256 
    set Pow256x[2]=0x00010000 //256^2=65536
    set Pow256x[3]=0x01000000 //256^3=16777216
//====================================
// Pow16x - число 16 в n-степени 
//  Pow16x нужен для вычисления, для перевода из 16-ричной системы в десятичную, или наоборот.
    set Pow16x[0]=0x00000001 //16^0=1
    set Pow16x[1]=0x00000010 //16^1=16
    set Pow16x[2]=0x00000100 //16^2=256
    set Pow16x[3]=0x00001000 //16^3=4096
    set Pow16x[4]=0x00010000 //16^4=65536
    set Pow16x[5]=0x00100000 //16^5=1048576
    set Pow16x[6]=0x01000000 //16^6=16777216
    set Pow16x[7]=0x10000000 //16^7=268435456
//====================================
// Pow2x - число 2 в n-степени 
// Pow2x нужен для вычисления, для перевода из двоичной системы в десятичную.
//в качестве примера показан двоичный код из 32 символов, но в jass невозможно указать integer в двоичной (binary) системе счисления, но она очень важна для понимания всего материала.

//вместо 1000 0000 0000 0000 0000 0000 0000 0000 можно было поставить 10000000000000000000000000000000 = 2^31=2147483648
//НО: это не работает в варк, нельзя указывать в двоичной системе счисления. Поэтому пришлось указать заранее в 10-чной системе счисления
//если поставить двоичный код из 32 символов в jass, то система будет преобразовано не двоичную систему, а в 8-ричную. 
//короче в варкрафте не так работает 


    set Pow2x[0]=1 //0000 0000 0000 0000 0000 0000 0000 0001 //2^0=1
    set Pow2x[1]=2 //0000 0000 0000 0000 0000 0000 0000 0010 //2^1=2
    set Pow2x[2]=4 //0000 0000 0000 0000 0000 0000 0000 0100 //2^2=4
    set Pow2x[3]=8 //0000 0000 0000 0000 0000 0000 0000 1000 //2^3=8
    set Pow2x[4]=16 //0000 0000 0000 0000 0000 0000 0001 0000 //2^4=16
    set Pow2x[5]=32 //0000 0000 0000 0000 0000 0000 0010 0000 //2^5=32
    set Pow2x[6]=64 //0000 0000 0000 0000 0000 0000 0100 0000 //2^6=64
    set Pow2x[7]=128 //0000 0000 0000 0000 0000 0000 1000 0000 //2^7=128
    set Pow2x[8]=256 //0000 0000 0000 0000 0000 0001 0000 0000 //2^8=256
    set Pow2x[9]=512 //0000 0000 0000 0000 0000 0010 0000 0000 //2^9=512
    set Pow2x[10]=1024 //0000 0000 0000 0000 0000 0100 0000 0000 //2^10=1024
    set Pow2x[11]=2048 //0000 0000 0000 0000 0000 1000 0000 0000 //2^11=2048
    set Pow2x[12]=4096 //0000 0000 0000 0000 0001 0000 0000 0000 //2^12=4096
    set Pow2x[13]=8192 //0000 0000 0000 0000 0010 0000 0000 0000 //2^13=8192
    set Pow2x[14]=16384 //0000 0000 0000 0000 0100 0000 0000 0000 //2^14=16384
    set Pow2x[15]=32768 //0000 0000 0000 0000 1000 0000 0000 0000 //2^15=32768
    set Pow2x[16]=65536 //0000 0000 0000 0001 0000 0000 0000 0000 //2^16=65536
    set Pow2x[17]=131072 //0000 0000 0000 0010 0000 0000 0000 0000 //2^17=131072
    set Pow2x[18]=262144 //0000 0000 0000 0100 0000 0000 0000 0000 //2^18=262144
    set Pow2x[19]=524288 //0000 0000 0000 1000 0000 0000 0000 0000 //2^19=524288
    set Pow2x[20]=1048576 //0000 0000 0001 0000 0000 0000 0000 0000 //2^20=1048576
    set Pow2x[21]=2097152 //0000 0000 0010 0000 0000 0000 0000 0000 //2^21=2097152
    set Pow2x[22]=4194304 //0000 0000 0100 0000 0000 0000 0000 0000 //2^22=4194304
    set Pow2x[23]=8388608 //0000 0000 1000 0000 0000 0000 0000 0000 //2^23=8388608
    set Pow2x[24]=16777216 //0000 0001 0000 0000 0000 0000 0000 0000 //2^24=16777216
    set Pow2x[25]=33554432 //0000 0010 0000 0000 0000 0000 0000 0000 //2^25=33554432
    set Pow2x[26]=67108864 //0000 0100 0000 0000 0000 0000 0000 0000 //2^26=67108864
    set Pow2x[27]=134217728 //0000 1000 0000 0000 0000 0000 0000 0000 //2^27=134217728
    set Pow2x[28]=268435456 //0001 0000 0000 0000 0000 0000 0000 0000 //2^28=268435456
    set Pow2x[29]=536870912 //0010 0000 0000 0000 0000 0000 0000 0000 //2^29=536870912
    set Pow2x[30]=1073741824 //0100 0000 0000 0000 0000 0000 0000 0000 //2^30=1073741824
    set Pow2x[31]=2147483648 //1000 0000 0000 0000 0000 0000 0000 0000 //2^31=2147483648
    
//====================================
// Pow8x - число 8 в n-степени 
// Pow8x нужен для вычисления, для перевода из 8-ричной системы в десятичную.    
//Чтобы написать цифру в восьмеричной системе счисления мы должны приставить к ней 0
    set Pow8x[0]=000000001 //8^0=1
    set Pow8x[1]=000000010 //8^1=8
    set Pow8x[2]=000000100 //8^2=64
    set Pow8x[3]=000001000 //8^3=512
    set Pow8x[4]=000010000 //8^4=4096
    set Pow8x[5]=000100000 //8^5=32768
    set Pow8x[6]=001000000 //8^6=262144
    set Pow8x[7]=010000000 //8^7=2097152

    
    set CharMap16[0]="0"
    set CharMap16[1]="1"
    set CharMap16[2]="2"
    set CharMap16[3]="3"
    set CharMap16[4]="4"
    set CharMap16[5]="5"
    set CharMap16[6]="6"
    set CharMap16[7]="7"
    set CharMap16[8]="8"
    set CharMap16[9]="9"
    set CharMap16[10]="a"
    set CharMap16[11]="b"
    set CharMap16[12]="c"
    set CharMap16[13]="d"
    set CharMap16[14]="e"
    set CharMap16[15]="f"
    
    //Первые 128 символов стандарта Юникод — совпадают с соответствующими символами US-ASCII. 
    //символы от 0 до 32 это в основном управляющие символы, в которых не прописан графическое представление.
    
    
    set CharMap256[0]=null //спец. NOP
    set CharMap256[1]=null //спец. SOH
    set CharMap256[2]=null //спец. STX
    set CharMap256[3]=null //спец. ETX
    set CharMap256[4]=null //спец. EOT
    set CharMap256[5]=null //спец. ENQ
    set CharMap256[6]=null //спец. ACK
    set CharMap256[7]=null //спец. BEL
    
    set CharMap256[8]="\b" //символ Backspace
    set CharMap256[9]="\t" //horizontal tab
    set CharMap256[10]="\n" //LF line feed, new line
    set CharMap256[11]=null //спец. VT
    set CharMap256[12]="\f" //NP form feed
    set CharMap256[13]="\r"
    
    //графические символы
    set CharMap256[32]=" " //пробел Space
    set CharMap256[33]="!"
    set CharMap256[34]="\"" // \" - эти два знака означают ковычки ", иначе вар ругает
    set CharMap256[35]="#"
    set CharMap256[36]="$"
    set CharMap256[37]="%"
    set CharMap256[38]="&"
    set CharMap256[39]="'"
    set CharMap256[40]="("
    set CharMap256[41]=")"
    set CharMap256[42]="*"
    set CharMap256[43]="+"
    set CharMap256[44]=","
    set CharMap256[45]="-"
    set CharMap256[46]="."
    set CharMap256[47]="/"
    set CharMap256[48]="0"
    set CharMap256[49]="1"
    set CharMap256[50]="2"
    set CharMap256[51]="3"
    set CharMap256[52]="4"
    set CharMap256[53]="5"
    set CharMap256[54]="6"
    set CharMap256[55]="7"
    set CharMap256[56]="8"
    set CharMap256[57]="9"
    set CharMap256[58]=":"
    set CharMap256[59]=";"
    set CharMap256[60]="<"
    set CharMap256[61]="="
    set CharMap256[62]=">"
    set CharMap256[63]="?"
    set CharMap256[64]="@"
    set CharMap256[65]="A"
    set CharMap256[66]="B"
    set CharMap256[67]="C"
    set CharMap256[68]="D"
    set CharMap256[69]="E"
    set CharMap256[70]="F"
    set CharMap256[71]="G"
    set CharMap256[72]="H"
    set CharMap256[73]="I"
    set CharMap256[74]="J"
    set CharMap256[75]="K"
    set CharMap256[76]="L"
    set CharMap256[77]="M"
    set CharMap256[78]="N"
    set CharMap256[79]="O"
    set CharMap256[80]="P"
    set CharMap256[81]="Q"
    set CharMap256[82]="R"
    set CharMap256[83]="S"
    set CharMap256[84]="T"
    set CharMap256[85]="U"
    set CharMap256[86]="V"
    set CharMap256[87]="W"
    set CharMap256[88]="X"
    set CharMap256[89]="Y"
    set CharMap256[90]="Z"
    set CharMap256[91]="["
    set CharMap256[92]="\\" //такие символы как '\' при компиляции jasshelper выдает ошибку. Нужно ставить '\\', так как при компиляции у вас будет '\'
    set CharMap256[93]="]"
    set CharMap256[94]="^"
    set CharMap256[95]="_"
    set CharMap256[96]="`"
    set CharMap256[97]="a"
    set CharMap256[98]="b"
    set CharMap256[99]="c"
    set CharMap256[100]="d"
    set CharMap256[101]="e"
    set CharMap256[102]="f"
    set CharMap256[103]="g"
    set CharMap256[104]="h"
    set CharMap256[105]="i"
    set CharMap256[106]="j"
    set CharMap256[107]="k"
    set CharMap256[108]="l"
    set CharMap256[109]="m"
    set CharMap256[110]="n"
    set CharMap256[111]="o"
    set CharMap256[112]="p"
    set CharMap256[113]="q"
    set CharMap256[114]="r"
    set CharMap256[115]="s"
    set CharMap256[116]="t"
    set CharMap256[117]="u"
    set CharMap256[118]="v"
    set CharMap256[119]="w"
    set CharMap256[120]="x"
    set CharMap256[121]="y"
    set CharMap256[122]="z"
    set CharMap256[123]="{"
    set CharMap256[124]="|"
    set CharMap256[125]="}"
    set CharMap256[126]="~"
    set CharMap256[126]=null //127 - символ Delete 
    
    //остальные 128 символов - это национальные символы (у каждого языка свой стандарт, у английского есть еще расширенный дополнительный 128 символов)
    
    set CharMap256[128]="Ђ"
    set CharMap256[129]="Ѓ"
    set CharMap256[130]="‚"
    set CharMap256[131]="ѓ"
    set CharMap256[132]="„"
    set CharMap256[133]="…"
    set CharMap256[134]="†"
    set CharMap256[135]="‡"
    set CharMap256[136]="€"
    set CharMap256[137]="‰"
    set CharMap256[138]="Љ"
    set CharMap256[139]="‹ ‹"
    set CharMap256[140]="Њ"
    set CharMap256[141]="Ќ"
    set CharMap256[142]="Ћ"
    set CharMap256[143]="Џ"
    set CharMap256[144]="ђ"
    set CharMap256[145]="‘"
    set CharMap256[146]="’"
    set CharMap256[147]="“"
    set CharMap256[148]="”"
    set CharMap256[149]="•"
    set CharMap256[150]="–"
    set CharMap256[151]="—" //тут чуть больше чем у 153 символа, хоть это не заметно
    set CharMap256[152]=null //не понятно какой это символ
    set CharMap256[153]="™"
    set CharMap256[154]="љ"
    set CharMap256[155]="›"
    set CharMap256[156]="њ"
    set CharMap256[157]="ќ"
    set CharMap256[158]="ћ"
    set CharMap256[159]="џ"
    set CharMap256[160]=null //тоже не понятно какой символ
    set CharMap256[161]="Ў"
    set CharMap256[162]="ў"
    set CharMap256[163]="Ћ"
    set CharMap256[164]="¤"
    set CharMap256[165]="Ґ"
    set CharMap256[166]="¦"
    set CharMap256[167]="§"
    set CharMap256[168]="Ё" //большая буква Ё
    set CharMap256[169]="©"
    set CharMap256[170]="Є"
    set CharMap256[171]="«"
    set CharMap256[172]="¬"
    set CharMap256[173]=null //не понятно какой символ
    set CharMap256[174]="®"
    set CharMap256[175]="Ї"
    set CharMap256[176]="°" //значок градус
    set CharMap256[177]="±" //плюс-минус
    set CharMap256[178]="І"
    set CharMap256[179]="і"
    set CharMap256[180]="ґ"
    set CharMap256[181]="µ"
    set CharMap256[182]="¶"
    set CharMap256[183]="·"
    set CharMap256[184]="ё" //буква ё
    set CharMap256[185]="№"
    set CharMap256[186]="є"
    set CharMap256[187]="»"
    set CharMap256[188]="ј"
    set CharMap256[189]="Ѕ"
    set CharMap256[190]="ѕ"
    set CharMap256[191]="ї"
    set CharMap256[192]="А"
    set CharMap256[193]="Б"
    set CharMap256[194]="В"
    set CharMap256[195]="Г"
    set CharMap256[196]="Д"
    set CharMap256[197]="Е"
    set CharMap256[198]="Ж"
    set CharMap256[199]="З"
    set CharMap256[200]="И"
    set CharMap256[201]="Й"
    set CharMap256[202]="К"
    set CharMap256[203]="Л"
    set CharMap256[204]="М"
    set CharMap256[205]="Н"
    set CharMap256[206]="О"
    set CharMap256[207]="П"
    set CharMap256[208]="Р"
    set CharMap256[209]="С"
    set CharMap256[210]="Т"
    set CharMap256[211]="У"
    set CharMap256[212]="Ф"
    set CharMap256[213]="Х"
    set CharMap256[214]="Ц"
    set CharMap256[215]="Ч"
    set CharMap256[216]="Ш"
    set CharMap256[217]="Щ"
    set CharMap256[218]="Ъ"
    set CharMap256[219]="Ы"
    set CharMap256[220]="Ь"
    set CharMap256[221]="Э"
    set CharMap256[222]="Ю"
    set CharMap256[223]="Я"
    set CharMap256[224]="а"
    set CharMap256[225]="б"
    set CharMap256[226]="в"
    set CharMap256[227]="г"
    set CharMap256[228]="д"
    set CharMap256[229]="е"
    set CharMap256[230]="ж"
    set CharMap256[231]="з"
    set CharMap256[232]="и"
    set CharMap256[233]="й"
    set CharMap256[234]="к"
    set CharMap256[235]="л"
    set CharMap256[236]="м"
    set CharMap256[237]="н"
    set CharMap256[238]="о"
    set CharMap256[239]="п"
    set CharMap256[240]="р"
    set CharMap256[241]="с"
    set CharMap256[242]="т"
    set CharMap256[243]="у"
    set CharMap256[244]="ф"
    set CharMap256[245]="х"
    set CharMap256[246]="ц"
    set CharMap256[247]="ч"
    set CharMap256[248]="ш"
    set CharMap256[249]="щ"
    set CharMap256[250]="ъ"
    set CharMap256[251]="ы"
    set CharMap256[252]="ь"
    set CharMap256[253]="э"
    set CharMap256[254]="ю"
    set CharMap256[255]="я"
    
    //CharMap2x8 - эта переменная типа таблица для перевода из двоичной в 8-ричную. Очень нужна.
    //Для перевода числа в восьмеричную необходимо разбить число на триады. Например, 1000110 = 1 000 110 = 106 в 8-ричной системе
    //влево и вправо от запятой двоичное число разбивается на двоичные триады 423,6 = 100 010 011, 110 (пока реализованы только целые, реальные нет)
    //Или обратно по табличке, 144 = 001 100 100 = 1100100 в двоичной системе счисления
    //чтобы перевести обратно в двоичную систему необязательно использовать таблицу и перебирать массив CharMap2x8
    //можно добавить в варкрафт нолик = 0144=1100100, однако труднее будет вставить в строку 0, так как функция I2S обнуляет
    set CharMap2x8[0]="000"
    set CharMap2x8[1]="001"
    set CharMap2x8[2]="010"
    set CharMap2x8[3]="011"
    set CharMap2x8[4]="100"
    set CharMap2x8[5]="101"
    set CharMap2x8[6]="110"
    set CharMap2x8[7]="111"
    
    //CharMap2x16 - эта переменная типа таблица для перевода из двоичной в 16-ричную. Очень нужна.
    //Для перевода числа в 16-чную систему необходимо разбить число на тетрады. Например, 1000110 = 100 0110 = 46 в 16-ричной системе
    set CharMap2x16[0x0]="0000" //0
    set CharMap2x16[0x1]="0001" //1
    set CharMap2x16[0x2]="0010" //2
    set CharMap2x16[0x3]="0011" //3
    set CharMap2x16[0x4]="0100" //4
    set CharMap2x16[0x5]="0101" //5
    set CharMap2x16[0x6]="0110" //6
    set CharMap2x16[0x7]="0111" //7
    set CharMap2x16[0x8]="1000" //8
    set CharMap2x16[0x9]="1001" //9
    set CharMap2x16[0xa]="1010" //10=A=a
    set CharMap2x16[0xb]="1011" //11=B=b
    set CharMap2x16[0xc]="1100" //12=C=c
    set CharMap2x16[0xd]="1101" //13=D=d
    set CharMap2x16[0xe]="1110" //14=E=e
    set CharMap2x16[0xf]="1111" //15=F=d
    
    call BJDebugMsg("ЗАГРУЗКА 0")
    call ForLoadMap2()
endfunction

//===========================================================================
function InitTrig_R takes nothing returns nothing
    set gg_trg_R=CreateTrigger()
    //call TriggerRegisterGameEvent(gg_trg_R, EVENT_GAME_LOADED)
    call TriggerRegisterTimerEventSingle(gg_trg_R, 1.00)
    call TriggerAddAction(gg_trg_R, function ForLoadMap1)
    //call ForLoadMap()
endfunction

//===========================================================================
// Trigger: TEST
//
//     set Pow2x[0] = 0000 0000 0000 0000 0000 0000 0000 0001 //2^0=1
//     set Pow2x[1] = 0000 0000 0000 0000 0000 0000 0000 0010 //2^1=2
//     set Pow2x[2] = 0000 0000 0000 0000 0000 0000 0000 0100 //2^2=4
//     set Pow2x[3] = 0000 0000 0000 0000 0000 0000 0000 1000 //2^3=8
//     set Pow2x[4] =
//===========================================================================
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_TEST_Actions takes nothing returns nothing
    //call BJDebugMsg(I2S(ASCII2DEC("Edok")))
    call BJDebugMsg("Начало")
    call BJDebugMsg(Binary2Hex("111100010010"))



endfunction


//===========================================================================
function InitTrig_TEST takes nothing returns nothing
    set gg_trg_TEST=CreateTrigger()
    call TriggerRegisterTimerEventPeriodic(gg_trg_TEST, 1.00)
    call TriggerAddAction(gg_trg_TEST, function Trig_TEST_Actions)
endfunction//===========================================================================
function InitCustomTriggers takes nothing returns nothing
    call InitTrig_R()
    call InitTrig_TEST()
endfunction

//***************************************************************************
//*
//*  Players
//*
//***************************************************************************

function InitCustomPlayerSlots takes nothing returns nothing

    // Player 0
    call SetPlayerStartLocation(Player(0), 0)
    call SetPlayerColor(Player(0), ConvertPlayerColor(0))
    call SetPlayerRacePreference(Player(0), RACE_PREF_HUMAN)
    call SetPlayerRaceSelectable(Player(0), true)
    call SetPlayerController(Player(0), MAP_CONTROL_USER)

endfunction

function InitCustomTeams takes nothing returns nothing
    // Force: TRIGSTR_002
    call SetPlayerTeam(Player(0), 0)

endfunction

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("LordaeronSummerDay")
    call SetAmbientNightSound("LordaeronSummerNight")
    call SetMapMusic("Music", true, 0)
    call InitBlizzard()


    call InitGlobals()
    call InitCustomTriggers()

endfunction

//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

function config takes nothing returns nothing
    call SetMapName("Еще одна карта")
    call SetMapDescription("Описание отсутствует")
    call SetPlayers(1)
    call SetTeams(1)
    call SetGamePlacement(MAP_PLACEMENT_USE_MAP_SETTINGS)

    call DefineStartLocation(0, - 1088.0, 1920.0)

    // Player setup
    call InitCustomPlayerSlots()
    call SetPlayerSlotAvailable(Player(0), MAP_CONTROL_USER)
    call InitGenericPlayerSlots()
endfunction




//Struct method generated initializers/callers:

14

» Заповедь отца (Warcraft III) / Заповедь отца (Warcraft III)

Даже если старая карта удалена, что с того?
а то, что без карты - эта тема не имеет ценности
и может служить только для набивания себе на сайте опыта и ачивок через создание проекта
истории в шапке про класс "лучник" у которого есть криты - это чтиво, от которого нельзя оторваться, настолько увлекательно
Alan_Gu:
Очевидно, что подобные темы создают чтобы получать фидбек
если есть карта к скачке - будет фидбек
а так ты что хочешь? фидбек на текст?
если она не просто не была выложена, но была выложена, а потом удалена - тогда предлагаю и этот топик тоже удалить
а для чтения текстов давным давно изобрели книги
я вот тоже придумал историю:
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова...
Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес... А движок можно поставить так что вдали деревья картинкой, когда подходиш они преобразовываются в 3-хмерные деревья. Можно покупать и т.п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т.п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого…). Ну а если за злого… то значит шпионы или партизаны эльфов иногда нападают, пользователь сам себе командир может делать что сам захочет прикажет своим войскам с ним самим напасть на дворец и пойдет в атаку. Всего в игре 4 зоны. Т.е. карта и на ней есть 4 зоны, 1 - зона людей (нейтрал), 2- зона императора (где дворец), 3-зона эльфов, 4 - зона злого… (в горах, там есть старый форт…) Так же чтобы в игре могли не только убить но и отрубить руку и если пользователя не вылечат то он умрет, так же выколоть глаз но пользователь может не умереть а просто пол экрана не видеть, или достать или купить протез, если ногу тоже либо умреш либо будеш ползать либо на коляске котаться, или самое хорошее… поставить протез. Сохранятся можно... Я джва года хочу такую игру.
мне теперь для этой истории тоже отдельный проект создать с маленькой подпиской "готовность 10%" ?
(а потом через 5 лет изменить шрифт текста и поменять на "готовность 15%" ? )
14

» Заповедь отца (Warcraft III) / Заповедь отца (Warcraft III)

тебе зачем старая карта?
распространяется только по платной подписке среди VIP клиентов ?
зачем ты создал эту тему тогда, если удаляешь карты из темы?
14

» WarCraft 3 / как создать юнита по XXXX коду из чата? 'hpea'

nazarpunk хочу от тебя детей
МрачныйВорон а от тебя внуков
ну и кого из вас двоих выбирать в качестве верного ответа ?
14

» WarCraft 3 / Депротект (знаю заеженная тема)

тут эта
народ ценой интересуется
у кого какие расценки?
HELLHALT v5.0.29 - 668 файлов
Загруженные файлы
14

» WarCraft 3 / Депротект (знаю заеженная тема)

Да о чем вы вообще говорите
ладно, на вашем языке отпишусь
не надо отписываться, лучше задай вопрос (ответ на который ты все равно не будешь вдумчиво читать)
14

» Заповедь отца (Warcraft III) / Заповедь отца (Warcraft III)

Проект возобновлён
а вдруг через 10 лет выйдет Warcraft4 , придётся опять с нуля начинать?
где старая демо-карта ?
Хорошо что карта открыта, давно искал такие анимированные деревья, спасибо )
старая карта удалена?
14

» Помойка Макебы / Оставляем хвост за курсором

ACG
из этой карты на 1 гиг - курсор это самое минимальное что можно тиснуть
14

» Помойка Макебы / Оставляем хвост за курсором

Пока мы реализуем все эти фичи , уже китайское комьюнити вымрет
два вопроса на миливон:
  1. где больше годных, крутых, навороченных карт - в европе или в азии?
  2. когда догоняющий регион догонит фаворита? (по количеству карт и по их качеству)
14

» WarCraft 3 / Повозка с горой трупов

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

» IrInA Host Bot / Обновление коннектора (анонс)

Почему все ведут себя так, будто всем всё понятно.
но всем всё понятно
Список игр с красным геймпадом,
IrinaConnectorGui.exe - шестерёнка - зеленая кнопка "зарегистрировать обработчик протокола"
создать игру - ptr.irinabot.ru/gamelist
пойти в LAN
14

» Trolls / Trolls

И вернуть версию 0 6 4 которую автор так старательно удалил
ни у кого не схоронилась?
14

» WarCraft 3 / у кого-то уже получилось зайти на Netease 2 ? reckfeng UP官方对战平台

сайт не работает
тут пишет что работает www.uptrends.com/tools/uptime
а тут пишет что не работает uptime.com/freetools/global-uptime-test/113535/reckfeng.com
и тут стата по сайту www.similarweb.com/website/reckfeng.com/#geography
да в принципе сайт и не нужен, достаточно в приложуху зайти, а она сама знает чё ей надо
кстати если при установке тыкнуть на угол слева снизу то тоже reckfeng.com/user-agreement открывает в браузере
и после установки если потыкать под формой логина - тоже открывает страницы сайта, которые не грузятся
14

» WarCraft 3 / у кого-то уже получилось зайти на Netease 2 ? reckfeng UP官方对战平台

Вы пробовали купить номер?
вообще, у продавцов смс-симок везде по нулям по китаю, жёстко там с этим наверное
не будет ли он постоянно слать смс при каждом логине? (тем самым делая покупку номера бесполезной)
осенью 2022 в нетиз пускало по емаилу и без номера (даже новорегов),
но всегда показывало напоминалку "добавить номер" после входа в акк,
достаточно было нажать на крестик чтобы отстал