Skip to content

Commit f5da703

Browse files
committed
Trace with chat messages
1 parent 53e2fb9 commit f5da703

File tree

1 file changed

+58
-54
lines changed

1 file changed

+58
-54
lines changed

wowr.w3x/scripts/common.ai

Lines changed: 58 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,56 @@ globals
226226
integer zeppelins = 3
227227
endglobals
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
//============================================================================
230280
function PlayerEx takes integer slot returns player
231281
return Player(slot-1)
@@ -234,28 +284,32 @@ endfunction
234284
//============================================================================
235285
function 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
239290
endfunction
240291

241292
//============================================================================
242293
function 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
246298
endfunction
247299

248300
//============================================================================
249301
function 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
253306
endfunction
254307

255308
//============================================================================
256309
function 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
260314
endfunction
261315

@@ -2539,56 +2593,6 @@ function LaunchAttack takes nothing returns nothing
25392593
endif
25402594
endfunction
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

Comments
 (0)