GS-Zone

Npcs Vuelven a su lugar... Ir al Indice

Moderadores: Moderadores de Argentum, Especialistas de Argentum, Especialistas de Programación

7

Nota » 02 Feb 2012 21:05

Què tal, bueno la verdad no sè me ocurre de como lo podria hacer, pero lo que necesito para algun porgramador es no es nada xd, no creo que sea muy largo... En fin lo que necesito es que lo guardias, al ver un pk vallan a perseguirlos pero cuando no lo ves mas en el main osea que los perdes, que vuelva a su posiciòn iriginal (osea donde fueron mapeados al hacer el mapa xD) esto serìa para guardias caòticos y reales...

Espero que me sepan ayudan, y la verdad que lo necesito :)

Gracias y Saludos!
Última edición por Wildem el 02 Feb 2012 21:06, editado 1 vez en total

Imagen

Imagen

Wildem.
Hola...!
¿Ustes vende un caballete?
-Si
¿Te rompieron el ojete?
-Anda a la puta que te pario...

JKJKASDKLJA
^Maper^
553
Destructor de Mentes [4]
Registrado: Años de membresía
Mensajes: 664
Aportes: 3

Nota » 02 Feb 2012 22:02

En el servidor buscar

  1. Private Sub GuardiasAI(ByVal NpcIndex As Integer, Optional ByVal DelCaos As Boolean = False)


y remplaza todo ese sub por este:

  1. Private Sub GuardiasAI(ByVal NpcIndex As Integer, Optional ByVal DelCaos As Boolean = False)
  2. Dim nPos As WorldPos
  3. Dim headingloop As Byte
  4. Dim tHeading As Byte
  5. Dim Y As Integer
  6. Dim X As Integer
  7. Dim UI As Integer
  8.  
  9. For headingloop = eHeading.NORTH To eHeading.WEST
  10.     nPos = Npclist(NpcIndex).Pos
  11.     If Npclist(NpcIndex).flags.Inmovilizado = 0 Or headingloop = Npclist(NpcIndex).Char.Heading Then
  12.         Call HeadtoPos(headingloop, nPos)
  13.         If InMapBounds(nPos.Map, nPos.X, nPos.Y) Then
  14.             UI = MapData(nPos.Map, nPos.X, nPos.Y).UserIndex
  15.             If UI > 0 Then
  16.                   If UserList(UI).flags.Muerto = 0 Then
  17.                          '¿ES CRIMINAL?
  18.                          If Not DelCaos Then
  19.                             If Criminal(UI) Then
  20.                                    If NpcAtacaUser(NpcIndex, UI) Then
  21.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  22.                                    End If
  23.                                    Call ReSpawnOrigPosNpcs
  24.                                    Exit Sub
  25.                                    
  26.                             ElseIf Npclist(NpcIndex).flags.AttackedBy = UserList(UI).name _
  27.                                       And Not Npclist(NpcIndex).flags.Follow Then
  28.                                  
  29.                                   If NpcAtacaUser(NpcIndex, UI) Then
  30.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  31.                                   End If
  32.                                   Exit Sub
  33.                             End If
  34.                         Else
  35.                             If Not Criminal(UI) Then
  36.                                    
  37.                                    If NpcAtacaUser(NpcIndex, UI) Then
  38.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  39.                                    End If
  40.                                    Call ReSpawnOrigPosNpcs
  41.                                    Exit Sub
  42.                             ElseIf Npclist(NpcIndex).flags.AttackedBy = UserList(UI).name _
  43.                                       And Not Npclist(NpcIndex).flags.Follow Then
  44.                                  
  45.                                   If NpcAtacaUser(NpcIndex, UI) Then
  46.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  47.                                   End If
  48.                                   Exit Sub
  49.                             End If
  50.                         End If
  51.                   End If
  52.             End If
  53.         End If
  54.     End If  'not inmovil
  55. Next headingloop
  56.  
  57. Call RestoreOldMovement(NpcIndex)
  58.  
  59. End Sub


Fijate si te anda no esta testiado.
Usuario Registrado
104
Aprendiz [1]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 213
Aportes: 3

