Mirage Engine
How do I get a BattleMsg to the topleft? - Printable Version

+- Mirage Engine (https://mirage-engine.uk/forums)
+-- Forum: Mirage Source (Nostalgia) (https://mirage-engine.uk/forums/forumdisplay.php?fid=61)
+--- Forum: Archive (2006-2011) (https://mirage-engine.uk/forums/forumdisplay.php?fid=18)
+---- Forum: General (https://mirage-engine.uk/forums/forumdisplay.php?fid=17)
+---- Thread: How do I get a BattleMsg to the topleft? (/showthread.php?tid=1211)



How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

I'm really not too sure on this, I copied a Call from
Code:
'Draw map name
and tried to edit that.. But it didn't work.

Edit: Also, how would I made it global so everyone'll see it?


Re: How do I get a BattleMsg to the topleft? - Rezeyu - 26-08-2007

Define.. Battle message.


Re: How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

It's the message you get on the actual map.


Re: How do I get a BattleMsg to the topleft? - Rezeyu - 26-08-2007

Code:
Dim MSG as String

Call DrawText(TexthDC, (1 * PIC_X) + 4, (1* PIC_Y) + 12, MSG, QBColor(BrightRed))

That should be the top left.. ish.

I can't remember if it counts from 0 or 1 for tiles. .XD


In any case, just make MSG = whatever you want blitted there.


Re: How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

I think it starts at 0.

And this is what I've got so far.
Code:
If GetPlayerAccess(Index) > 0 Then
                Call AddLog("[" & GetPlayerName(Index) & "]:" & MSG, ADMIN_LOG)
                Call BattleMsg(Index, "***", Yellow, 0)
                Call AdminMsg("[" & GetPlayerName(Index) & "]:" & MSG, AdminColor)
            End If
I just want that BattleMsg to be in the top left for however long a normal BattleMsg is and for everyone to be able to see it.


Re: How do I get a BattleMsg to the topleft? - Rezeyu - 26-08-2007

What's in the "BattleMsg" sub?


Re: How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

Code:
Sub BattleMsg(ByVal Index As Long, ByVal MSG As String, ByVal Color As Byte, ByVal Side As Long)
    Call SendDataTo(Index, "damagedisplay" & SEP_CHAR & Side & SEP_CHAR & MSG & SEP_CHAR & Color & SEP_CHAR & END_CHAR)
End Sub



Re: How do I get a BattleMsg to the topleft? - Rezeyu - 26-08-2007

Client side, whatever you have to recieve the "damagedisplay" packet, set a timer variable to whatever you want.

Like.. Timer = 15

Then in the Gameloop add


Code:
If Timer > 0 Then
      Call Drawtext(blah blah blah)
End If



Re: How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

Actualy, I'm going to try something that just popped into my head. If it doesn't work, I'll try the timer.


Re: How do I get a BattleMsg to the topleft? - Egon - 26-08-2007

Ok, new idea, lets forget the BattleMsg.

Say if I was to make a lable on the picScreen and whenever a person with the access of greater then one uses the "@" command it would show a caption and then go away two seconds later.

This seems much easyer.


Re: How do I get a BattleMsg to the topleft? - Rezeyu - 26-08-2007

Duplicate the Broadcast crap, but make the receiving packet make lblWhatever.Caption = Packet