@@ -226,6 +226,56 @@ globals
226226 integer zeppelins = 3
227227endglobals
228228
229+ //============================================================================
230+ // https://www.hiveworkshop.com/threads/i2s-without-natives-for-use-in-ai-scripts.348472/
231+
232+ function I2C2 takes integer i returns string
233+ if i == 0 then
234+ return "0"
235+ elseif i == 1 then
236+ return "1"
237+ elseif i == 2 then
238+ return "2"
239+ elseif i == 3 then
240+ return "3"
241+ elseif i == 4 then
242+ return "4"
243+ elseif i == 5 then
244+ return "5"
245+ elseif i == 6 then
246+ return "6"
247+ elseif i == 7 then
248+ return "7"
249+ elseif i == 8 then
250+ return "8"
251+ elseif i == 9 then
252+ return "9"
253+ endif
254+ return ""
255+ endfunction
256+
257+ function I2S2 takes integer i returns string
258+ local integer j = i
259+ local string s = ""
260+ local integer k = 0
261+ local boolean is_negative = false
262+ local integer MAX_DIGITS = 20
263+ if i < 0 then
264+ set is_negative = true
265+ set j = -j
266+ endif
267+ loop
268+ set s = I2C2(j - (j / 10) * 10) + s
269+ set j = j / 10
270+ set k = k + 1
271+ exitwhen j == 0 or k >= MAX_DIGITS
272+ endloop
273+ if is_negative then
274+ set s = "-" + s
275+ endif
276+ return s
277+ endfunction
278+
229279//============================================================================
230280function PlayerEx takes integer slot returns player
231281 return Player(slot-1)
@@ -234,28 +284,32 @@ endfunction
234284//============================================================================
235285function Trace takes string message returns nothing
236286 if trace_on then
237- call DisplayText(0, GetPlayerName(ai_player) + ": " + message)
287+ call DisplayText(GetAiPlayer(), message)
288+ call BlzDisplayChatMessage(Player(GetAiPlayer()), 0, message)
238289 endif
239290endfunction
240291
241292//============================================================================
242293function TraceI takes string message, integer val returns nothing
243294 if trace_on then
244- call DisplayTextI(0,GetPlayerName(ai_player) + ": " + message,val)
295+ call DisplayTextI(GetAiPlayer(),message,val)
296+ call BlzDisplayChatMessage(Player(GetAiPlayer()), 0, message + " v1=" + I2S2(val))
245297 endif
246298endfunction
247299
248300//============================================================================
249301function TraceII takes string message, integer v1, integer v2 returns nothing
250302 if trace_on then
251- call DisplayTextII(0,GetPlayerName(ai_player) + ": " + message,v1,v2)
303+ call DisplayTextII(GetAiPlayer(),message,v1,v2)
304+ call BlzDisplayChatMessage(Player(GetAiPlayer()), 0, message + " v1=" + I2S2(v1) + ", v2=" + I2S2(v2))
252305 endif
253306endfunction
254307
255308//============================================================================
256309function TraceIII takes string message, integer v1, integer v2, integer v3 returns nothing
257310 if trace_on then
258- call DisplayTextIII(0,GetPlayerName(ai_player) + ": " + message,v1,v2,v3)
311+ call DisplayTextIII(GetAiPlayer(),message,v1,v2,v3)
312+ call BlzDisplayChatMessage(Player(GetAiPlayer()), 0, message + " v1=" + I2S2(v1) + " v2=" + I2S2(v2) + " v3=" + I2S2(v3))
259313 endif
260314endfunction
261315
@@ -2539,56 +2593,6 @@ function LaunchAttack takes nothing returns nothing
25392593 endif
25402594endfunction
25412595
2542- // https://www.hiveworkshop.com/threads/i2s-without-natives-for-use-in-ai-scripts.348472/
2543-
2544-
2545- function I2C2 takes integer i returns string
2546- if i == 0 then
2547- return "0"
2548- elseif i == 1 then
2549- return "1"
2550- elseif i == 2 then
2551- return "2"
2552- elseif i == 3 then
2553- return "3"
2554- elseif i == 4 then
2555- return "4"
2556- elseif i == 5 then
2557- return "5"
2558- elseif i == 6 then
2559- return "6"
2560- elseif i == 7 then
2561- return "7"
2562- elseif i == 8 then
2563- return "8"
2564- elseif i == 9 then
2565- return "9"
2566- endif
2567- return ""
2568- endfunction
2569-
2570- function I2S2 takes integer i returns string
2571- local integer j = i
2572- local string s = ""
2573- local integer k = 0
2574- local boolean is_negative = false
2575- local integer MAX_DIGITS = 20
2576- if i < 0 then
2577- set is_negative = true
2578- set j = -j
2579- endif
2580- loop
2581- set s = I2C2(j - (j / 10) * 10) + s
2582- set j = j / 10
2583- set k = k + 1
2584- exitwhen j == 0 or k >= MAX_DIGITS
2585- endloop
2586- if is_negative then
2587- set s = "-" + s
2588- endif
2589- return s
2590- endfunction
2591-
25922596// recipient: changes the type of chat channel prefix shown. It has no effect on the message's visibility.
25932597// 0: "All" chat prefix
25942598// 1: "Allies"
0 commit comments