Spooky escreveu:rapaz, não sei se tem como mas acho que é fácil, mudar os atalhos de poder (nunca tentei o.O)
Mas eu tô achando que pode dar merda ao mudar , pois quando você for escrever algo que tenha as teclas que você colocou no atalho de poder . a skill pode sair (é o que eu to achando...)
Não ocorre Spooky, por uma condição chamada, ChatOn.
Pelo menos a partir do 2.3 (Quase certeza); Fora adicionado esta função para impedir a leitura da input dessa parte caso o chat esteja Online assim não soltando Skills,trocando equip, usando item...
O caso é : Se sua engine for a 2.0 ou alguma que não tenha o ChatOn;Não é interessante que use as VbKey comuns; A menos que você seja capaz de a colocar como restrição.
Como sei que meu Eo tem o ChatOn? Abra o Source e procure por ChatOn; Achou? Boa! Não achou? Então não recomendo que prossiga aqui :
No Lado do Client (Client Side), procure pelo ModInput; modulo que cuida dos comandos manuais de click, e teclado.
Procure por algo como isso aqui :
- Código:
' hotbar
If Not chatOn Then
For i = 1 To 9
If KeyCode = 48 + i Then
SendHotbarUse i
End If
Next
If KeyCode = 48 Then ' 0
SendHotbarUse 10
ElseIf KeyCode = 189 Then ' -
SendHotbarUse 11
ElseIf KeyCode = 187 Then ' =
SendHotbarUse 12
End If
End If
Originalmente se tem 12 Slots Básicos de Hotkey.
I = 1 to 9 + 10 / 11 e 12.
E agora?. Bom ele tem um loop para facilitar trabalho. Cabe a você identificar caso sua engine seja diferente mas normalmente é o padrão, é interessante adicionar um Select Case para indicar quais as Key's irá querer usar, ou usar o a mudança de KeyState. Um Exemplo:
- Código:
If GetKeyState(vbKeyA) < 0 And Not chatOn Then
SendHotbarUse 48
End If
If GetKeyState(vbKeyS) < 0 And Not chatOn Then
SendHotbarUse 49
End If
If GetKeyState(vbKeyD) < 0 And Not chatOn Then
SendHotbarUse 50
End If
If GetKeyState(vbKeyF) < 0 And Not chatOn Then
SendHotbarUse 51
End If
Usando A S D F; Para caso seja pressionado e o Chat Não estiver ON, ele irá efetuar o pedido para o server de quem estiver no dito Slot. Lembrando que os slots variam de :
[ 48 a 57 ] // [ 187 e 189 ]; Caso não seja tais Keys você tem de analisar ou nos informe que buscamos ajudar de forma possível.
~
Agora Profane, continua ali escrito F1 , F2 , F3... Não sou muito ambientado com Dx7, Mas caso seja :
- Procedimento para Dx7:
Procure pela BltHotbar no ModDirectDraw, dentro dele procure por :
- Código:
render the letters
num = "F" & Str(i)
DrawText frmMain.picHotbar.hDC, dRECT.Left + 2, dRECT.top + 16, num, QBColor(White)
Next
frmMain.picHotbar.Refresh
argh, achamos o Safado; [Num = "F" & Str(i) ] Crie então
Apague isso e procure fazer da seguinte forma :
- Código:
For I = 1 to MAX_HOTBAR
Select Case 1
num = "A"
DrawText frmMain.picHotbar.hDC, dRECT.Left + 2, dRECT.top + 16, num, QBColor(White)
Select Case 2
num = "S"
DrawText frmMain.picHotbar.hDC, dRECT.Left + 2, dRECT.top + 16, num, QBColor(White)
Select Case 3
num = "D"
DrawText frmMain.picHotbar.hDC, dRECT.Left + 2, dRECT.top + 16, num, QBColor(White)
Select Case 4
num = "F"
DrawText frmMain.picHotbar.hDC, dRECT.Left + 2, dRECT.top + 16, num, QBColor(White)
End Select
Next
# Lembrando que são exemplos de aplicação, ah formas de fazer melhor? Sim; Mas por hora acho mais simples você fazer desta forma. Separando e entendendo quem é quem, para caso necessite de Edição.
Caso seja Dx8 , aplicar a mesma forma, porém procurando a DrawHotBar no ModGraphics; Organizando claro o Render de X e Y. Adicionando um valor fixo mutável ou a cada Case.
Espero ter ajudado pelo menos um pouco =P Caso dê algo fora do normal ou errado; corrijam abaixo ou tragam para que possamos ajudar.
Att