Public ReiniciarServer As Long
abajo ponen:
- Public Destrabar As Boolean 'Code By Eragon
arriba del /RESUCITAR ponen:
- Case "/DESTRABAR" 'Code By Eragon
- If Destrabar = True Then
- Call ClosestStablePos(UserList(UserIndex).Pos, nPos) 'calculo posicion cercana, me tiene que dar mayor a 0 .
- End If
- If destrabar=true and nPos.X <> 0 And nPos.Y <> 0 Then
- Call WarpUserChar(UserIndex, nPos.Map, nPos.X, nPos.Y) me dio mayor a 0? entonces teletransport al personaje a esas coordenadas validas.
- End If
- exit sub 'Code By Eragon
despues en el handledata1 buscan:
case "RPU" y abajo de su exit sub ponen:
- Case "NOH" 'Code By Eragon
- If Destrabar = True Then
- Destrabar = False
- End If
- Exit Sub 'Code By Eragon
- Case "DES" 'Code By Eragon
- Destrabar = True
- Exit Sub 'Code By Eragon
server LISTO
ahora, CLIENTE , es mas dificil el cliente, si no saben algo de programacion, entonces evitense el copy/paste, pero si les sale, barbaro entonces ...
buscan:
- Public UserCiego As Boolean
abajo ponen:
- Public MeTrabe As Boolean 'JAJA ME TRABE QUE GROSSO :P 'Code By Eragon
luego busquen:
- Function LegalPos(X As Integer, Y As Integer) As Boolean
arriba ponen:
- Function SeEncontroUserYTambienHayBloqueos(X As Integer, Y As Integer) As Boolean 'funcion creada por Eragon a partir del legalpos, para verificar si hay users o esta blocekado en X y Y coordenadas...
- If MapData(X, Y).Blocked = 1 Then
- SeEncontroUserYTambienHayBloqueos = False
- Exit Function
- End If
- '?Hay un personaje?
- If MapData(X, Y).CharIndex > 0 Then
- SeEncontroUserYTambienHayBloqueos = False
- Exit Function
- End If
- 'EDIT: POR SI LLEGA A HABER AGUA, NO QUEREMOS IRNOS AL AGUA, Y 'NO TENER BARCA .
- If Not UserNavegando and HayAgua(X, Y) then
- SeEncontroUserYTambienHayBloqueos = False
- Exit Function
- End If
- END IF
- SeEncontroUserYTambienHayBloqueos = True
- funcion creada por Eragon a partir del legalpos, para verificar si hay users o esta blocekado en X y Y coordenadas...
- End Function 'Code By Eragon
esa funcion la cree a partir del legal pos
sigamos, buscan:
- Sub MoveNorth()
abajo ponen esto:
- If SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y - 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X + 1, UserPos.Y) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y + 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X - 1, UserPos.Y) = False Then 'al moverme arriba me fijo las 4 direccines...
- MeTrabe = True
- 'NORTH 'EAST 'SOUTH 'WEST
- AddtoRichTextBox frmMain.RecTxt, "El Cliente , ha reconocido que tienes las 4 direcciones, bloqueadas, por algun usuario, o algun tile de bloequeo, a continuacion tipea /DESTRABAR, para destrabarte. ", 0, 128, 128, 0, 0, False
- SendData "DES"
- End If 'Code By Eragon
desbues buscan adentro del procedure (osea el sub north) esto:
- If LegalPos(UserPos.X, UserPos.Y - 1) Then
y abajo ponen:
- If MeTrabe = True Then
- SendData "NOH"
- MeTrabe = False
- End If 'Code By Eragon
sigamos, ahora buscan:
- Sub MoveEast()
abajo ponen:
- If SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y - 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X + 1, UserPos.Y) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y + 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X - 1, UserPos.Y) = False Then 'al moverme me fijo las 4 direccines...
- MeTrabe = True
- 'NORTH 'EAST 'SOUTH 'WEST
- AddtoRichTextBox frmMain.RecTxt, "El Cliente , ha reconocido que tienes las 4 direcciones, bloqueadas, por algun usuario, o algun tile de bloequeo, a continuacion tipea /DESTRABAR, para destrabarte. ", 0, 128, 128, 0, 0, False
- SendData "DES"
- End If 'Code By Eragon
despues buscan esto adentro del sub moveEast
- If LegalPos(UserPos.X + 1, UserPos.Y) Then
y abajo ponen:
- If MeTrabe = True Then
- SendData "NOH"
- MeTrabe = False
- End If 'Code By Eragon
seguimos, buscan:
- Sub MoveSouth()
abajo ponen:
- If SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y - 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X + 1, UserPos.Y) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y + 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X - 1, UserPos.Y) = False Then 'al moverme me fijo las 4 direccines...
- MeTrabe = True
- 'NORTH 'EAST 'SOUTH 'WEST
- AddtoRichTextBox frmMain.RecTxt, "El Cliente , ha reconocido que tienes las 4 direcciones, bloqueadas, por algun usuario, o algun tile de bloequeo, a continuacion tipea /DESTRABAR, para destrabarte. ", 0, 128, 128, 0, 0, False
- SendData "DES"
- End If 'Code By Eragon
despues adentro del movesouth buscan:
- if LegalPos(UserPos.X, UserPos.Y + 1) then
y ponen abajo:
- If MeTrabe = True Then
- SendData "NOH"
- MeTrabe = False
- End If 'Code By Eragon
listo, ahora vamos por la ultima, yiupii .. no probe el code, igualmente, testeenlo :p...
ahora buscan:
- Sub MoveWest()
y abajo ponen:
- If SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y - 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X + 1, UserPos.Y) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X, UserPos.Y + 1) = False And SeEncontroUserYTambienHayBloqueos(UserPos.X - 1, UserPos.Y) = False Then 'al moverme me fijo las 4 direccines...
- MeTrabe = True
- 'NORTH 'EAST 'SOUTH 'WEST
- AddtoRichTextBox frmMain.RecTxt, "El Cliente , ha reconocido que tienes las 4 direcciones, bloqueadas, por algun usuario, o algun tile de bloequeo, a continuacion tipea /DESTRABAR, para destrabarte. ", 0, 128, 128, 0, 0, False
- SendData "DES"
- End If 'Code By Eragon
despues buscan adentro del mismo sub moveWest esto:
- if LegalPos(UserPos.X - 1, UserPos.Y) then
y abajo ponemos esto:
- If MeTrabe = True Then
- SendData "NOH"
- MeTrabe = False
- End If 'Code By Eragon
terminamos
entonces, repito en que consiste:
consiste, en que cuando te muevas para la izquierda,derecha,arriba y abajo, cada ves que te muevas, analiza los tiles de tu arriba, de tu izquierda, y de tu derecha. osea los 4 tiles que te rodean...
entonces, si vos tenes una pared, y otros tres users que no te podes mover, el cliente los analiza, luego de eso, activa la varialbe booleana de que el pj se trabo, despues manda una data al sv activando una variable booleana que te permite usar el comando /DESTRABAR que te va a teletransportar a un lugar cercano de donde estas, donde NO haya usuarios, ni agua, ni portales.
despues, una ves que te destrabaste, y te moves, vuelve a analizar los 4 tiles, si un tile no llega a estar ni blokeado ni hay un usuario o mas tiles no llegan a estar blokeados ni hay un usuario,, (es deicr, si te pode smover para una sola direccioin o para mas de una direccion ejemplo: 2, 3, 4.) entonces, pone a false la variable de que estas trabado, y manda una data al server, impidiendo usar el comando /DESTRABAR.
util no? espero que funcione... jaa, piensen que uds hacen copy/paste, yo me mate escribiendo todo eso en 10 minutos ...
bueno, muchachos suerte, espero que les ande:
nota:
cuando sde blokeen con 4 usuarios, apretan alguna flecha de direccion asi reconoce que estas blokeado, con apretar 1 sola basta .
suerte, Gamename.
Fuente:http://www.uasuforos.com/programacion/2256-que-no-saben-que-les-traje-o-un-sistema-de-destrabe-muy-bueno-lo-hize-yo-recien.html.
Bueno es medio largo
MODS PERDONEN LO PUEDEN MOVER A 0.11.2 Me re equivoque,perdon





![Newbie [6] Newbie [6]](./images/ranks/Rango5.gif)


13 ![Legendario Inmortal [1] Legendario Inmortal [1]](./images/ranks/Rango36.gif)
![Destructor de Mentes [7] Destructor de Mentes [7]](./images/ranks/Rango19.gif)

![Newbie [1] Newbie [1]](./images/ranks/Rango0.gif)




![Destructor de Mentes [9] Destructor de Mentes [9]](./images/ranks/Rango21.gif)
