[RPG - Scripting] ¿Se puede desactivar el sistema de desobediencia en Essentials?

Avisos


Like Tree8Gracias
  • 1 Post By Kurotao
  • 1 Post By Diego Mertens
  • 1 Post By EnamoratDeKatie
  • 3 Post By JessWishes
  • 1 Post By Diego Mertens
  • 1 Post By Kurotao
Tema cerrado
 
Herramientas Desplegado
  #1  
22/11/2018
Predeterminado ¿Se puede desactivar el sistema de desobediencia en Essentials?
Buenos días tardes o noches dependiendo de cuando lean esto.

Pues bien, tengo una duda ¿Se puede desactivar el sistema de desobediencia en el essentials?

Si se puede ¿Como logro desactivarlo?

Muchas gracias por tomarse su tiempo, esperare pacientemente una respuesta.

Que tengan buen dia.
Gracias: Diego Mertens





  #2  
22/11/2018
Predeterminado Respuesta: ¿Se puede desactivar el sistema de desobediencia en Essentials?
Tal vez si cambias esto:
Código:
  def pbObedienceCheck?(choice)   # Returns true if Pokémon obeys, false if won't
    return true if choice[0]!=1
    return true if !@battle.internalbattle
    return true if !@battle.pbOwnedByPlayer?(@index)
    disobedient = false
    # Pokémon may be disobedient; calculate if it is
    badgelevel = 10*(@battle.pbPlayer.numbadges+1)
    badgelevel = PBExperience::MAXLEVEL if @battle.pbPlayer.numbadges>=8
    move = choice[2]
    if   @pokemon.isForeign?(@battle.pbPlayer) && @level>badgelevel
      a = ((@level+badgelevel)*@battle.pbRandom(256)/256).floor
      disobedient |= (a>=badgelevel)
    end
    if self.respond_to?("pbHyperModeObedience")
      disobedient |= !self.pbHyperModeObedience(move)
    end
    return true if !disobedient
Por esto:
Código:
  def pbObedienceCheck?(choice)   # Returns true if Pokémon obeys, false if won't
    return true if choice[0]!=1
    return true if !@battle.internalbattle
    return true if !@battle.pbOwnedByPlayer?(@index)
    disobedient = false
    # Pokémon may be disobedient; calculate if it is
    badgelevel = 10*(@battle.pbPlayer.numbadges+1)
    badgelevel = PBExperience::MAXLEVEL if @battle.pbPlayer.numbadges>=8
    move = choice[2]
    if   @pokemon.isForeign?(@battle.pbPlayer) && @level>badgelevel
      a = ((@level+badgelevel)*@battle.pbRandom(256)/256).floor
      disobedient |= (a>=badgelevel)
    end
    if self.respond_to?("pbHyperModeObedience")
      disobedient |= !self.pbHyperModeObedience(move)
    end
    return true if disobedient && !disobedient
No lo he probado, pero quizás funcione, siempre devuelve true, por lo que...
EDIT: ¡Sí funciona!
Gracias: Kurotao
Mi Fangame
Mis Recursos y Tutoriales

no me abras :v

...
Reshiram y Yo hemos perdido.
¿Significa eso que tus convicciones o ideales nos han superado?
Zekrom y Reshiram...
Cada uno ha escogido a un héroe...
¿Cómo es posible tal cosa?
¿Querrá decir esto que ambos héroes, tanto el defensor de los ideales como el paladín de la verdad, tienen razón?
No lo entiendo...
Quizá no se trate de negar el pensamiento diferente, sino de integrarlo y combinar ambos...
Como en una reacción química...
¿Es esa la fórmula para
cambiar el mundo?
~ N... Negro y Blanco... ~ 2010
  #3  
22/11/2018
Predeterminado Respuesta: ¿Se puede desactivar el sistema de desobediencia en Essentials?
Dicho por Diego Mertens Ver mensaje
Tal vez si cambias esto:
Código:
  def pbObedienceCheck?(choice)   # Returns true if Pokémon obeys, false if won't
    return true if choice[0]!=1
    return true if !@battle.internalbattle
    return true if !@battle.pbOwnedByPlayer?(@index)
    disobedient = false
    # Pokémon may be disobedient; calculate if it is
    badgelevel = 10*(@battle.pbPlayer.numbadges+1)
    badgelevel = PBExperience::MAXLEVEL if @battle.pbPlayer.numbadges>=8
    move = choice[2]
    if   @pokemon.isForeign?(@battle.pbPlayer) && @level>badgelevel
      a = ((@level+badgelevel)*@battle.pbRandom(256)/256).floor
      disobedient |= (a>=badgelevel)
    end
    if self.respond_to?("pbHyperModeObedience")
      disobedient |= !self.pbHyperModeObedience(move)
    end
    return true if !disobedient
Por esto:
Código:
  def pbObedienceCheck?(choice)   # Returns true if Pokémon obeys, false if won't
    return true if choice[0]!=1
    return true if !@battle.internalbattle
    return true if !@battle.pbOwnedByPlayer?(@index)
    disobedient = false
    # Pokémon may be disobedient; calculate if it is
    badgelevel = 10*(@battle.pbPlayer.numbadges+1)
    badgelevel = PBExperience::MAXLEVEL if @battle.pbPlayer.numbadges>=8
    move = choice[2]
    if   @pokemon.isForeign?(@battle.pbPlayer) && @level>badgelevel
      a = ((@level+badgelevel)*@battle.pbRandom(256)/256).floor
      disobedient |= (a>=badgelevel)
    end
    if self.respond_to?("pbHyperModeObedience")
      disobedient |= !self.pbHyperModeObedience(move)
    end
    return true if disobedient && !disobedient
