Beispiel #1
0
        private static JassInteger StringCount(JassStringArg str, JassStringArg sub)
        {
            string Str = str.ToString(), Sub = sub.ToString();

            if (Str == null || Sub == null)
            {
                return(0);
            }
            return(Regex.Matches(Str, Sub).Count);
        }
Beispiel #2
0
        private static JassBoolean StringContains(JassStringArg str, JassStringArg sub)
        {
            string Str = str.ToString(), Sub = sub.ToString();

            if (Str == null || Sub == null)
            {
                return(false);
            }
            return(Str.Contains(Sub));
        }
Beispiel #3
0
        private static JassStringRet StringSplit(JassStringArg str, JassStringArg sub, JassInteger index)
        {
            string Str = str.ToString();

            if (string.IsNullOrEmpty(Str))
            {
                return(string.Empty);
            }
            string[] array = Str.Split(new string[] { sub }, StringSplitOptions.None);
            return(0 <= index && index < array.Length ? array[index] : string.Empty);
        }
Beispiel #4
0
        private static JassStringRet StringRegex(JassStringArg str, JassStringArg regex, JassInteger index)
        {
            string Str = str.ToString(), Reg = regex.ToString();

            if (Str == null || Reg == null)
            {
                return(string.Empty);
            }
            MatchCollection matches = Regex.Matches(Str, Reg);

            return(0 <= index && index < matches.Count ? matches[index].Value : string.Empty);
        }
Beispiel #5
0
        private static JassStringRet StringSub(JassStringArg str, JassInteger start, JassInteger length)
        {
            string Str = str.ToString();
            int    Start = start, Length = length;

            if (Str == null || Start >= Str.Length || Length == 0)
            {
                return(string.Empty);
            }
            if (Start < 0)
            {
                Length += Start;
                Start   = 0;
            }
            if (Length < 0 || Start + Length > Str.Length)
            {
                return(Str.Substring(Start));
            }
            else
            {
                return(Str.Substring(Start, Length));
            }
        }
Beispiel #6
0
 private static JassStringRet StringReverse(JassStringArg str)
 {
     char[] arr = (str.ToString() ?? string.Empty).ToCharArray();
     Array.Reverse(arr);
     return(new string(arr));
 }
Beispiel #7
0
 private static void MemorySetString(JassInteger offset, JassStringArg value)
 => WriteString(new IntPtr(offset), value);
Beispiel #8
0
 private static void DzAPI_Map_Ladder_SetPlayerStat(JassPlayer whichPlayer, JassStringArg key, JassStringArg value)
 {
 }
Beispiel #9
0
 private static JassStringRet DzAPI_Map_GetServerValue(JassPlayer whichPlayer, JassStringArg key) => string.Empty;
Beispiel #10
0
 private static JassRealRet RequestExtraRealData(JassInteger dataType, JassPlayer whichPlayer, JassStringArg param1, JassStringArg param2, JassBoolean param3, JassInteger param4, JassInteger param5, JassInteger param6) => 0;
Beispiel #11
0
 private static JassBoolean RequestExtraBooleanData(JassInteger dataType, JassPlayer whichPlayer, JassStringArg param1, JassStringArg param2, JassBoolean param3, JassInteger param4, JassInteger param5, JassInteger param6) => false;
Beispiel #12
0
 private static JassStringRet DzAPI_Map_GetServerArchiveDrop(JassPlayer whichPlayer, JassStringArg key) => string.Empty;
Beispiel #13
0
 private static JassStringRet StringReplace(JassStringArg str, JassStringArg old, JassStringArg newstr)
 {
     return(str.ToString()?.Replace(old.ToString() ?? string.Empty, newstr.ToString() ?? string.Empty) ?? string.Empty);
 }
Beispiel #14
0
 private static JassStringRet StringTrimEnd(JassStringArg str) => str.ToString()?.TrimEnd();
Beispiel #15
0
 private static JassStringRet StringTrimStart(JassStringArg str) => str.ToString()?.TrimStart();
Beispiel #16
0
 private static void DzAPI_Map_UseConsumablesItem(JassPlayer whichPlayer, JassStringArg key)
 {
 }
Beispiel #17
0
 private static void DzAPI_Map_OrpgTrigger(JassPlayer whichPlayer, JassStringArg key)
 {
 }