Nota » 02 Feb 2012 22:06

Andan pero saves lo que pasa cuando ya no los veo mas voy invi con gm y para que vuelvan a su lugar los tenes que chocar :P yo lo que quiero es que al no verlos màs en el main vuelvan caminando solitos :)
Pasa que voy hisite la llamada al sub que hacer que los guardias vuelvan a su lugar :P y creo qe es otra cosa

Imagen

Imagen

Wildem.
Hola...!
¿Ustes vende un caballete?
-Si
¿Te rompieron el ojete?
-Anda a la puta que te pario...

JKJKASDKLJA
^Maper^
553
Destructor de Mentes [4]
Registrado: Años de membresía
Mensajes: 664
Aportes: 3

Nota » 02 Feb 2012 22:12

Wildem escribió:Andan pero saves lo que pasa cuando ya no los veo mas voy invi con gm y para que vuelvan a su lugar los tenes que chocar :P yo lo que quiero es que al no verlos màs en el main vuelvan caminando solitos :)

Aver si entendi, vos queres que cuando no lo veas mas en el render que vallan caminando a su lugar solos?.
Usuario Registrado
104
Aprendiz [1]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 213
Aportes: 3

Nota » 02 Feb 2012 22:13

Si style iao.

Imagen

Imagen

Wildem.
Hola...!
¿Ustes vende un caballete?
-Si
¿Te rompieron el ojete?
-Anda a la puta que te pario...

JKJKASDKLJA
^Maper^
553
Destructor de Mentes [4]
Registrado: Años de membresía
Mensajes: 664
Aportes: 3

Nota » 02 Feb 2012 22:39

Wildem escribió:Si style iao.


Em, aver fijate si te anda asi remplaza el sub guardiasAI por este

  1. Private Sub GuardiasAI(ByVal NpcIndex As Integer, Optional ByVal DelCaos As Boolean = False)
  2. Dim nPos As WorldPos
  3. Dim headingloop As Byte
  4. Dim tHeading As Byte
  5. Dim Y As Integer
  6. Dim X As Integer
  7. Dim UI As Integer
  8.  
  9. For headingloop = eHeading.NORTH To eHeading.WEST
  10.     nPos = Npclist(NpcIndex).Pos
  11.     If Npclist(NpcIndex).flags.Inmovilizado = 0 Or headingloop = Npclist(NpcIndex).Char.Heading Then
  12.         Call HeadtoPos(headingloop, nPos)
  13.         If InMapBounds(nPos.Map, nPos.X, nPos.Y) Then
  14.             UI = MapData(nPos.Map, nPos.X, nPos.Y).UserIndex
  15.             If UI > 0 Then
  16.                   If UserList(UI).flags.Muerto = 0 Then
  17.                          '¿ES CRIMINAL?
  18.                          If Not DelCaos Then
  19.                             If Criminal(UI) Then
  20.                                    If NpcAtacaUser(NpcIndex, UI) Then
  21.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  22.                                    End If
  23.                                    Call ReSpawnOrigPosNpcs(headingloop, nPos)
  24.                                    Exit Sub
  25.                                    
  26.                             ElseIf Npclist(NpcIndex).flags.AttackedBy = UserList(UI).name _
  27.                                       And Not Npclist(NpcIndex).flags.Follow Then
  28.                                  
  29.                                   If NpcAtacaUser(NpcIndex, UI) Then
  30.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  31.                                   End If
  32.                                   Exit Sub
  33.                             End If
  34.                         Else
  35.                             If Not Criminal(UI) Then
  36.                                    
  37.                                    If NpcAtacaUser(NpcIndex, UI) Then
  38.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  39.                                    End If
  40.                                    Call ReSpawnOrigPosNpcs(headingloop, nPos)
  41.                                    Exit Sub
  42.                             ElseIf Npclist(NpcIndex).flags.AttackedBy = UserList(UI).name _
  43.                                       And Not Npclist(NpcIndex).flags.Follow Then
  44.                                  
  45.                                   If NpcAtacaUser(NpcIndex, UI) Then
  46.                                         Call ChangeNPCChar(SendTarget.ToMap, 0, nPos.Map, NpcIndex, Npclist(NpcIndex).Char.Body, Npclist(NpcIndex).Char.Head, headingloop)
  47.                                   End If
  48.                                   Exit Sub
  49.                             End If
  50.                         End If
  51.                   End If
  52.             End If
  53.         End If
  54.     End If  'not inmovil
  55. Next headingloop
  56.  
  57. Call RestoreOldMovement(NpcIndex)
  58.  
  59. End Sub