No lo he probado, pero quizás funcione, siempre devuelve true, por lo que...
EDIT: ¡Sí funciona!
Tengo una enorme duda, ¿eso realmente funciona?
Nunca he usado Ruby y a lo mejor es que no entiendo la lógica de la última línea (que parece ser lo único que has cambiado).

disobedient tiene un valor que puede ser verdadero o falso.
!disobedient es la negación del valor anterior por lo que siempre tendrá el valor contrario.

Entonces pienso, ¿qué pasa con esta condición? Porque hasta donde sé el operador lógico and (&&) devuelve true si y sólo si ambos operandos lo son.
Código:
if desobedient && !desobedient
  1. desobedient = true => !desobedient = false => desobedient && !desobedient = true && false = false
  2. desobedient = false => !desobedient = true => desobedient && !desobedient = false && true = false

Si no me equivoco, eso devolverá siempre false y no true.

Ahora, si lo que quieres es que devuelva siempre true, ¿por qué no directamente te olvidas de la condición?
Código:
return true

Si igual quieres poner la condición, ¿no sería mejor usar un or (||)?
Código:
return true if desobedient || !desobedient
En este caso, siempre que uno de los dos fuera true, devolvería true sin importar el valor del otro y como sabemos que uno es el contrario al otro y son booleanos, siempre habrá uno que será true.
Gracias: Kurotao
VISCA CATALUNYA!
LLIBERTAT


"Lluitem pacíficament, perquè és l'essència de la llibertat. Dubtem com qualsevol persona, perquè és l'antídot a la temeritat. Parlem com a demòcrates, perquè és la clau de l'èxit. Confiem els uns amb els altres, perquè serà la derrota dels tirans"
  #4  
22/11/2018
Predeterminado Respuesta: ¿Se puede desactivar el sistema de desobediencia en Essentials?
Si quieres que siempre sea obediente, solo sobre escribes la información de esa función para que te devuelva true cada vez que sea llamada.

Código:
def pbObedienceCheck?(choice); return true; end
Saludos.
  #5  
22/11/2018
Predeterminado Respuesta: ¿Se puede desactivar el sistema de desobediencia en Essentials?
Dicho por EnamoratDeKatie Ver mensaje
Tengo una enorme duda, ¿eso realmente funciona?
Nunca he usado Ruby y a lo mejor es que no entiendo la lógica de la última línea (que parece ser lo único que has cambiado).

disobedient tiene un valor que puede ser verdadero o falso.
!disobedient es la negación del valor anterior por lo que siempre tendrá el valor contrario.

Entonces pienso, ¿qué pasa con esta condición? Porque hasta donde sé el operador lógico and (&&) devuelve true si y sólo si ambos operandos lo son.
Código:
if desobedient && !desobedient
  1. desobedient = true => !desobedient = false => desobedient && !desobedient = true && false = false
  2. desobedient = false => !desobedient = true => desobedient && !desobedient = false && true = false

Si no me equivoco, eso devolverá siempre false y no true.

Ahora, si lo que quieres es que devuelva siempre true, ¿por qué no directamente te olvidas de la condición?
Código:
return true

Si igual quieres poner la condición, ¿no sería mejor usar un or (||)?
Código:
return true if desobedient || !desobedient
En este caso, siempre que uno de los dos fuera true, devolvería true sin importar el valor del otro y como sabemos que uno es el contrario al otro y son booleanos, siempre habrá uno que será true.
No lo había pensado así, pero está en lo correcto, lo peor es que es algo de lógica... Pero sí, funciona, lo he probado con un Pokémon intercambiado y de nivel 100 sin tener ninguna medalla, y no me ha desobedecido, sólo me lo explico al haber cambiado un parámetro arriba antes del condicional, pero si en eso de borrar el condicional tiene razón.
Gracias: Kurotao
Mi Fangame
Mis Recursos y Tutoriales

no me abras :v

...
Reshiram y Yo hemos perdido.
¿Significa eso que tus convicciones o ideales nos han superado?
Zekrom y Reshiram...
Cada uno ha escogido a un héroe...
¿Cómo es posible tal cosa?
¿Querrá decir esto que ambos héroes, tanto el defensor de los ideales como el paladín de la verdad, tienen razón?
No lo entiendo...
Quizá no se trate de negar el pensamiento diferente, sino de integrarlo y combinar ambos...
Como en una reacción química...
¿Es esa la fórmula para
cambiar el mundo?
~ N... Negro y Blanco... ~ 2010
  #6  
22/11/2018
Predeterminado Respuesta: ¿Se puede desactivar el sistema de desobediencia en Essentials?
@Diego Mertens y @JessWishes

Muchas gracias por la ayuda, aunque la parte de ese script es algo diferente en mi versión, capte la idea, mil gracias, que tengan un buen dia n.n
Gracias: Diego Mertens





Tema cerrado

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 15:51.

© Whack a Hack! 2019