Khalem: Lod ejamos más entendible...
bueno esto lo ebcontre en el foro de un amigo
en el cliente
Busquen en mod_tcp del cliente esto:
y debajo de eso o encima pongan:
bueno en el cliente ya terminamos o eso creo si tienen algun fallo o funciona mal avisenme.
ahora en el server
E ADJUNTADO EL MODCASAS.BAS LO AGREGAN AL PROYECTO Y LISTO, SIGAMOS:
en server.ini debajo de serverip añadan esto
Código:
NumCasas=0
en el modulo ES(fileio.bas) busken
y encima de esto pongan
en usuarios.bas
BUSQUEN EL Sub UpdateUserMap BUENO ESTO ES MEDIO LIOSO PERO AVER COMO LO APAÑO,BUENO COPIEN EL SUB ENTERO YO USO EL DE LA 99Z NO SE SI EN LA 0112 O 3 AÑADIERON ALGO A ESE SUB ESPERO K NO SI LO AÑADIERON APAÑENSE EN ARREGLARLO , SORRY
EL 838 ESE ES EL NUMERO DEL OBJ.DAT DEL OBJETO DE DECORACION AL IGUAL K EL 843 Y 844 ESTO TMB ME REFIERO EN EL MODCASAS.BAS K TMB ESTA LO MISMO
SIGAMOS
COMANDO PARA QUE LOS GMS DIOSES CONSTRUYAN LA CASA SIN NECESITAR MATERIALES
AHORA EN INVUSUARIO.BAS VAYAN A: Case OBJTYPE_GUITA
Y AÑADAN
EN EL OBJ.DAT EL OBJ TYPE 46 CON LAS KASAS
[OBJ838]
Name=Mueble rustico
Info=Mueble
GrhIndex=593
Objtype=20
valor=500
Agarrable=1
[OBJ839]
Name=Plataforma para construir casas
Info=Aqui podrás construir una casa
GrhIndex=593
Objtype=20
Agarrable=1
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ840]
Name=Kit de Casa Marron
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=1
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ841]
Name=Kit de Casa Azul
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=2
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ842]
Name=Kit de Casa Roja
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=3
valor=300000
SkCarpinteria=100
Madera=40000
ESTOS SON LOS DATS OBLIGATORIOS TIENEN KE AÑADIR A CARPINTERIA PARA HACER UN KIT DE KASA LUEGO PARA HACER UNA CASA CUANDO TENGAS EL KIT TE VAS A UN MAPA NO SEGURO I DODNE AYA UN CIMIENTO EN EL SUELO SE PONEN ENCIMA Y USAN EL KIT Y SE CREARA UNA CASA ACE MUCHO TIEMPO K NO TOKO ESTE CODIGO Y NO SE SI SE PUSO BIEN AHORA PASO A EXPLICAR OTRAS COSITAS, EN EL MODCASAS.BAS AI K CAMBIAR LOS NUMEROS DE ESOS OBJ.DAT PARA K LOS LEA CON LOS NUMEROS K USTEDES KIERAN,
TMB EN EL MODKASAS.BAS ARRIBA EN UNA LINEA
VIERON ESE 839 ES EL OBJ PLATAFORMA O CIMIENTO K DEBE ESTAR EN EL PISO DE UN MAPA PARA PODER ACER LA KASA USTEDES PONGAN EL NUMERO DE SU CIMIENTO DEL OBJ.DAT K TENGAN Y YA ESTA , POSIBLEMENTE PONGA MAS CODIGOS SI TENGO GANAS
YA K NO USO NINGUN CODIGO KE POSTEAN XK PUEOD HACERLO YO O EL YIND
PERO MUY BUENO EL FORO Y ACUERDATE LO K TE DIJE MR MAN XD
FIJAROS EN LOS DATS QUE PUSE DE LOS KITS 2 Y 3 KE SON SUBTIPO=1 Y 2 ESO ES POR SI METEIS OTROS GRAFICOS DE KASAS EN EL MODCASAS.BAS I EN EL OTOR LADO DONDE TMB ESTA
Bueno Lo Que Hace Este Code Es Tu Con Tu Talador Talas La Madera Que Le Pongas Para Hacer Un Kit De Kasa Con Carpintero Creas Tu Kit Vas A Un Mapa Zona Residencial Osea Un Mapa No Seguro Ke Ayas Mapeado Vos Especialmente Para Colocar Cimientos Con El Editor Vas Con Tu Pj I El Kit De Kasa Te Posas Encima Del Cimiento Y Usas Tu Kit Automaticamente Se Crea La Casa Entera Con Su Propia Llave K Se Va A Tu Inv O Al Piso Si No Tienes Espacio I Crea Un Mueble De Adorno
Esa Kasa Es Como Las De Nix Y Dsi Tas Dentro No Te Poden Atacar Bueno Lo Que Hace Es Mirar El Obj.dat El Numobj=x I Crea Los Datos De Kada Casa A Partir Del Numero Ultimo De Obj K Aiuga I Las Llaves Las Crea Apartir De La Clavbe=1000 Adelante Y Otra Cosita La Llave 10 De La Kasa De Bander Tiene El Mismo Clave= Ke La Boveda De Bander No Se Si Savian Este Bug Lo Digo Para Ke Lo Cambien Asi Ningun Vivo Con La Llave 10 De Bander Roba La Boveda De Bander
bueno esto lo ebcontre en el foro de un amigo
en el cliente
Busquen en mod_tcp del cliente esto:
Código:
Case "NENE" ' >>>>> Nro de Personajes :: NENE
y debajo de eso o encima pongan:
Código:
'[NeoSefirot]
Case "CASA"
Rdata = Right$(Rdata, Len(Rdata) - 4)
X = Val(ReadField(1, Rdata, 45))
Y = Val(ReadField(2, Rdata, 45))
Call InitGrh(MapData(X, Y - 3).Graphic(3), Val(ReadField(4, Rdata, 45)))
Call InitGrh(MapData(X, Y + 3).Graphic(3), Val(ReadField(6, Rdata, 45)))
Call InitGrh(MapData(X, Y + 2).Graphic(3), Val(ReadField(5, Rdata, 45)))
Call InitGrh(MapData(X, Y + 1).Graphic(4), Val(ReadField(3, Rdata, 45)))
Slot = 0
loopc = 1
For k = 1 To 5
For i = 1 To 7
Call InitGrh(MapData(X - 4 + i, Y - 3 + k).Graphic(1), 5500 + loopc + Slot)
MapData(X - 4 + i, Y - 3 + k).Trigger = 4
loopc = loopc + 1
If loopc >= 2 Then loopc = 0
Next i
loopc = 1
Slot = Slot + 2
If Slot >= 4 Then Slot = 0
Next k
For i = 0 To 8
MapData(X - 4 + i, Y - 3).Blocked = 1
Next i
For i = 0 To 8
MapData(X - 4 + i, Y + 2).Blocked = 1
Next i
For i = 1 To 5
MapData(X - 4, Y - 3 + i).Blocked = 1
Next i
For i = 1 To 5
MapData(X - 4 + 8, Y - 3 + i).Blocked = 1
Next i
MapData(X - 4 + 7, Y + 3).Blocked = 1
MapData(X - 4 + 1, Y + 3).Blocked = 1
MapData(X - 4 + 2, Y + 3).Blocked = 1
MapData(X - 4 + 3, Y + 3).Blocked = 1
'[/neosefirot]
bueno en el cliente ya terminamos o eso creo si tienen algun fallo o funciona mal avisenme.
ahora en el server
E ADJUNTADO EL MODCASAS.BAS LO AGREGAN AL PROYECTO Y LISTO, SIGAMOS:
en server.ini debajo de serverip añadan esto
Código:
NumCasas=0
en el modulo ES(fileio.bas) busken
Código:
ArmaduraCaos1 = val(GetVar(IniPath & "Server.ini", "INIT", "ArmaduraCaos1"))
Código:
'[neo]
NumCasas = val(GetVar(IniPath & "Server.ini", "INIT", "NumCasas"))
'[neo]
en usuarios.bas
BUSQUEN EL Sub UpdateUserMap BUENO ESTO ES MEDIO LIOSO PERO AVER COMO LO APAÑO,BUENO COPIEN EL SUB ENTERO YO USO EL DE LA 99Z NO SE SI EN LA 0112 O 3 AÑADIERON ALGO A ESE SUB ESPERO K NO SI LO AÑADIERON APAÑENSE EN ARREGLARLO , SORRY
Código:
Sub UpdateUserMap(ByVal UserIndex As Integer)
Dim Map As Integer
Dim x As Integer
Dim y As Integer
Map = UserList(UserIndex).Pos.Map
Call DiaNocheUS(UserIndex, False, EnCueva(UserIndex))
For y = YMinMapSize To YMaxMapSize
For x = XMinMapSize To XMaxMapSize
If MapData(Map, x, y).UserIndex > 0 And UserIndex <> MapData(Map, x, y).UserIndex Then
Call MakeUserChar(ToIndex, UserIndex, 0, MapData(Map, x, y).UserIndex, Map, x, y)
If UserList(MapData(Map, x, y).UserIndex).flags.Invisible = 1 Then Call SendData(ToIndex, UserIndex, 0, "NOVER" & UserList(MapData(Map, x, y).UserIndex).Char.CharIndex & ",1")
End If
If MapData(Map, x, y).NpcIndex > 0 Then
Call MakeNPCChar(ToIndex, UserIndex, 0, MapData(Map, x, y).NpcIndex, Map, x, y)
End If
If MapData(Map, x, y).OBJInfo.ObjIndex > 0 Then
'[neo]
If MapData(Map, x, y).OBJInfo.ObjIndex = 838 Or MapData(Map, x, y).OBJInfo.ObjIndex = 843 Or MapData(Map, x, y).OBJInfo.ObjIndex = 844 Then
Dim CTecho As Integer, CArriba As Integer, CMedio As Integer, CAbajo As Integer
Select Case ObjData(MapData(Map, x, y).OBJInfo.ObjIndex).SubTipo
Case 1 'CASA NORMAL
CTecho = 5591
CArriba = 5590
CMedio = 5589
CAbajo = 5588
Case 2 'AGREGAR OTRA CASA!!! estos son los Grh
CTecho = 5591
CArriba = 5590
CMedio = 5589
CAbajo = 5588
Case 3 'AGREGAR OTRA CASA!!! estos son los Grh
CTecho = 5591
CArriba = 5590
CMedio = 5589
CAbajo = 5588
Case Else
CTecho = 5591
CArriba = 5590
CMedio = 5589
CAbajo = 5588
End Select
Call SendData(ToMap, 0, Map, "CASA" & x & "-" & y & "-" & CTecho & "-" & CArriba & "-" & CMedio & "-" & CAbajo)
End If
Call MakeObj(ToIndex, UserIndex, 0, MapData(Map, x, y).OBJInfo, Map, x, y)
If ObjData(MapData(Map, x, y).OBJInfo.ObjIndex).ObjType = OBJTYPE_PUERTAS Then
Call Bloquear(ToIndex, UserIndex, 0, Map, x, y, MapData(Map, x, y).Blocked)
Call Bloquear(ToIndex, UserIndex, 0, Map, x - 1, y, MapData(Map, x - 1, y).Blocked)
End If
End If
Next x
Next y
End Sub
EL 838 ESE ES EL NUMERO DEL OBJ.DAT DEL OBJETO DE DECORACION AL IGUAL K EL 843 Y 844 ESTO TMB ME REFIERO EN EL MODCASAS.BAS K TMB ESTA LO MISMO
SIGAMOS
Código:
If UCase$(Left$(rdata, 7)) = "/CONSTR" Then
Call ConstruirCasa(UserIndex, UserList(UserIndex).Pos, 1)
End If
COMANDO PARA QUE LOS GMS DIOSES CONSTRUYAN LA CASA SIN NECESITAR MATERIALES
AHORA EN INVUSUARIO.BAS VAYAN A: Case OBJTYPE_GUITA
Y AÑADAN
Código:
Case 46
'[neo]
If UserList(UserIndex).flags.Muerto = 1 Then
Call SendData(ToIndex, UserIndex, 0, "||¡¡Estas muerto!! Solo podes usar items cuando estas vivo. " & FONTTYPE_INFO)
Exit Sub
End If
If ConstruirCasa(UserIndex, UserList(UserIndex).Pos, Obj.SubTipo) Then
Call SendData(ToIndex, UserIndex, 0, "||¡¡Hás construido una casa!!" & FONTTYPE_INFO)
'Quitamos del inv el item
Call QuitarUserInvItem(UserIndex, Slot, 1)
End If
EN EL OBJ.DAT EL OBJ TYPE 46 CON LAS KASAS
[OBJ838]
Name=Mueble rustico
Info=Mueble
GrhIndex=593
Objtype=20
valor=500
Agarrable=1
[OBJ839]
Name=Plataforma para construir casas
Info=Aqui podrás construir una casa
GrhIndex=593
Objtype=20
Agarrable=1
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ840]
Name=Kit de Casa Marron
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=1
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ841]
Name=Kit de Casa Azul
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=2
valor=300000
SkCarpinteria=100
Madera=40000
[OBJ842]
Name=Kit de Casa Roja
Info=Para hacer casas
GrhIndex=593
Objtype=46
SubTipo=3
valor=300000
SkCarpinteria=100
Madera=40000
ESTOS SON LOS DATS OBLIGATORIOS TIENEN KE AÑADIR A CARPINTERIA PARA HACER UN KIT DE KASA LUEGO PARA HACER UNA CASA CUANDO TENGAS EL KIT TE VAS A UN MAPA NO SEGURO I DODNE AYA UN CIMIENTO EN EL SUELO SE PONEN ENCIMA Y USAN EL KIT Y SE CREARA UNA CASA ACE MUCHO TIEMPO K NO TOKO ESTE CODIGO Y NO SE SI SE PUSO BIEN AHORA PASO A EXPLICAR OTRAS COSITAS, EN EL MODCASAS.BAS AI K CAMBIAR LOS NUMEROS DE ESOS OBJ.DAT PARA K LOS LEA CON LOS NUMEROS K USTEDES KIERAN,
Código:
Case 1
MiObj.ObjIndex = 838'ES EL OBJ DECORATIVO K KERES K APAREZCA DENTRO LA KASA
Case 2
MiObj.ObjIndex = 843'OTRO OBJETO DECORATIVO YO PONDRIA EL MISMO SIEMPRE
Case 3
MiObj.ObjIndex = 844' ESTO LO MISMO K EL DE ARRIBA
Case Else
MiObj.ObjIndex = 838'Y ESTE ES POR SI FALLA K PONGA ESTE <!-- sXD --><img src=\"{SMILIES_PATH}/icon_xd.gif\" alt=\"XD\" title=\"XD\" /><!-- sXD -->
TMB EN EL MODKASAS.BAS ARRIBA EN UNA LINEA
Código:
If MapData(Pos.Map, Pos.x, Pos.y).OBJInfo.ObjIndex <> 839 Then
Call SendData(ToIndex, UserIndex, 0, "||Aqui no puedes construir una casa, para eso debes ir a un lugar residencial." & FONTTYPE_INFO)
Exit Function
End If
VIERON ESE 839 ES EL OBJ PLATAFORMA O CIMIENTO K DEBE ESTAR EN EL PISO DE UN MAPA PARA PODER ACER LA KASA USTEDES PONGAN EL NUMERO DE SU CIMIENTO DEL OBJ.DAT K TENGAN Y YA ESTA , POSIBLEMENTE PONGA MAS CODIGOS SI TENGO GANAS
FIJAROS EN LOS DATS QUE PUSE DE LOS KITS 2 Y 3 KE SON SUBTIPO=1 Y 2 ESO ES POR SI METEIS OTROS GRAFICOS DE KASAS EN EL MODCASAS.BAS I EN EL OTOR LADO DONDE TMB ESTA
Bueno Lo Que Hace Este Code Es Tu Con Tu Talador Talas La Madera Que Le Pongas Para Hacer Un Kit De Kasa Con Carpintero Creas Tu Kit Vas A Un Mapa Zona Residencial Osea Un Mapa No Seguro Ke Ayas Mapeado Vos Especialmente Para Colocar Cimientos Con El Editor Vas Con Tu Pj I El Kit De Kasa Te Posas Encima Del Cimiento Y Usas Tu Kit Automaticamente Se Crea La Casa Entera Con Su Propia Llave K Se Va A Tu Inv O Al Piso Si No Tienes Espacio I Crea Un Mueble De Adorno
