Es facil , yo logeo mi pj (tengo clan), logea otro pj (con clan) y lo miro y me mira y ninguno nos vemos los clanes del otro pero si el propio , yo me voy lejos vuelñvo y hay nos vemos pero no al logear.
Necesito ayuda aca el rendeer screen.
- Sub RenderScreen(tilex As Integer, tiley As Integer, PixelOffsetX As Integer, PixelOffsetY As Integer)
- On Error Resume Next
-
-
- If UserCiego Then Exit Sub
-
- Dim y As Integer 'Keeps track of where on map we are
- Dim X As Integer 'Keeps track of where on map we are
- Dim minY As Integer 'Start Y pos on current map
- Dim maxY As Integer 'End Y pos on current map
- Dim minX As Integer 'Start X pos on current map
- Dim maxX As Integer 'End X pos on current map
- Dim ScreenX As Integer 'Keeps track of where to place tile on screen
- Dim ScreenY As Integer 'Keeps track of where to place tile on screen
- Dim Moved As Byte
- Dim Grh As Grh 'Temp Grh for show tile and blocked
- Dim tempChar As Char
- Dim TextX As Integer
- Dim TextY As Integer
- Dim iPPx As Integer 'Usado en el Layer de Chars
- Dim iPPy As Integer 'Usado en el Layer de Chars
- Dim rSourceRect As RECT 'Usado en el Layer 1
- Dim iGrhIndex As Integer 'Usado en el Layer 1
- Dim PixelOffsetXTemp As Integer 'For centering grhs
- Dim PixelOffsetYTemp As Integer 'For centering grhs
- Dim nX As Integer
- Dim nY As Integer
-
- 'Figure out Ends and Starts of screen
- ' Hardcodeado para speed!
- 'minY = (tiley - 15)
- 'maxY = (tiley + 15)
- 'minX = (tilex - 17)
- 'maxX = (tilex + 17)
- minY = (tiley - (WindowTileHeight \ 2)) - TileBufferSize
- maxY = (tiley + (WindowTileHeight \ 2)) + TileBufferSize
- minX = (tilex - (WindowTileWidth \ 2)) - TileBufferSize
- maxX = (tilex + (WindowTileWidth \ 2)) + TileBufferSize
-
- 'Draw floor layer
- ScreenY = 8
- For y = (minY + 8) To maxY - 8
- ScreenX = 8
- For X = minX + 8 To maxX - 8
- If X > 100 Or y < 1 Then Exit For
- 'Layer 1 **********************************
- With MapData(X, y).Graphic(1)
- If (.Started = 1) Then
- If (.SpeedCounter > 0) Then
- .SpeedCounter = .SpeedCounter - 1
- If (.SpeedCounter = 0) Then
- .SpeedCounter = GrhData(.GrhIndex).Speed
- .FrameCounter = .FrameCounter + 1
- If (.FrameCounter > GrhData(.GrhIndex).NumFrames) Then _
- .FrameCounter = 1
- End If
- End If
- End If
-
- 'Figure out what frame to draw (always 1 if not animated)
- iGrhIndex = GrhData(.GrhIndex).Frames(.FrameCounter)
- End With
-
- rSourceRect.Left = GrhData(iGrhIndex).sX
- rSourceRect.Top = GrhData(iGrhIndex).sY
- rSourceRect.Right = rSourceRect.Left + GrhData(iGrhIndex).pixelWidth
- rSourceRect.Bottom = rSourceRect.Top + GrhData(iGrhIndex).pixelHeight
-
- 'El width fue hardcodeado para speed!
- Call BackBufferSurface.BltFast( _
- ((32 * ScreenX) - 32) + PixelOffsetX, _
- ((32 * ScreenY) - 32) + PixelOffsetY, _
- SurfaceDB.Surface(GrhData(iGrhIndex).FileNum), _
- rSourceRect, _
- DDBLTFAST_WAIT)
- '******************************************
- 'Layer 2 **********************************
- If MapData(X, y).Graphic(2).GrhIndex <> 0 Then
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- MapData(X, y).Graphic(2), _
- ((32 * ScreenX) - 32) + PixelOffsetX, _
- ((32 * ScreenY) - 32) + PixelOffsetY, _
- 1, _
- 1)
- End If
- '******************************************
- ScreenX = ScreenX + 1
- Next X
- ScreenY = ScreenY + 1
- If y > 100 Then Exit For
- Next y
-
-
- 'busco que nombre dibujar
- Call ConvertCPtoTP(frmMain.MainViewShp.Left, frmMain.MainViewShp.Top, frmMain.MouseX, frmMain.MouseY, nX, nY)
-
-
- 'Draw Transparent Layers (Layer 2, 3)
- ScreenY = 8
- For y = minY + 8 To maxY - 1
- ScreenX = 5
- For X = minX + 5 To maxX - 5
- If X > 100 Or X < -3 Then Exit For
- iPPx = 32 * ScreenX - 32 + PixelOffsetX
- iPPy = 32 * ScreenY - 32 + PixelOffsetY
-
- 'Object Layer **********************************
- If MapData(X, y).ObjGrh.GrhIndex <> 0 Then
- ' If Y > UserPos.Y Then
- ' Call DDrawTransGrhtoSurfaceAlpha( _
- ' BackBufferSurface, _
- ' MapData(X, Y).ObjGrh, _
- ' iPPx, iPPy, 1, 1)
- ' Else
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- MapData(X, y).ObjGrh, _
- iPPx, iPPy, 1, 1)
- ' End If
- End If
- '***********************************************
- 'Char layer ************************************
- If MapData(X, y).CharIndex <> 0 Then
- tempChar = charlist(MapData(X, y).CharIndex)
- PixelOffsetXTemp = PixelOffsetX
- PixelOffsetYTemp = PixelOffsetY
-
- Moved = 0
- 'If needed, move left and right
- If tempChar.MoveOffset.X <> 0 Then
- tempChar.Body.Walk(tempChar.Heading).Started = 1
- tempChar.Arma.WeaponWalk(tempChar.Heading).Started = 1
- tempChar.Escudo.ShieldWalk(tempChar.Heading).Started = 1
- PixelOffsetXTemp = PixelOffsetXTemp + tempChar.MoveOffset.X
- tempChar.MoveOffset.X = tempChar.MoveOffset.X - (8 * Sgn(tempChar.MoveOffset.X))
- Moved = 1
- End If
- 'If needed, move up and down
- If tempChar.MoveOffset.y <> 0 Then
- tempChar.Body.Walk(tempChar.Heading).Started = 1
- tempChar.Arma.WeaponWalk(tempChar.Heading).Started = 1
- tempChar.Escudo.ShieldWalk(tempChar.Heading).Started = 1
- PixelOffsetYTemp = PixelOffsetYTemp + tempChar.MoveOffset.y
- tempChar.MoveOffset.y = tempChar.MoveOffset.y - (8 * Sgn(tempChar.MoveOffset.y))
- Moved = 1
- End If
- 'If done moving stop animation
- If Moved = 0 And tempChar.Moving = 1 Then
- tempChar.Moving = 0
- tempChar.Body.Walk(tempChar.Heading).FrameCounter = 1
- tempChar.Body.Walk(tempChar.Heading).Started = 0
- tempChar.Arma.WeaponWalk(tempChar.Heading).FrameCounter = 1
- tempChar.Arma.WeaponWalk(tempChar.Heading).Started = 0
- tempChar.Escudo.ShieldWalk(tempChar.Heading).FrameCounter = 1
- tempChar.Escudo.ShieldWalk(tempChar.Heading).Started = 0
- End If
-
- '[ANIM ATAK]
- If tempChar.Arma.WeaponAttack > 0 Then
- tempChar.Arma.WeaponAttack = tempChar.Arma.WeaponAttack - 1
- If tempChar.Arma.WeaponAttack = 0 Then
- tempChar.Arma.WeaponWalk(tempChar.Heading).Started = 0
- End If
- End If
- '[/ANIM ATAK]
-
- 'Dibuja solamente players
- iPPx = ((32 * ScreenX) - 32) + PixelOffsetXTemp
- iPPy = ((32 * ScreenY) - 32) + PixelOffsetYTemp
- If tempChar.Head.Head(tempChar.Heading).GrhIndex <> 0 Or (UCase$(tempChar.Nombre) = UCase$(UserName) And UserNavegando = True) Then
- If Not charlist(MapData(X, y).CharIndex).invisible Or MismoClan(MapData(X, y).CharIndex) = True Or UserCharIndex = MapData(X, y).CharIndex Then
-
- #If SeguridadAlkon Then
- If Not MI(CualMI).IsInvisible(MapData(X, y).CharIndex) Then
- #End If
- '[CUERPO]'
- Call DDrawTransGrhtoSurface(BackBufferSurface, tempChar.Body.Walk(tempChar.Heading), _
- (((32 * ScreenX) - 32) + PixelOffsetXTemp), _
- (((32 * ScreenY) - 32) + PixelOffsetYTemp), _
- 1, 1)
- '[CABEZA]'
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- tempChar.Head.Head(tempChar.Heading), _
- iPPx + tempChar.Body.HeadOffset.X, _
- iPPy + tempChar.Body.HeadOffset.y, _
- 1, 0)
- '[Casco]'
- If tempChar.Casco.Head(tempChar.Heading).GrhIndex <> 0 Then
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- tempChar.Casco.Head(tempChar.Heading), _
- iPPx + tempChar.Body.HeadOffset.X, _
- iPPy + tempChar.Body.HeadOffset.y, _
- 1, 0)
- End If
- '[ARMA]'
- If tempChar.Arma.WeaponWalk(tempChar.Heading).GrhIndex <> 0 Then
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- tempChar.Arma.WeaponWalk(tempChar.Heading), _
- iPPx, iPPy, 1, 1)
- End If
- '[Escudo]'
- If tempChar.Escudo.ShieldWalk(tempChar.Heading).GrhIndex <> 0 Then
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- tempChar.Escudo.ShieldWalk(tempChar.Heading), _
- iPPx, iPPy, 1, 1)
- End If
-
-
- If Nombres Then
- 'ya estoy dibujando SOLO si esta visible
- 'If TempChar.invisible = False And Not MI(CualMI).IsInvisible(MapData(X, Y).CharIndex) Then
- If tempChar.Nombre <> "" Then
- Dim lCenter As Long
- 'Call Dialogos.DrawText(iPPx - 30, iPPy + 60, "mi:" & IIf(MI(CualMI).IsInvisible(MapData(X, Y).CharIndex), "1", "0") & " .i:" & IIf(TempChar.invisible, "1", "0") & " X,Y:" & X & "," & Y, RGB(ColoresPJ(5).r, ColoresPJ(5).G, ColoresPJ(5).B))
- If InStr(tempChar.Nombre, "<") > 0 And InStr(tempChar.Nombre, ">") > 0 Then
- lCenter = (frmMain.TextWidth(Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1)) / 2) - 16
- Dim sClan As String
- sClan = mid(tempChar.Nombre, InStr(tempChar.Nombre, "<"))
-
- Select Case tempChar.priv
- Case 0
- Select Case tempChar.EsStatus
- Case 0
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(48).r, ColoresPJ(48).G, ColoresPJ(48).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(48).r, ColoresPJ(48).G, ColoresPJ(48).b))
- Case 1
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(49).r, ColoresPJ(49).G, ColoresPJ(49).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(49).r, ColoresPJ(49).G, ColoresPJ(49).b))
- Case 2
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(50).r, ColoresPJ(50).G, ColoresPJ(50).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(50).r, ColoresPJ(50).G, ColoresPJ(50).b))
- 'Consejo
- Case 3
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(5).r, ColoresPJ(5).G, ColoresPJ(5).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(5).r, ColoresPJ(5).G, ColoresPJ(5).b))
- 'Consejo caos
- Case 4
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(6).r, ColoresPJ(6).G, ColoresPJ(6).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(6).r, ColoresPJ(6).G, ColoresPJ(6).b))
- End Select
-
- Case 25 'admin
- Call Dialogos.DrawTextBig(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(tempChar.priv).r, ColoresPJ(tempChar.priv).G, ColoresPJ(tempChar.priv).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawTextBig(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(tempChar.priv).r, ColoresPJ(tempChar.priv).G, ColoresPJ(tempChar.priv).b))
- Case Else 'el resto
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, Left(tempChar.Nombre, InStr(tempChar.Nombre, "<") - 1), RGB(ColoresPJ(tempChar.priv).r, ColoresPJ(tempChar.priv).G, ColoresPJ(tempChar.priv).b))
- lCenter = (frmMain.TextWidth(sClan) / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, sClan, RGB(ColoresPJ(tempChar.priv).r, ColoresPJ(tempChar.priv).G, ColoresPJ(tempChar.priv).b))
- End Select
- Else
- lCenter = (frmMain.TextWidth(tempChar.Nombre) / 2) - 16
- Select Case tempChar.priv
- Case 0
- Select Case tempChar.EsStatus
- Case 0
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(48).r, ColoresPJ(48).G, ColoresPJ(48).b))
- Case 1
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(49).r, ColoresPJ(49).G, ColoresPJ(49).b))
- Case 2
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(50).r, ColoresPJ(50).G, ColoresPJ(50).b))
- 'Consejo
- Case 3
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(5).r, ColoresPJ(5).G, ColoresPJ(5).b))
- 'Consejo caos
- Case 4
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(6).r, ColoresPJ(6).G, ColoresPJ(6).b))
- End Select
- Case Else
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(ColoresPJ(tempChar.priv).r, ColoresPJ(tempChar.priv).G, ColoresPJ(tempChar.priv).b))
- End Select
-
- End If
- End If
- 'End If 'enidf nI
- End If
- #If SeguridadAlkon Then
- Else
- Do While True
- Call MsgBox("WOAAAAA CHEATER!!! Ahora te deben estar matando de lo lindo ;)" & vbNewLine & "Aprieta OK para salir", vbCritical + vbOKOnly, ":D")
- Call MsgBox("no, mejor no salimos")
- Loop
- End If 'end if not mi.isi
- #End If
- End If 'end if ~in
-
- If tempChar.priv <> 0 Then
- If tempChar.priv = 1 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(0, 185, 0))
- lCenter = (frmMain.TextWidth("<Game Master>") / 2) - 16
- 'lCenter = Len(TempChar.nombre) * 6.5
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<Game Master>", RGB(0, 185, 0))
- ElseIf tempChar.priv = 2 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(0, 170, 190))
- lCenter = (frmMain.TextWidth("<Game Master>") / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<Game Master>", RGB(0, 170, 190))
- ElseIf tempChar.priv = 3 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(120, 250, 250))
- lCenter = (frmMain.TextWidth("<Game Master>") / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<Game Master>", RGB(120, 250, 250))
- ElseIf tempChar.priv = 5 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(250, 250, 40))
- lCenter = (frmMain.TextWidth("<DGMS>") / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<DGMS>", RGB(250, 250, 40))
- ElseIf tempChar.priv = 4 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(255, 170, 5))
- lCenter = (frmMain.TextWidth("<CGMS>") / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<CGMS>", RGB(225, 170, 5))
- ElseIf tempChar.priv = 6 Then
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 30, tempChar.Nombre, RGB(255, 255, 255))
- lCenter = (frmMain.TextWidth("<Administrador>") / 2) - 16
- Call Dialogos.DrawText(iPPx - lCenter, iPPy + 45, "<Administrador>", RGB(255, 255, 255))
- End If
- End If
-
- If Dialogos.CantidadDialogos > 0 Then
- Call Dialogos.Update_Dialog_Pos( _
- (iPPx + tempChar.Body.HeadOffset.X), _
- (iPPy + tempChar.Body.HeadOffset.y), _
- MapData(X, y).CharIndex)
- End If
-
-
- Else '<-> If TempChar.Head.Head(TempChar.Heading).GrhIndex <> 0 Then
- If Dialogos.CantidadDialogos > 0 Then
- Call Dialogos.Update_Dialog_Pos( _
- (iPPx + tempChar.Body.HeadOffset.X), _
- (iPPy + tempChar.Body.HeadOffset.y), _
- MapData(X, y).CharIndex)
- End If
-
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- tempChar.Body.Walk(tempChar.Heading), _
- iPPx, iPPy, 1, 1)
- End If '<-> If TempChar.Head.Head(TempChar.Heading).GrhIndex <> 0 Then
-
-
- 'Refresh charlist
- charlist(MapData(X, y).CharIndex) = tempChar
-
- 'BlitFX (TM)
- If charlist(MapData(X, y).CharIndex).Fx <> 0 Then
- #If (ConAlfaB = 1) Then
- Call DDrawTransGrhtoSurfaceAlpha( _
- BackBufferSurface, _
- FxData(tempChar.Fx).Fx, _
- iPPx + FxData(tempChar.Fx).OffsetX, _
- iPPy + FxData(tempChar.Fx).OffsetY, _
- 1, 1, MapData(X, y).CharIndex)
- #Else
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- FxData(tempChar.Fx).Fx, _
- iPPx + FxData(tempChar.Fx).OffsetX, _
- iPPy + FxData(tempChar.Fx).OffsetY, _
- 1, 1, MapData(X, y).CharIndex)
- #End If
- End If
- End If '<-> If MapData(X, Y).CharIndex <> 0 Then
- '*************************************************
- 'Layer 3 *****************************************
- If MapData(X, y).Graphic(3).GrhIndex <> 0 Then
- 'Draw
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- MapData(X, y).Graphic(3), _
- ((32 * ScreenX) - 32) + PixelOffsetX, _
- ((32 * ScreenY) - 32) + PixelOffsetY, _
- 1, 1)
- End If
- '************************************************
- ScreenX = ScreenX + 1
- Next X
- ScreenY = ScreenY + 1
- If y >= 100 Or y < 1 Then Exit For
- Next y
-
- If Not bTecho Then
- 'Draw blocked tiles and grid
- ScreenY = 5
- For y = minY + 5 To maxY - 1
- ScreenX = 5
- For X = minX + 5 To maxX
- 'Check to see if in bounds
- If X < 101 And X > 0 And y < 101 And y > 0 Then
- If MapData(X, y).Graphic(4).GrhIndex <> 0 Then
- 'Draw
- Call DDrawTransGrhtoSurface( _
- BackBufferSurface, _
- MapData(X, y).Graphic(4), _
- ((32 * ScreenX) - 32) + PixelOffsetX, _
- ((32 * ScreenY) - 32) + PixelOffsetY, _
- 1, 1)
- End If
- End If
- ScreenX = ScreenX + 1
- Next X
- ScreenY = ScreenY + 1
- Next y
- End If
-
- If bLluvia(UserMap) = 1 Then
- If bRain Then
- 'Figure out what frame to draw
- If llTick < DirectX.TickCount - 50 Then
- iFrameIndex = iFrameIndex + 1
- If iFrameIndex > 7 Then iFrameIndex = 0
- llTick = DirectX.TickCount
- End If
-
- For y = 0 To 4
- For X = 0 To 4
- Call BackBufferSurface.BltFast(LTLluvia(y), LTLluvia(X), SurfaceDB.Surface(5556), RLluvia(iFrameIndex), DDBLTFAST_SRCCOLORKEY + DDBLTFAST_WAIT)
- Next X
- Next y
- End If
- End If
-
-
-
-
- Dim PP As RECT
-
- PP.Left = 0
- PP.Top = 0
- PP.Right = WindowTileWidth * TilePixelWidth
- PP.Bottom = WindowTileHeight * TilePixelHeight
-
- 'Call BackBufferSurface.BltFast(LTLluvia(0) + TilePixelWidth, LTLluvia(0) + TilePixelHeight, SurfaceDB.surface(10000), PP, DDBLTFAST_SRCCOLORKEY + DDBLTFAST_WAIT)
-
- 'EfectoNoche BackBufferSurface
-
- '[USELESS]:El codigo para llamar a la noche, nublado, etc.
- ' If bTecho Then
- ' Dim bbarray() As Byte, nnarray() As Byte
- ' Dim ddsdBB As DDSURFACEDESC2 'backbuffer
- ' Dim ddsdNN As DDSURFACEDESC2 'nnublado
- ' Dim r As RECT, r2 As RECT
- ' Dim retVal As Long
- ' '[LOCK]:BackBufferSurface
- ' BackBufferSurface.GetSurfaceDesc ddsdBB
- ' 'BackBufferSurface.Lock r, ddsdBB, DDLOCK_NOSYSLOCK + DDLOCK_WRITEONLY + DDLOCK_WAIT, 0
- ' BackBufferSurface.Lock r, ddsdBB, DDLOCK_WRITEONLY + DDLOCK_WAIT, 0
- ' BackBufferSurface.GetLockedArray bbarray()
- '' '[LOCK]:BBMask
- '' SurfaceXU(2).GetSurfaceDesc ddsdNN
- '' 'SurfaceXU(2).Lock r2, ddsdNN, DDLOCK_READONLY + DDLOCK_NOSYSLOCK + DDLOCK_WAIT, 0
- '' SurfaceXU(2).Lock r2, ddsdNN, DDLOCK_READONLY + DDLOCK_WAIT, 0
- '' SurfaceXU(2).GetLockedArray nnarray()
- ' '[BLIT]'
- ' 'retVal = BlitNoche(bbarray(0, 0), ddsdBB.lHeight, ddsdBB.lWidth, 0)
- ' 'retval = BlitNublar(bbarray(0, 0), ddsdBB.lHeight, ddsdBB.lWidth)
- ' 'retVal = BlitNublarMMX(bbarray(0, 0), nnarray(0, 0), ddsdBB.lHeight, ddsdBB.lWidth, ddsdBB.lPitch, ddsdNN.lHeight, ddsdNN.lWidth, ddsdNN.lPitch)
- ' '[UNLOCK]'
- ' BackBufferSurface.Unlock r
- ' 'SurfaceXU(2).Unlock r2
- ' '[END]'
- ' If retVal = -1 Then MsgBox "error!"
- ' End If
- '[END]'
- End Sub
Almenoz que me digan donde esta el problema que yo lo arreglo.