Usuario Registrado
104
Aprendiz [1]
Registrado: Años de membresíaAños de membresíaAños de membresíaAños de membresía
Mensajes: 213
Aportes: 3

Nota » 02 Feb 2012 23:34

Ai ta hice que andara pero cuando logueo marca:



Nùmero de argumentos erroneos o asigacion de propiedad no vàlida.

Y si comento esas 2 lineas no funciona :/

Edit:

Mirà yo tngo algo asì, pero me marca cosas, lo que està comentado y marca el argumento no es ocional...

  1. Private Sub GuardiasAI(ByVal NpcIndex As Integer, Optional ByVal DelCaos As Boolean = False)
  2. Dim nPos As WorldPos
  3.     Dim headingloop As Byte
  4.     Dim UI As Integer
  5.    
  6.     With Npclist(NpcIndex)
  7.         For headingloop = eHeading.NORTH To eHeading.WEST
  8.             nPos = .Pos
  9.             If .flags.Inmovilizado = 0 Or headingloop = .Char.Heading Then
  10.                 Call HeadtoPos(headingloop, nPos)
  11.                 If InMapBounds(nPos.Map, nPos.X, nPos.Y) Then
  12.                     UI = MapData(nPos.Map, nPos.X, nPos.Y).UserIndex
  13.                     If UI > 0 Then
  14.                         'If UserList(UI).flags.Muerto = 0 And UserList(UI).flags.AdminPerseguible Then
  15.                             '¿ES CRIMINAL?
  16.                             If Not DelCaos Then
  17.                                 If Not Criminal(UI) Then
  18.                                     If NpcAtacaUser(NpcIndex, UI) Then
  19.                                         'Call ChangeNPCChar(NpcIndex, .Char.Body, .Char.Head, headingloop)
  20.                                     End If
  21.                                     Exit Sub
  22.                                 ElseIf .flags.AttackedBy = UI And Not .flags.Follow Then
  23.                                    
  24.                                     If NpcAtacaUser(NpcIndex, UI) Then
  25.                                         'Call ChangeNPCChar(NpcIndex, .Char.Body, .Char.Head, headingloop)
  26.                                     End If
  27.                                     Exit Sub
  28.                                 End If
  29.                             Else
  30.                                 If Not Criminal(UI) Then
  31.                                     If NpcAtacaUser(NpcIndex, UI) Then
  32.                                         'Call ChangeNPCChar(NpcIndex, .Char.Body, .Char.Head, headingloop)
  33.                                     End If
  34.                                     Exit Sub
  35.                                 ElseIf .flags.AttackedBy = UI And Not .flags.Follow Then
  36.                                      
  37.                                     If NpcAtacaUser(NpcIndex, UI) Then
  38.                                         'Call ChangeNPCChar(NpcIndex, .Char.Body, .Char.Head, headingloop)
  39.                                     End If
  40.                                     Exit Sub
  41.                                 End If
  42.                             End If
  43.                         End If
  44.                     End If
  45.                 End If
  46.             'End If  'not inmovil
  47.         Next headingloop
  48.     End With
  49.    
  50.     Call RestoreOldMovement(NpcIndex)
  51.  
  52. End Sub

Imagen

Imagen

Wildem.
Hola...!
¿Ustes vende un caballete?
-Si
¿Te rompieron el ojete?
-Anda a la puta que te pario...

JKJKASDKLJA
^Maper^
553
Destructor de Mentes [4]
Registrado: Años de membresía
Mensajes: 664
Aportes: 3


Volver a AO 0.11.5

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados