Enviar respuesta 
 
Calificación:
  • 2 votos - 3 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[S] Script de Muerte y Resurrección
22-03-2010, 01:12 AM (Este mensaje fue modificado por última vez en: 22-03-2010 05:16 PM por Alatar.)
Mensaje: #1
Star [S] Script de Muerte y Resurrección

Bueno, este es el script más completo que hice hasta ahora xD. Me llevó bastante tiempo pero creo que el resultado lo vale Big Grin

¿Que hace este script?
- Crea sitios de guardado, cosa de que si mueres resucitas ahi.
- Al morir reemplaza tu sprite por uno muerto y te impide realizar cualquier acción (ataque, movimiento, etc.)
- Mientras estés muerto los enemigos (personajes) no te pueden atacar.
- Al morir se abre el menu de resurrección (tarda X segundos en abrirse), que te permite elegir si revivir en ese mismo lugar o en tu punto de guardado.
- Si estás muerto y cerraste el menú de resurrección podés tocar la tecla SUPR para abrirlo de nuevo.
- Si cerrás el juego estando muerto y volves a entrar, apareces en ese mismo lugar, vivo pero con el sprite normal, no el de muerto
- Al revivir se muestra una animacion


Nombre: Muerte y Resurrección
Autor: Alatar *
Dificultad: 3/5
Funcionalidad: Comprobada

Reemplazar el Sub OnDeath por esto:

Cita:Sub OnDeath(Index)
Call LockPlayer(index, 1)
Call LockSpells(index, 1)
Call LockItems(index, 1)
Call LockAttack(index, 1)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","SPRITE","" & GetPlayerSprite(index))
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","STATUS","Muerto")
Call SetPlayerSprite(index, )
Call SendPlayerData(Index)
Call SetTimer("ResMenu " & Index, 000)
Call CustomMenuShow(index,"Resurrection","\GUI\Custom\reswait.bmp", 1)
End Sub

Reemplazar el Sub OnPvpDeath por esto:

Cita:Sub OnPVPDeath(Attacker, Victim)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Victim)&".ini","CHECKPOINT","SPRITE","" & GetPlayerSprite(Victim))
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Victim)&".ini","CHECKPOINT","STATUS","Muerto")
Call GlobalMsg(GetPlayerName(Victim) & " ha sido derrotado por " & GetPlayerName(Attacker), BRIGHTRED)
Call LockPlayer(Victim, 1)
Call LockSpells(Victim, 1)
Call LockItems(Victim, 1)
Call LockAttack(Victim, 1)
Call SetPlayerSprite(Victim, )
Call SendPlayerData(Victim)
Call SetTimer("ResMenu " & Index, 000)
Call CustomMenuShow(Victim,"Resurrection","\GUI\Custom\reswait.bmp", 1)
End Sub

Reemplazar el Sub OnAttack por esto:

Cita:Sub OnAttack(Index, Damage)
Dim Target
Dim Status

If Int(Damage) > 0 Then
If Int(GetPlayerTarget(Index)) > 0 Then
Target = GetPlayerTarget(Index)
Status = GetVar("Scripts\CheckPoints\"&GetPlayerName(GetPlayerTarget(Index))&".ini", "CHECKPOINT", "STATUS")
If Status = "Muerto" Then
Call PlayerMsg(Index, "No puedes atacar a alguien muerto.", WHITE)
Exit Sub
End If
Call DamagePlayer(Index, Target, Damage)
Else
Target = GetPlayerTargetNpc(Index)
Call DamageNPC(Index, Target, Damage)
End If
End IF
End Sub

Reemplazar el Sub OnArrowHit por esto:

Cita:Sub OnArrowHit(Index, Damage)
Dim Target
Dim Status

If Int(Damage) > 0 Then
If Int(GetPlayerTarget(Index)) > 0 Then
Target = GetPlayerTarget(Index)
Status = GetVar("Scripts\CheckPoints\"&GetPlayerName(GetPlayerTarget(Index))&".ini", "CHECKPOINT", "STATUS")
If Status = "Muerto" Then
Call PlayerMsg(Index, "No puedes atacar a alguien muerto.", WHITE)
Exit Sub
End If
Call DamagePlayer(Index, Target, Damage)
Else
Target = GetPlayerTargetNpc(Index)
Call DamageNPC(Index, Target, Damage)
End If
End If
End Sub

Dentro de Sub MenuScripts, en el Case 1 pegar esto:

Cita:If Clicked_Index = 1 Then
Call CustomMenuClose(index)
Call ResHere(Index)
End If

If Clicked_Index = 2 Then
Call CustomMenuClose(index)
Call ResCheckPoint(Index)
End If

Reemplazar el Sub OnNewChar por esto:

Cita:Sub OnNewChar(Index, CharNum)
Call SetCheckPoint(Index)
End Sub

Reemplazar el Sub LeftGame por esto:

Cita:Sub LeftGame(Index)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","STATUS","Vivo")
If GetPlayerAccess(Index) = 0 Then
Call GlobalMsg(GetPlayerName(Index) & " ha salido de " & GameName & "!", GREY)
Else
Call GlobalMsg("El Administrador " & GetPlayerName(Index) & " ha salido de " & GameName & "!", YELLOW)
End If
End Sub

Dentro del Sub JoinGame, justo arriba de Call SendWhosOnline(Index) pegar esto:

Cita:Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","STATUS","Vivo")
If GetPlayerSprite(Index) = Then
Call SetPlayerSprite(Index, GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "SPRITE"))
Call SendPlayerData(Index)
End If

En un Case del Sub ScriptedTile pegar esto:

Cita:Case X
Call SetCheckPoint(Index)
Call PlayerMsg(Index, "Has activado este punto de guardado, al morir resucitaras aqui.", BRIGHTGREEN)
Exit Sub


Reemplazar el Sub HotScripts por esto:

Cita:Sub HotScript(Index, KeyID)
Dim Status
Status = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "STATUS")
Select Case KeyID
' Tecla PaginaArriba
Case 1

