[CS:DE] Fazendo "fogs" funcionar Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[CS:DE] Fazendo "fogs" funcionar

Ir para baixo

[CS:DE] Fazendo "fogs" funcionar Empty [CS:DE] Fazendo "fogs" funcionar

Mensagem por gabriel190 Sáb Mar 24, 2012 10:31 pm

Olá pessoal da aldeia!
Não tem muitos tutoriais de Crystal Shire aki, então eu resolvi colocar alguns que eu achei na net.
Obs:Não tem uma area de CS:DE emtao resolvi postar aki msm...se n puder me desculpem

Esse tutoria faz o sistem de fog do jogo funcionar...(akelas neblina sabe...)

Client Side
No modTypes procure por Private Type Map Rec e antes do End Type adicione:

Código:
    Fog As Byte
    FogOpacity As Byte
    FogBlendMode As Byte

A seguir, na Sub SendMap ache:

Código:
    With Map
        For x = 1 To MAX_MAP_NPCS
            Buffer.WriteLong .Npc(x)
        Next
    End With

Entre isso, abaixo do Buffer.WriteLong.Npc(x) adicione isso:

Código:
    Buffer.WriteByte Map.Fog
    Buffer.WriteByte Map.FogOpacity
    Buffer.WriteByte Map.FogBlendMode

Agora na sub HandleMapData procure por:

Código:
    For x = 1 To MAX_MAP_NPCS
        Map.Npc(x) = Buffer.ReadLong
    Next

Novamente abixo do Map.Npc(x) = Buffer.ReadLong, adicione isso:

Código:
    Map.Fog = Buffer.ReadByte
    Map.FogOpacity = Buffer.ReadByte
    Map.FogBlendMode = Buffer.ReadByte

Agora na Sub MapEditorProperties ache:

Código:
        .scrlBoss = Map.BossNpc

Abaixo adicione:

Código:
        .scrlFog.value = Map.Fog
        .scrlFogOpacity.value = Map.FogOpacity
        .scrlFogBlending.value = Map.FogBlendMode

Procure e troque a Sub DrawFog() por essa aki abaixo:
Código:
Public Sub DrawFog()
Dim fogNum As Long, colour As Long, x As Long, y As Long, renderState As Long
   
    fogNum = Map.Fog
    If fogNum <= 0 Or fogNum > Count_Fog Then Exit Sub
    renderState = Map.FogBlendMode + 1
    colour = D3DColorARGB(Map.FogOpacity, 255, 255, 255)
   
    ' render state
    Select Case renderState
        Case 1 ' Additive
            D3DDevice8.SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_MODULATE
            D3DDevice8.SetRenderState D3DRS_DESTBLEND, D3DBLEND_ONE
        Case 2 ' Subtractive
            D3DDevice8.SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_SUBTRACT
            D3DDevice8.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ZERO
            D3DDevice8.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR
    End Select
   
    For x = 0 To 4
        For y = 0 To 3
            'RenderTexture Tex_Fog(fogNum), (x * 256) + fogOffsetX, (y * 256) + fogOffsetY, 0, 0, 256, 256, 256, 256, colour
            RenderTexture Tex_Fog(fogNum), (x * 256), (y * 256), 0, 0, 256, 256, 256, 256, colour
        Next
    Next
   
    ' reset render state
    If renderState > 0 Then
        D3DDevice8.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA
        D3DDevice8.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA
        D3DDevice8.SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_MODULATE
    End If
End Sub
Nota: Aqui tem 2 linhas de código,1 comentada, que desenha a fog, a do topo é a que meche, a do final aparece também porém ela fica fixa na tela, ela nao se move. Aí voce escolhe qual é melhor para voce.

Na sub SaveMap Procure por:

Código:
    Put #f, , Map.BossNpc

Abaixo adicione:

Código:
    Put #f, , Map.Fog
    Put #f, , Map.FogOpacity
    Put #f, , Map.FogBlendMode

Na Sub LoadMap procure por:

Código:
        Get #f, , Map.BossNpc

Abaixo adicione:

Código:
        Get #f, , Map.Fog
        Get #f, , Map.FogOpacity
        Get #f, , Map.FogBlendMode

Finalmente troque o seu frmEditor_MapProprietis com esse aqui:
[url=Clike aki para baixar]http://www.touchofdeathforums.com/smf/index.php?action=dlattach;topic=78116.0;attach=20342[/url]

SERVER SIDE

Procure pela Private Type MapRec e antes da End Type adicione:

Código:
    Fog As Byte
    FogOpacity As Byte
    FogBlendMode As Byte

Agora na Sub HandleMapData Ache:

Código:
    For x = 1 To MAX_MAP_NPCS
        Map(mapNum).Npc(x) = Buffer.ReadLong
        Call ClearMapNpc(x, mapNum)
    Next

Abaixo do Map(mapNum).Npc(x) = Buffer.ReadLong adicione:

Código:
    Map(mapNum).Fog = Buffer.ReadByte
    Map(mapNum).FogOpacity = Buffer.ReadByte
    Map(mapnum).FogBlendMode = Buffer.ReadByte

Finalmente, na sub MapCache_Create ache:

Código:
    For x = 1 To MAX_MAP_NPCS
        Buffer.WriteLong Map(mapNum).Npc(x)
    Next

E abaixo do Buffer.WriteLong Map(mapNum).Npc(x) adicione isso:

Código:
    Buffer.WriteByte Map(mapNum).Fog
    Buffer.WriteByte Map(mapNum).FogOpacity
    Buffer.WriteByte Map(mapNum).FogBlendMode

Na sub SaveMap procure por:

Código:
    Put #F, , Map(mapNum).BossNpc

Abaixo adicione:

Código:
    Put #F, , Map(mapNum).Fog
    Put #F, , Map(mapNum).FogOpacity
    Put #F, , Map(mapNum).fogblendmode

Finamente na Sub LoadMaps procure por:

Código:
        Get #F, , Map(i).BossNpc

Abaixo adicione:

Código:
        Get #F, , Map(i).Fog
        Get #F, , Map(i).FogOpacity
        Get #F, , Map(i).fogblendmode

E acabamos!

Agora deve estar assim

Spoiler:

Spoiler:

Creditos:
Robin por fazer o sistema.
Jcsnider por termina-lo.
Eu por traduzir e postar aqui.

_________________
[CS:DE] Fazendo "fogs" funcionar Scaled.php?server=546&filename=signpnu
[CS:DE] Fazendo "fogs" funcionar Xna
[CS:DE] Fazendo "fogs" funcionar Fanbarpw
[CS:DE] Fazendo "fogs" funcionar AIymW
gabriel190
gabriel190
Membro Ativo
Membro Ativo

Mensagens : 278
Créditos : 19

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos