GM-PekeMixz Capitan Primero
Cantidad de envíos : 81 Fecha de inscripción : 24/07/2013 Edad : 26 Localización : Boulogne
| Tema: Comando /daroro , plata y md Lun Jul 29, 2013 7:06 pm | |
| Bueno capas que alguno le sirba. Y para empezar dejo este código (Mi primer códe) (? él cual puede ser útil. Sin más que decir la explicación del código : [Aviso] Este código lo extraje de "MatAO". Gracias por su liberación. Y arregle el problema que tenia que daba mal dicha Copa. Es masomenos asi. El Game Master al poner /DARMD nick : Le da a ese usuario una Espada Mata Dragones. Con dicho mensaje el cúal puede ser cambiado a su gusto. ¿Qué tiene de especial?. Bueno se les facilita un poco. Porqué anda perfectamente. Y son 3 códigos en 1 Basicamente - /DAR MD - /DARORO - /DARPLATA. (Lo unico que tienen que hacer es cambiar los Mensajitos. Si quieren que diga otra cosa). Empezemos : S E R V I D O R - servidor:
Abajo de Consultation : - Código:
-
DarMD '/DARMD DarPlata '/DAROPLATA DarOro '/DARORO Abajo de ClientPacketId.Consultation : - Código:
-
Case ClientPacketID.DarMD '/DarMD Call HandleDarMD(UserIndex) Case ClientPacketID.DarPlata '/DarPlata Call HandleDarPlata(UserIndex) Case ClientPacketID.DarOro '/DarOro Call HandleDarOro(UserIndex) Al Final del Protocol : - Código:
-
Private Sub HandleDarMD(ByVal UserIndex As Integer) If UserList(UserIndex).incomingData.length < 3 Then Err.Raise UserList(UserIndex).incomingData.NotEnoughDataErrCode Exit Sub End If On Error GoTo Errhandler With UserList(UserIndex) 'This packet contains strings, make a copy of the data to prevent losses if it's not complete yet... Dim buffer As New clsByteQueue Call buffer.CopyBuffer(.incomingData) 'Remove packet ID Call buffer.ReadByte Dim UserName As String Dim tUser As Integer UserName = buffer.ReadASCIIString() tUser = NameIndex(UserName) If .flags.Privilegios And PlayerType.User Then 'ojo, solo para gms Call WriteConsoleMsg(UserIndex, "ole ole, comando para gms papucho", FontTypeNames.FONTTYPE_INFOBOLD) Exit Sub 'evitamos que siga la rutina End If Dim MD As Obj MD.Amount = 1 MD.ObjIndex = 402 Call MeterItemEnInventario(tUser, MD) 'decoración Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("El administrador " & .name & " le ha entregado " & MD.Amount & " Espada Mata Dragones a " & UserList(tUser).name & " por haber ganado el evento.", FontTypeNames.FONTTYPE_CONSEJO)) Call WriteConsoleMsg(tUser, "El administrador " & .name & " te ha entregado " & MD.Amount & " Espada Mata Dragones.", FontTypeNames.FONTTYPE_CENTINELA) Call .incomingData.CopyBuffer(buffer) End With Errhandler: Dim error As Long error = Err.Number On Error GoTo 0 'Destroy auxiliar buffer Set buffer = Nothing If error <> 0 Then _ Err.Raise error End Sub Private Sub HandleDarPlata(ByVal UserIndex As Integer) If UserList(UserIndex).incomingData.length < 3 Then Err.Raise UserList(UserIndex).incomingData.NotEnoughDataErrCode Exit Sub End If On Error GoTo Errhandler With UserList(UserIndex) 'This packet contains strings, make a copy of the data to prevent losses if it's not complete yet... Dim buffer As New clsByteQueue Call buffer.CopyBuffer(.incomingData) 'Remove packet ID Call buffer.ReadByte Dim UserName As String Dim tUser As Integer UserName = buffer.ReadASCIIString() tUser = NameIndex(UserName) If .flags.Privilegios And PlayerType.User Then 'ojo, solo para gms Call WriteConsoleMsg(UserIndex, "ole ole, comando para gms papucho", FontTypeNames.FONTTYPE_INFOBOLD) Exit Sub 'evitamos que siga la rutina End If Dim COPA As Obj COPA.Amount = 1 'Cuantas copas le daremos? COPA.ObjIndex = 157 'Numero de la copa según obj.dat Call MeterItemEnInventario(tUser, COPA) 'metemos la copa en el userinventario 'decoración Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("El administrador " & .name & " le ha entregado " & COPA.Amount & " copa de plata a " & UserList(tUser).name & " por haber salido segundo en el torneo.", FontTypeNames.FONTTYPE_CONSEJO)) Call WriteConsoleMsg(tUser, "El administrador " & .name & " te ha entregado " & COPA.Amount & " copa de plata.", FontTypeNames.FONTTYPE_CENTINELA) Call .incomingData.CopyBuffer(buffer) End With Errhandler: Dim error As Long error = Err.Number On Error GoTo 0 'Destroy auxiliar buffer Set buffer = Nothing If error <> 0 Then _ Err.Raise error End Sub Private Sub HandleDarOro(ByVal UserIndex As Integer) If UserList(UserIndex).incomingData.length < 3 Then Err.Raise UserList(UserIndex).incomingData.NotEnoughDataErrCode Exit Sub End If On Error GoTo Errhandler With UserList(UserIndex) 'This packet contains strings, make a copy of the data to prevent losses if it's not complete yet... Dim buffer As New clsByteQueue Call buffer.CopyBuffer(.incomingData) 'Remove packet ID Call buffer.ReadByte Dim UserName As String Dim tUser As Integer UserName = buffer.ReadASCIIString() tUser = NameIndex(UserName) If .flags.Privilegios And PlayerType.User Then 'ojo, solo para gms Call WriteConsoleMsg(UserIndex, "ole ole, comando para gms papucho", FontTypeNames.FONTTYPE_INFOBOLD) Exit Sub 'evitamos que siga la rutina End If Dim COPA As Obj COPA.Amount = 1 'Cuantas copas le daremos? COPA.ObjIndex = 710 'Numero de la copa según obj.dat Call MeterItemEnInventario(tUser, COPA) 'metemos la copa en el userinventario 'decoración Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("El administrador " & .name & " le ha entregado " & COPA.Amount & " copa de oro a " & UserList(tUser).name & " por haber salido primero en el torneo.", FontTypeNames.FONTTYPE_CONSEJO)) Call WriteConsoleMsg(tUser, "El administrador " & .name & " te ha entregado " & COPA.Amount & " copa de oro.", FontTypeNames.FONTTYPE_CENTINELA) Call .incomingData.CopyBuffer(buffer) End With Errhandler: Dim error As Long error = Err.Number On Error GoTo 0 'Destroy auxiliar buffer Set buffer = Nothing If error <> 0 Then _ Err.Raise error End Sub
C L I E N TE - Cliente:
Abajo de Consulta : - Código:
-
DarMD '/DARMD DarPlata '/DAROPLATA DarOro '/DARORO Al Final del Protocol : - Código:
-
Public Sub WriteDarMD(ByVal UserName As String) With outgoingData Call .WriteByte(ClientPacketID.DarMD) Call .WriteASCIIString(UserName) End With End Sub Public Sub WriteDarPlata(ByVal UserName As String) With outgoingData Call .WriteByte(ClientPacketID.DarPlata) Call .WriteASCIIString(UserName) End With End Sub Public Sub WriteDarOro(ByVal UserName As String) With outgoingData Call .WriteByte(ClientPacketID.DarOro) Call .WriteASCIIString(UserName) End With End Sub Abajo de : Case "/Penas" : - Código:
-
Case "/DARMD" If notNullArguments Then Call WriteDarMD(ArgumentosRaw) Else 'Avisar que falta el parametro Call ShowConsoleMsg("Faltan parámetros. Utilice /DARMD nick.") End If Case "/DARPLATA" If notNullArguments Then Call WriteDarPlata(ArgumentosRaw) Else 'Avisar que falta el parametro Call ShowConsoleMsg("Faltan parámetros. Utilice /DARPLATA nick.") End If Case "/DARORO" If notNullArguments Then Call WriteDarOro(ArgumentosRaw) Else 'Avisar que le faltó algo Call ShowConsoleMsg("Faltan parámetros. Utilice /DARORO nick.") End If
Para cambiar los Mensajes en el "SERVIDOR" Buscamos en el Protocol (Por el final) : - asd:
- Código:
-
Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("El administrador " & .name & " le ha entregado " & COPA.Amount & " copa de oro a " & UserList(tUser).name & " por haber salido primero en el torneo.", FontTypeNames.FONTTYPE_CONSEJO))
Y donde dice : - asd:
por haber salido primero en el torneo.
« Ponemos lo que quieramos. Bueno Sirbe para la Versión 13.0 Almenos fue en la que lo probe. Esta Testiado y Funcional. Si quieren mejorar algunas cosas en comentarios estaria bueno. Asi anda mejor. PD : No me critiquen :c yo solo lo extraje y Hice que andaran bien nada más. Fuentes GS ZONE | |
|
Rango Administrador
Cantidad de envíos : 191 Fecha de inscripción : 13/07/2013
| Tema: Re: Comando /daroro , plata y md Lun Jul 29, 2013 8:39 pm | |
| Muy buen aporte, y lo vi yo en gs - zone también.
Seguí así!
Gracias por dejar fuente.
Suerte! | |
|