[APORTE] Luces En Items v2 IAO CLON
4 participantes
Página 1 de 1.
[APORTE] Luces En Items v2 IAO CLON
Bueno primero lo que tienen que hacer es crear un modulo llamado: LuzItem
en el modulo ponemos
Call CargarCuerpos
y
abajo ponemos
Call ObjLuz
luego Buscamos
y en el modulo de clase ponemos :
Todo fue gracias a MAYCO Y SDERTY !!! SON UNOS CAPOS DE LA VIDA
en el modulo ponemos
- Código:
Option Explicit
Public Const NumItemsLuz As Byte = 2 'Numeros de items con luz
Public GrhItemLuz(1 To NumItemsLuz) As Integer
Function TieneLuz(ByVal X As Byte, ByVal Y As Byte)
'**************Autor: Nait(Nicolás Pedetti)**************************
Dim i As Byte
For i = 1 To NumItemsLuz
If GrhItemLuz(i) = MapData(X, Y).ObjGrh.grhindex And MapData(X, Y).OBJInfo.TieneLuz = 0 Then
MapData(X, Y).OBJInfo.TieneLuz = 1
Light.Create_Light_To_Map X, Y, 3, 255, 255, 255
End If
Next i
End Function
Function DeletLuz(ByVal X As Byte, ByVal Y As Byte)
'**************Autor: Nait(Nicolás Pedetti)**************************
Dim i As Byte
For i = 1 To NumItemsLuz
If GrhItemLuz(i) = MapData(X, Y).ObjGrh.grhindex And MapData(X, Y).OBJInfo.TieneLuz = 1 Then
Light.Delete_Light_To_Map X, Y
End If
Next i
End Function
Sub ObjLuz()
'**************Autor: Nait(Nicolás Pedetti)**************************
GrhItemLuz(1) = 1521 'Fogata
GrhItemLuz(2) = 510 'Daga comun
End Sub
Call CargarCuerpos
y
abajo ponemos
Call ObjLuz
luego Buscamos
- Código:
Private Sub HandleObjectDelete()
- Código:
Dim X As Byte
Dim Y As Byte
X = incomingData.ReadByte()
Y = incomingData.ReadByte()
- Código:
DeletLuz X, Y
- Código:
Call Draw_Grh(.ObjGrh, PixelOffsetXTemp, PixelOffsetYTemp
- Código:
TieneLuz X, Y
y en el modulo de clase ponemos :
- Código:
Option Base 0
Private Type tLight
RGBcolor As D3DCOLORVALUE
active As Boolean
map_x As Byte
map_y As Byte
range As Byte
End Type
Private light_list() As tLight
Private NumLights As Byte
Public Function Create_Light_To_Map(ByVal map_x As Byte, ByVal map_y As Byte, Optional range As Byte = 3, Optional ByVal red As Byte = 255, Optional ByVal green = 255, Optional ByVal blue As Byte = 255)
NumLights = NumLights + 1
ReDim Preserve light_list(1 To NumLights) As tLight
'Le damos color
light_list(NumLights).RGBcolor.r = red
light_list(NumLights).RGBcolor.g = green
light_list(NumLights).RGBcolor.b = blue
'Alpha (Si borras esto RE KB!!)
light_list(NumLights).RGBcolor.A = 255
'Un rango determinado
light_list(NumLights).range = range
'La activamos para que se pueda renderizar
light_list(NumLights).active = True
'Pos en el mapa
light_list(NumLights).map_x = map_x
light_list(NumLights).map_y = map_y
Call LightRender(NumLights)
End Function
Public Function Delete_Light_To_Map(ByVal X As Byte, ByVal Y As Byte)
Dim i As Long
For i = 1 To NumLights
If light_list(i).map_x = X And light_list(i).map_y = Y Then
Delete_Light_To_Index i
End If
Next i
End Function
Public Function Delete_Light_To_Index(ByVal light_index As Byte)
Dim min_x As Integer
Dim min_y As Integer
Dim max_x As Integer
Dim max_y As Integer
Dim Ya As Integer
Dim Xa As Integer
light_list(light_index).active = False
min_x = light_list(light_index).map_x - light_list(light_index).range
max_x = light_list(light_index).map_x + light_list(light_index).range
min_y = light_list(light_index).map_y - light_list(light_index).range
max_y = light_list(light_index).map_y + light_list(light_index).range
For Ya = min_y To max_y
For Xa = min_x To max_x
If InMapBounds(Xa, Ya) Then
MapData(Xa, Ya).light_value(0) = 0
MapData(Xa, Ya).light_value(1) = 0
MapData(Xa, Ya).light_value(2) = 0
MapData(Xa, Ya).light_value(3) = 0
End If
Next Xa
Next Ya
End Function
Private Function LightCalculate(ByVal cRadio As Integer, ByVal LightX As Integer, ByVal LightY As Integer, ByVal XCoord As Integer, ByVal YCoord As Integer, TileLight As Long, LightColor As D3DCOLORVALUE, AmbientColor As D3DCOLORVALUE) As Long
Dim XDist As Single
Dim YDist As Single
Dim VertexDist As Single
Dim pRadio As Integer
Dim CurrentColor As D3DCOLORVALUE
pRadio = cRadio * 32
XDist = LightX + 16 - XCoord
YDist = LightY + 16 - YCoord
VertexDist = Sqr(XDist * XDist + YDist * YDist)
If VertexDist <= pRadio Then
Call D3DXColorLerp(CurrentColor, LightColor, AmbientColor, VertexDist / pRadio)
LightCalculate = D3DColorXRGB(Round(CurrentColor.r), Round(CurrentColor.g), Round(CurrentColor.b))
'If TileLight > LightCalculate Then LightCalculate = TileLight
Else
LightCalculate = TileLight
End If
End Function
Private Sub LightRender(ByVal light_index As Integer)
If light_index = 0 Then Exit Sub
If light_list(light_index).active = False Then Exit Sub
Dim min_x As Integer
Dim min_y As Integer
Dim max_x As Integer
Dim max_y As Integer
Dim color As Long
Dim Ya As Integer
Dim Xa As Integer
Dim TileLight As D3DCOLORVALUE
Dim AmbientColor As D3DCOLORVALUE
Dim LightColor As D3DCOLORVALUE
Dim XCoord As Integer
Dim YCoord As Integer
AmbientColor.r = 128
AmbientColor.g = 128
AmbientColor.b = 128
LightColor = light_list(light_index).RGBcolor
min_x = light_list(light_index).map_x - light_list(light_index).range
max_x = light_list(light_index).map_x + light_list(light_index).range
min_y = light_list(light_index).map_y - light_list(light_index).range
max_y = light_list(light_index).map_y + light_list(light_index).range
For Ya = min_y To max_y
For Xa = min_x To max_x
If InMapBounds(Xa, Ya) Then
XCoord = Xa * 32
YCoord = Ya * 32
MapData(Xa, Ya).light_value(1) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(1), LightColor, AmbientColor)
XCoord = Xa * 32 + 32
YCoord = Ya * 32
MapData(Xa, Ya).light_value(3) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(3), LightColor, AmbientColor)
XCoord = Xa * 32
YCoord = Ya * 32 + 32
MapData(Xa, Ya).light_value(0) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(0), LightColor, AmbientColor)
XCoord = Xa * 32 + 32
YCoord = Ya * 32 + 32
MapData(Xa, Ya).light_value(2) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(2), LightColor, AmbientColor)
End If
Next Xa
Next Ya
End Sub
- Código:
Public Audio As New clsAudio
- Código:
Public Light As New clsLight
- Código:
Sub Main()
- Código:
Set Light = New clsLight
Todo fue gracias a MAYCO Y SDERTY !!! SON UNOS CAPOS DE LA VIDA
Última edición por Saurus el Sáb Ago 31, 2013 8:18 pm, editado 3 veces
Zenitram- Aportes : 10
Mensajes : 65
Puntos : 130
Edad : 23
Re: [APORTE] Luces En Items v2 IAO CLON
Se agradece por traerlo al foro. No es nada de otro mundo pero esta muy bien (De rango pone un 2 Sos un asesino poniendo 3)
Sderty- Aportes : 13
Mensajes : 44
Puntos : 75
Edad : 27
Localización : Caba Flores.-
Re: [APORTE] Luces En Items v2 IAO CLON
Me tirar error al compilar acá:
"Method or data member not found"
"Method or data member not found"
Rydzek- Aportes : 4
Mensajes : 25
Puntos : 39
Re: [APORTE] Luces En Items v2 IAO CLON
hiciste todo primero
Zenitram- Aportes : 10
Mensajes : 65
Puntos : 130
Edad : 23
Re: [APORTE] Luces En Items v2 IAO CLON
Te falto.-
- Código:
Buscan
Public Type Obj
Abajo
TieneLuz As Byte
Sderty- Aportes : 13
Mensajes : 44
Puntos : 75
Edad : 27
Localización : Caba Flores.-
Re: [APORTE] Luces En Items v2 IAO CLON
Saurus escribió:Bueno primero lo que tienen que hacer es crear un modulo llamado: LuzItem
en el modulo ponemosluego buscarmos:
- Código:
Option Explicit
Public Const NumItemsLuz As Byte = 2 'Numeros de items con luz
Public GrhItemLuz(1 To NumItemsLuz) As Integer
Function TieneLuz(ByVal X As Byte, ByVal Y As Byte)
'**************Autor: Nait(Nicolás Pedetti)**************************
Dim i As Byte
For i = 1 To NumItemsLuz
If GrhItemLuz(i) = MapData(X, Y).ObjGrh.grhindex And MapData(X, Y).OBJInfo.TieneLuz = 0 Then
MapData(X, Y).OBJInfo.TieneLuz = 1
Light.Create_Light_To_Map X, Y, 3, 255, 255, 255
End If
Next i
End Function
Function DeletLuz(ByVal X As Byte, ByVal Y As Byte)
'**************Autor: Nait(Nicolás Pedetti)**************************
Dim i As Byte
For i = 1 To NumItemsLuz
If GrhItemLuz(i) = MapData(X, Y).ObjGrh.grhindex And MapData(X, Y).OBJInfo.TieneLuz = 1 Then
Light.Delete_Light_To_Map X, Y
End If
Next i
End Function
Sub ObjLuz()
'**************Autor: Nait(Nicolás Pedetti)**************************
GrhItemLuz(1) = 1521 'Fogata
GrhItemLuz(2) = 510 'Daga comun
End Sub
Call CargarCuerpos
y
abajo ponemos
Call ObjLuz
luego Buscamosy abajo de
- Código:
Private Sub HandleObjectDelete()
ponemos
- Código:
Dim X As Byte
Dim Y As Byte
X = incomingData.ReadByte()
Y = incomingData.ReadByte()despues buscamos:
- Código:
DeletLuz X, Y
y abajo ponemos
- Código:
Call Draw_Grh(.ObjGrh, PixelOffsetXTemp, PixelOffsetYTemp
luego creamos un modulo de clase llamado : clsLight
- Código:
TieneLuz X, Y
y en el modulo de clase ponemos :luego buscan
- Código:
Option Base 0
Private Type tLight
RGBcolor As D3DCOLORVALUE
active As Boolean
map_x As Byte
map_y As Byte
range As Byte
End Type
Private light_list() As tLight
Private NumLights As Byte
Public Function Create_Light_To_Map(ByVal map_x As Byte, ByVal map_y As Byte, Optional range As Byte = 3, Optional ByVal red As Byte = 255, Optional ByVal green = 255, Optional ByVal blue As Byte = 255)
NumLights = NumLights + 1
ReDim Preserve light_list(1 To NumLights) As tLight
'Le damos color
light_list(NumLights).RGBcolor.r = red
light_list(NumLights).RGBcolor.g = green
light_list(NumLights).RGBcolor.b = blue
'Alpha (Si borras esto RE KB!!)
light_list(NumLights).RGBcolor.A = 255
'Un rango determinado
light_list(NumLights).range = range
'La activamos para que se pueda renderizar
light_list(NumLights).active = True
'Pos en el mapa
light_list(NumLights).map_x = map_x
light_list(NumLights).map_y = map_y
Call LightRender(NumLights)
End Function
Public Function Delete_Light_To_Map(ByVal X As Byte, ByVal Y As Byte)
Dim i As Long
For i = 1 To NumLights
If light_list(i).map_x = X And light_list(i).map_y = Y Then
Delete_Light_To_Index i
End If
Next i
End Function
Public Function Delete_Light_To_Index(ByVal light_index As Byte)
Dim min_x As Integer
Dim min_y As Integer
Dim max_x As Integer
Dim max_y As Integer
Dim Ya As Integer
Dim Xa As Integer
light_list(light_index).active = False
min_x = light_list(light_index).map_x - light_list(light_index).range
max_x = light_list(light_index).map_x + light_list(light_index).range
min_y = light_list(light_index).map_y - light_list(light_index).range
max_y = light_list(light_index).map_y + light_list(light_index).range
For Ya = min_y To max_y
For Xa = min_x To max_x
If InMapBounds(Xa, Ya) Then
MapData(Xa, Ya).light_value(0) = 0
MapData(Xa, Ya).light_value(1) = 0
MapData(Xa, Ya).light_value(2) = 0
MapData(Xa, Ya).light_value(3) = 0
End If
Next Xa
Next Ya
End Function
Private Function LightCalculate(ByVal cRadio As Integer, ByVal LightX As Integer, ByVal LightY As Integer, ByVal XCoord As Integer, ByVal YCoord As Integer, TileLight As Long, LightColor As D3DCOLORVALUE, AmbientColor As D3DCOLORVALUE) As Long
Dim XDist As Single
Dim YDist As Single
Dim VertexDist As Single
Dim pRadio As Integer
Dim CurrentColor As D3DCOLORVALUE
pRadio = cRadio * 32
XDist = LightX + 16 - XCoord
YDist = LightY + 16 - YCoord
VertexDist = Sqr(XDist * XDist + YDist * YDist)
If VertexDist <= pRadio Then
Call D3DXColorLerp(CurrentColor, LightColor, AmbientColor, VertexDist / pRadio)
LightCalculate = D3DColorXRGB(Round(CurrentColor.r), Round(CurrentColor.g), Round(CurrentColor.b))
'If TileLight > LightCalculate Then LightCalculate = TileLight
Else
LightCalculate = TileLight
End If
End Function
Private Sub LightRender(ByVal light_index As Integer)
If light_index = 0 Then Exit Sub
If light_list(light_index).active = False Then Exit Sub
Dim min_x As Integer
Dim min_y As Integer
Dim max_x As Integer
Dim max_y As Integer
Dim color As Long
Dim Ya As Integer
Dim Xa As Integer
Dim TileLight As D3DCOLORVALUE
Dim AmbientColor As D3DCOLORVALUE
Dim LightColor As D3DCOLORVALUE
Dim XCoord As Integer
Dim YCoord As Integer
AmbientColor.r = 128
AmbientColor.g = 128
AmbientColor.b = 128
LightColor = light_list(light_index).RGBcolor
min_x = light_list(light_index).map_x - light_list(light_index).range
max_x = light_list(light_index).map_x + light_list(light_index).range
min_y = light_list(light_index).map_y - light_list(light_index).range
max_y = light_list(light_index).map_y + light_list(light_index).range
For Ya = min_y To max_y
For Xa = min_x To max_x
If InMapBounds(Xa, Ya) Then
XCoord = Xa * 32
YCoord = Ya * 32
MapData(Xa, Ya).light_value(1) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(1), LightColor, AmbientColor)
XCoord = Xa * 32 + 32
YCoord = Ya * 32
MapData(Xa, Ya).light_value(3) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(3), LightColor, AmbientColor)
XCoord = Xa * 32
YCoord = Ya * 32 + 32
MapData(Xa, Ya).light_value(0) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(0), LightColor, AmbientColor)
XCoord = Xa * 32 + 32
YCoord = Ya * 32 + 32
MapData(Xa, Ya).light_value(2) = LightCalculate(light_list(light_index).range, light_list(light_index).map_x * 32, light_list(light_index).map_y * 32, XCoord, YCoord, MapData(Xa, Ya).light_value(2), LightColor, AmbientColor)
End If
Next Xa
Next Ya
End Suby abajo agregan
- Código:
Public Audio As New clsAudio
- Código:
Public Light As New clsLight
por ultimo busquen
- Código:
Busca
Public Type Obj
Abajo
TieneLuz As Byte 'Sderty Madafacay Abajo de Set Audio = New
- Código:
Sub Main()
y listo les quedaria asi
- Código:
Set Light = New clsLight
Todo fue gracias a MAYCO Y SDERTY !!! SON UNOS CAPOS DE LA VIDA
Sderty- Aportes : 13
Mensajes : 44
Puntos : 75
Edad : 27
Localización : Caba Flores.-
Re: [APORTE] Luces En Items v2 IAO CLON
cambie la foto por q esa era mejor :3
y aparte no decia gracias sderty
y aparte no decia gracias sderty
Zenitram- Aportes : 10
Mensajes : 65
Puntos : 130
Edad : 23
Re: [APORTE] Luces En Items v2 IAO CLON
Yo no lo agregue ¬¬
Sderty- Aportes : 13
Mensajes : 44
Puntos : 75
Edad : 27
Localización : Caba Flores.-
Re: [APORTE] Luces En Items v2 IAO CLON
eso ya esta editato en este post
https://todo-argentum.foroargentina.net/t63-aporte-luces-en-items-con-un-par-de-items-ya-configurados-iao-clon
https://todo-argentum.foroargentina.net/t63-aporte-luces-en-items-con-un-par-de-items-ya-configurados-iao-clon
Zenitram- Aportes : 10
Mensajes : 65
Puntos : 130
Edad : 23
Re: [APORTE] Luces En Items v2 IAO CLON
Dije rederendizar , que la luz quede mejor.Saurus escribió:eso ya esta editato en este post
https://todo-argentum.foroargentina.net/t63-aporte-luces-en-items-con-un-par-de-items-ya-configurados-iao-clon
compara
Con
Re: [APORTE] Luces En Items v2 IAO CLON
ahh y como haces ?
Zenitram- Aportes : 10
Mensajes : 65
Puntos : 130
Edad : 23
Temas similares
» [APORTE] Luces En Items con un par de items ya configurados IAO CLON
» [ SOLUCIONADO ] Como le pongo las luces en los items en iao clon
» [Aporte] Items no caen en zonas seguras
» [Aporte] IAO clon con Inframundo
» [Aporte] Banco con Opciones Style IAO (Adaptado Para IAO CLON)
» [ SOLUCIONADO ] Como le pongo las luces en los items en iao clon
» [Aporte] Items no caen en zonas seguras
» [Aporte] IAO clon con Inframundo
» [Aporte] Banco con Opciones Style IAO (Adaptado Para IAO CLON)
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.