Beispiel #18
0
        private static JassStringRet StringInsert(JassStringArg str, JassInteger index, JassStringArg val)
        {
            int idx = index >= 0 ? (int)index : 0;

            return((str.ToString() ?? string.Empty).PadRight(idx).Insert(idx, val.ToString() ?? string.Empty));
        }
Beispiel #19
0
 private static JassInteger DzAPI_Map_GetServerArchiveEquip(JassPlayer whichPlayer, JassStringArg key) => 0;
Beispiel #20
0
 private static void DzAPI_Map_MissionComplete(JassPlayer whichPlayer, JassStringArg key, JassStringArg value)
 {
 }
Beispiel #21
0
 private static JassStringRet RequestExtraStringData(JassInteger dataType, JassPlayer whichPlayer, JassStringArg param1, JassStringArg param2, JassBoolean param3, JassInteger param4, JassInteger param5, JassInteger param6) => string.Empty;
Beispiel #22
0
 private static JassStringRet DzAPI_Map_GetMapConfig(JassStringArg key) => "1";
Beispiel #23
0
 private static JassBoolean DzAPI_Map_SaveServerValue(JassPlayer whichPlayer, JassStringArg key, JassStringArg value) => true;
Beispiel #24
0
 private static JassBoolean DzAPI_Map_HasMallItem(JassPlayer whichPlayer, JassStringArg key) => false;
Beispiel #25
0
 private static void DzAPI_Map_Stat_SetStat(JassPlayer whichPlayer, JassStringArg key, JassStringArg value)
 {
 }
Beispiel #26
0
 private static JassBoolean DzAPI_Map_SavePublicArchive(JassPlayer whichPlayer, JassStringArg key, JassStringArg value) => true;
Beispiel #27
0
 private static JassInteger GetModuleHandle(JassStringArg moduleName)
 => Kernel32.GetModuleHandle(moduleName).ToInt32();
Beispiel #28
0
 private static JassStringRet DzAPI_Map_GetPublicArchive(JassPlayer whichPlayer, JassStringArg key) => string.Empty;
 private static void WriteLog(JassStringArg str) => Trace.WriteLine(str.ToString());
Beispiel #30
0
        private static JassInteger StringCalcLines(JassStringArg str, JassInteger length)
        {
            string Str    = str.ToString();
            int    Length = length;

            if (Str == null || Length <= 0)
            {
                return(0);
            }
            string[] items = Str.TrimEnd().Split(' ');
            int      ret = 1, lastLen = 0, curLen = 0;

            for (int i = 0; i < items.Length; i++)
            {
                string item = items[i].TrimEnd(' ');
                if (lastLen > 0 && item.Length == 0)
                {
                    lastLen++;
                    continue;
                }
                for (int j = 0; j < item.Length; j++)
                {
                    char c = item[j];
                    if (c < 0x100)
                    {
                        switch (c)
                        {
                        case '|':
                            if (j + 1 == item.Length)
                            {
                                break;
                            }
                            switch (item[j + 1])
                            {
                            case 'C':
                            case 'c':
                                int idx = 0;
                                while (idx < 8)
                                {
                                    if (item.Length <= j + 2 + idx)
                                    {
                                        goto SwitchBreak;
                                    }
                                    char h = item[j + 2 + idx];
                                    if (!('0' <= h && h <= '9' || 'A' <= h && h <= 'F' || 'a' <= h && h <= 'f'))
                                    {
                                        goto SwitchBreak;
                                    }
                                    idx++;
                                }
                                j += 9;
                                continue;

                            case 'R':
                            case 'r':
                                j++;
                                continue;

                            case 'N':
                            case 'n':
                                j++;
                                lastLen = 0;
                                curLen  = 0;
                                ret++;
                                if (j + 1 == item.Length)
                                {
                                    curLen++;
                                }
                                continue;
                            }
                            break;

                        case '\r': continue;

                        case '\n':
                            lastLen = 0;
                            curLen  = 0;
                            ret++;
                            if (j + 1 == item.Length)
                            {
                                curLen++;
                            }
                            continue;
                        }
SwitchBreak:
                        curLen++;
                    }
                    else
                    {
                        curLen += 2;
                    }

                    if (curLen >= Length)
                    {
                        curLen = 0;
                        ret++;
                    }
                    else if (lastLen > 0 && curLen + lastLen + 1 >= Length)
                    {
                        lastLen = 0;
                        ret++;
                    }
                }
                lastLen += ++curLen;
                curLen   = 0;
            }
            return(ret);
        }