' Tecla Suprimir
Case 2
If Status = "Muerto" Then
Call SetTimer("ResMenu " & Index, 000)
Call CustomMenuShow(index,"Resurrection","\GUI\Custom\reswait.bmp", 1)
End If

' Tecla Fin
Case 3

' Tecla PaginaAbajo
Case 4
End Select
End Sub

Al final del Main.txt pegar esto:

Cita:Sub ResCheckPoint(Index)
Dim MapNum
Dim X
Dim Y
Dim Sprite

MapNum = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "MAP")
X = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "X")
Y = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "Y")
Sprite = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "SPRITE")

Call LockPlayer(index, 0)
Call LockSpells(index, 0)
Call LockItems(index, 0)
Call LockAttack(index, 0)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","STATUS","Vivo")
Call SetPlayerSprite(Index, Sprite)
Call SendPlayerData(Index)
Call PlayerWarp(Index, MapNum, X, Y)
Call SpellAnim(,GetPlayerMap(Index),GetPlayerX(Index),GetPlayerY(Index))
End Sub

Sub ResHere(Index)
Dim Sprite
Sprite = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "SPRITE")
Call LockPlayer(index, 0)
Call LockSpells(index, 0)
Call LockItems(index, 0)
Call LockAttack(index, 0)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","STATUS","Vivo")
Call SetPlayerSprite(Index, Sprite)
Call SendPlayerData(Index)
Call SpellAnim(,GetPlayerMap(Index),GetPlayerX(Index),GetPlayerY(Index))
End Sub


Sub SetCheckPoint(Index)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","MAP","" & GetPlayerMap(Index))
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","X","" & GetPlayerX(Index))
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini","CHECKPOINT","Y","" & GetPlayerY(Index))
End Sub


Sub ResMenu(Index)
Call RemoveTimer("ResMenu " & Index)
Call CustomMenuClose(index)
Call CustomMenuShow(index,"Resurrection","\GUI\Custom\res.bmp", 1)
Call CustomMenuPicture(index, 1, "\GUI\CUSTOM\res1.bmp", 26, 76)
Call CustomMenuPicture(index, 2, "\GUI\CUSTOM\res2.bmp", 153, 76)
End Sub

Instrucciones:
  • Crear una carpeta llamada Checkpoints dentro de la carpeta Scripts del Servidor
  • Reemplazar los por el numero del sprite que representa a un personaje muerto (un cadaver o similar).
  • Reemplazar las por el número de un hechizo, su animación aparecerá cuando el personaje resucite
  • Reemplazar las del Timer por la cantidad de segundos.

Cualquier error o problema me dicen, un saludo Smile

*: A pesar de que la gran parte del código es de mi autoría, la parte de Checkpoint (punto de guardado) es de 6dragon6 y esos creditos le corresponden a él.


Por último deben pegar los siguientes archivos (pueden modificarlos fácilmente) dentro de /Cliente/GUI/CUSTOM/:


Archivo(s) adjuntos
.bmp  res.bmp (Tamaño: 129.99 KB / Descargas: 227)
.bmp  res1.bmp (Tamaño: 10.74 KB / Descargas: 191)
.bmp  res2.bmp (Tamaño: 10.74 KB / Descargas: 182)
.bmp  reswait.bmp (Tamaño: 129.99 KB / Descargas: 197)

