[Aportes indexados] Clases Contructoras Elijen Cantidad

Estado
Cerrado para nuevas respuestas.

DarkThom

Oráculo Lvl 3
[Servidor/Cliente] Clases Contructoras Elijen Cantidad

Funcionamiento: Al crear con carpinteria o herreria ponemos la cantidad en un text box asi se ahorra el tiempo

Testeado en 0.11.2 y 9.9z

Carpintero


Cliente

En el frmCarp Buscamos

[vb]
Private Sub Command3_Click()
On Error Resume Next
 
Call SendData("CNC" & ObjCarpintero(lstArmas.ListIndex))
 
Unload Me
End Sub[/vb]

Y Lo Reemplazamos por

[vb]
Private Sub Command1_Click()
On Error Resume Next
Dim Cantidad As String
Cantidad = txtCantidad.Text
 
Call SendData("CNC" & ObjCarpintero(lstArmas.ListIndex) & " " & Cantidad)
Unload Me
 
End Sub[/vb]

Y Si No Queremos Que Pongan Letras en el TectBox Ponemos

[vb]
Private Sub txtCantidad_Change()
 
If Val(txtCantidad.Text) < 0 Then
    txtCantidad.Text = 1
End If
 
If Val(txtCantidad.Text) > MAX_INVENTORY_OBJS Then
    txtCantidad.Text = 1
End If
 
If Not IsNumeric(txtCantidad.Text) Then txtCantidad.Text = "1"
 
End Sub[/vb]

Código:
Despues Agregamos en el frmCarp un TextBox Llamado "txtCantidad.Text"

Servidor

Buscamos

[vb]
       Case "CNC" ' Construye carpinteria
            rdata = Right$(rdata, Len(rdata) - 3)
            X = CInt(rdata)
            If X < 1 Or ObjData(X).SkCarpinteria = 0 Then Exit Sub
            Call CarpinteroConstruirItem(UserIndex, X)
            Exit Sub[/vb]

Y Lo Reemplazamos Por

[vb]
   Case "CNC"
        rdata = Right$(rdata, Len(rdata) - 3)
       
        X = CInt(ReadField(1, rdata, 32))
        Arg1 = CInt(ReadField(2, rdata, 32))
        If Arg1 < 1 Then Exit Sub
        If X < 1 Or ObjData(X).SkCarpinteria = 0 Then Exit Sub
        Call CarpinteroConstruirItem(UserIndex, X, val(Arg1))
        Exit Sub[/vb]

Y Asi Terminamos con el Carpintero


Herrero


Cliente

En el frmHerrero Buscamos

[vb]
Private Sub Command3_Click()
 
On Error Resume Next
 
If lstArmas.Visible Then
 Call SendData("CNS" & ArmasHerrero(lstArmas.ListIndex))
Else
 Call SendData("CNS" & ArmadurasHerrero(lstArmaduras.ListIndex))
End If
 
Unload Me
 
End Sub[/vb]

Y Lo Reemplazamos Por [vb]
Private Sub Command3_Click()
 
On Error Resume Next
Dim Cantidad As String
Cantidad = txtCantidad.Text
 
If lstArmas.Visible Then
 Call SendData("CNS" & ArmasHerrero(lstArmas.ListIndex) & " " & Cantidad)
Else
 Call SendData("CNS" & ArmadurasHerrero(lstArmaduras.ListIndex) & " " &Cantidad)
End If
 
Unload Me
 
End Sub[/vb]

Y Si No Queremos Que Pongan Letras en el TectBox Ponemos

[vb]
Private Sub txtCantidad_Change()
 
If Val(txtCantidad.Text) < 0 Then
    txtCantidad.Text = 1
End If
 
If Val(txtCantidad.Text) > MAX_INVENTORY_OBJS Then
    txtCantidad.Text = 1
End If
 
If Not IsNumeric(txtCantidad.Text) Then txtCantidad.Text = "1"
 
End Sub[/vb]

Código:
Despues Agregamos en el frmHerrero un TextBox Llamado "txtCantidad.Text"

Servidor

Buscamos


[vb]
       Case "CNS" ' Construye herreria
            rdata = Right$(rdata, Len(rdata) - 3)
            X = CInt(rdata)
            If X < 1 Then Exit Sub
            If ObjData(X).SkHerreria = 0 Then Exit Sub
            Call HerreroConstruirItem(UserIndex, X)
            Exit Sub[/vb]

Y Lo Reemplazamos Por
[vb]
   Case "CNS"
        Dim Arg5 As Integer
        rdata = Right$(rdata, Len(rdata) - 3)
       
        X = CInt(ReadField(1, rdata, 32))
        Arg5 = CInt(ReadField(2, rdata, 32))
        If Arg5 < 1 Then Exit Sub
        If X < 1 Then Exit Sub
        If ObjData(X).SkHerreria = 0 Then Exit Sub
        Call HerreroConstruirItem(UserIndex, X, val(Arg5))
        Exit Sub
        [/vb]

Y Listo el Herrero

Funcionamiendo del Codigo: El Clienjte Aparte de Enviar que Debe Contruir Envia la Cantidad , Si El User No Tiene los Materiales necesarios le dice "No Tienes Sufieciente Madera/Lingotes"

Suerte , Supongo que en la 0.11.5 Anda , Prueben :p
 

Ladder

Noicoder FANS!
Colaborador
Hola, bueno, no lo probe, pero en un rato lo pruebo y digo..
pero la verdad te felicito por el codigo, esta excelente :)
 

Zeiber

Playmaker.-
Yo no ponia donde dice que se cierre el formulario al crear el objeto en false onda que apretes hasta crear los objetos que quieras... obviamente no vas a hacer 10000 de flechas de a 1. Es mas comodo este codigo lo voy a probar. Muy Bueno.
 

By3K

Developer
Wenas...

Bueno... no lo probé el code, pero como yo ya lo tenia hecho para mi servidor, asi mirando le encontré un peke error... va, no es error, sino q...
está incompleto...
explico:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"><span style="color: #b1b100;">Call</span> HerreroConstruirItem<span style="color: #66cc66;">(</span>UserIndex, X, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Arg5<span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li></ol></div>[/vb]
o
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"><span style="color: #b1b100;">Call</span> CarpinteroConstruirItem<span style="color: #66cc66;">(</span>UserIndex, X, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Arg1<span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li></ol></div>[/vb]

con eso, le estás pasando el valor "Arg1" o "Arg5" al procedimiento de construcción...
ahora...
en palabras faciles:
¿Sabe el procedimiento de construccion que le estás enviando esos datos?

vas a tener q agregar un ByVal nombredelavariable as Tipo: Ej CantIt as Integer, para poder utilizar ese valor dentro del procedimiento... (corrijanme si me equivoco)

luego, dentro del procedimiento de construcción, cuando vas a revisar si el usuario tiene los materiales necesareios, vas a tener q modificar las condiciones.
por ejemplo, en madera, multiplicá la cantidad necesaria x la cantidad que quiere construir...
y en el herrero, tenes q hacer lo mismo, pero con cada cantidad de lingotes... no se si me explico...

una vez que corroboraste que el usuario tiene la cantidad necesaria de elementos, solo resta multiplicar la cantidad de items q se construyen, por la cantidad q el usuario eligio...

Espero sea de ayuda eso!

Un Abrazo!

BrIaN
 

CHOTS

Director LapsusAO
Encontre un error, los textbox se tienen q llamar

Código:
txtcantidad

vos pusiste

Código:
txtcantidad.text

es una gilada pero por ahi a alguno se le complica
 
Estado
Cerrado para nuevas respuestas.
Arriba