[Imagen: 2qvtbb6.png]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 01:47 AM
Mensaje: #2
RE: [S] Super Script de Muerte y Resurrección

wow... jaja sos un genio del script al igual que dragon xD al mejor estilo world of warcraft! xD esto me sirve una enormidad y se que a todos tambien y si lo posteaste es por que funciona xD asi que... a disfrutar

[Imagen: ubda3377cf2iq4.gif]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 01:50 AM
Mensaje: #3
RE: [S] Super Script de Muerte y Resurrección

genioooooooooooooooooo ere mi nuevo idolo!!!!!!!!!!!!!!!!!!!!, XD gracias men lo boy a usar ta algito dificial pero weno XD

[Imagen: halo1rxr.jpg]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 03:34 AM
Mensaje: #4
RE: [S] Super Script de Muerte y Resurrección

estaria bueno que para revivir en el lugar de muerte tena que ser por otro usuario con un poder de revivir o un item seria un poco mas logico je es mi opinion nomas y mi peticion jeje
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 03:38 AM
Mensaje: #5
RE: [S] Super Script de Muerte y Resurrección

Muy bueno la verdad este script me sirve bastante

Taller de GUI'S profesionales:
Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 04:04 AM
Mensaje: #6
RE: [S] Super Script de Muerte y Resurrección

(22-03-2010 03:34 AM)nahuen89 escribió: Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.estaria bueno que para revivir en el lugar de muerte tena que ser por otro usuario con un poder de revivir o un item seria un poco mas logico je es mi opinion nomas y mi peticion jeje

También se puede hacer, veo si mañana hago un código para que se use en un scripted item/spell.

[Imagen: 2qvtbb6.png]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 09:41 AM
Mensaje: #7
RE: [S] Super Script de Muerte y Resurrección

Gracias alatar XD
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-03-2010, 04:57 PM (Este mensaje fue modificado por última vez en: 22-03-2010 04:57 PM por Alatar.)
Mensaje: #8
RE: [S] Script de Muerte y Resurrección

PLUS
Para que un scripted item/spell te permita revivir a alguien muerto, este sería el script.

Dentro de ScriptedItem o ScriptedSpells, en la parte superior por encima de Select Case Script:
Cita:Dim Status
Dim Target
Dim Sprite

En un Case debajo:
Cita:Case X
Status = GetVar("Scripts\CheckPoints\"&GetPlayerName(Target)&".ini", "CHECKPOINT", "STATUS")
Target = GetPlayerTarget(Index)
Sprite = GetVar("Scripts\CheckPoints\"&GetPlayerName(Index)&".ini", "CHECKPOINT", "SPRITE")

If Status = "Muerto" Then
Call LockPlayer(Target, 0)
Call LockSpells(Target, 0)
Call LockItems(Target, 0)
Call LockAttack(Target, 0)
Call PutVar("Scripts\CheckPoints\"&GetPlayerName(Target)&".ini","CHECKPOINT","STATUS","Vivo")
Call SetPlayerSprite(Target, Sprite)
Call SendPlayerData(Target)
Call SpellAnim(,GetPlayerMap(Target),GetPlayerX(Target),GetPlayerY(Target))
End If
Exit Sub

Instrucciones:
Reemplazar X por el numero del Case.
Reemplazar por la animación de revivir.

NOTA: No esta probado Smile xD

[Imagen: 2qvtbb6.png]
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
25-03-2010, 03:00 PM
Mensaje: #9
RE: [S] Script de Muerte y Resurrección

Muy bueno Wink , dejo gracias.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
29-03-2010, 01:49 AM
Mensaje: #10
RE: [S] Script de Muerte y Resurrección

Muy bueno pero servira tambien con el scrips de playasurf Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces. en la parte de que alguien con un hechizo pueda revivir a otro de una sola ves sin esperar el respawn

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  [Script en proceso] Mapping automático (Autotiles) oxzatanxo 8 105 Ayer 11:51 PM
Último mensaje: Rodo
  [Script]Invocar Monstruo Mejorado oty5198 16 2,554 19-05-2012 12:48 AM
Último mensaje: makone
  [Script] Lanzar Granadas (Animación/Exploción/Daño) oxzatanxo 11 254 18-05-2012 05:09 PM
Último mensaje: MalcoS
  [Script] Warpeo múltiple. oxzatanxo 4 98 16-05-2012 01:03 PM
Último mensaje: Sheyk87
  [Script] Patear Penales. oxzatanxo 6 125 15-05-2012 07:38 PM
Último mensaje: oxzatanxo

Salto de foro:


Usuario(s) navegando en este tema: 4 invitado(s)
ContáctanosAlterEngineVolver arribaVolver al contenidoArchivo (Modo simple)Sindicación RSS