mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-11 22:44:37 +00:00
Add starting rank and XP rate config options
This commit is contained in:
parent
35b07f897d
commit
47d0013e42
5 changed files with 36 additions and 9 deletions
|
|
@ -69,6 +69,20 @@ database {
|
||||||
game {
|
game {
|
||||||
# Allow instant action to AMS
|
# Allow instant action to AMS
|
||||||
instant-action-ams = no
|
instant-action-ams = no
|
||||||
|
|
||||||
|
# Battle experience rate
|
||||||
|
bep-rate = 1.0
|
||||||
|
|
||||||
|
# Command experience rate
|
||||||
|
cep-rate = 1.0
|
||||||
|
|
||||||
|
new-avatar {
|
||||||
|
# Starting battle rank
|
||||||
|
br = 1
|
||||||
|
|
||||||
|
# Starting command rank
|
||||||
|
cr = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
anti-cheat {
|
anti-cheat {
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ import net.psforever.types.{
|
||||||
}
|
}
|
||||||
import net.psforever.util.Database._
|
import net.psforever.util.Database._
|
||||||
import net.psforever.persistence
|
import net.psforever.persistence
|
||||||
import net.psforever.util.DefinitionUtil
|
import net.psforever.util.{Config, DefinitionUtil}
|
||||||
import org.joda.time.{LocalDateTime, Seconds}
|
import org.joda.time.{LocalDateTime, Seconds}
|
||||||
import net.psforever.services.ServiceManager
|
import net.psforever.services.ServiceManager
|
||||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
|
|
@ -306,7 +306,9 @@ class AvatarActor(
|
||||||
_.factionId -> lift(empire.id),
|
_.factionId -> lift(empire.id),
|
||||||
_.headId -> lift(head),
|
_.headId -> lift(head),
|
||||||
_.voiceId -> lift(voice.id),
|
_.voiceId -> lift(voice.id),
|
||||||
_.genderId -> lift(gender.id)
|
_.genderId -> lift(gender.id),
|
||||||
|
_.bep -> lift(Config.app.game.newAvatar.br.experience),
|
||||||
|
_.cep -> lift(Config.app.game.newAvatar.cr.experience)
|
||||||
)
|
)
|
||||||
.returningGenerated(_.id)
|
.returningGenerated(_.id)
|
||||||
)
|
)
|
||||||
|
|
@ -330,7 +332,7 @@ class AvatarActor(
|
||||||
case Failure(e) => log.error(e)("db failure")
|
case Failure(e) => log.error(e)("db failure")
|
||||||
}
|
}
|
||||||
case Some(_) =>
|
case Some(_) =>
|
||||||
// send "char already exist"
|
// send "char already exists"
|
||||||
sessionActor ! SessionActor.SendResponse(ActionResultMessage.Fail(1))
|
sessionActor ! SessionActor.SendResponse(ActionResultMessage.Fail(1))
|
||||||
}
|
}
|
||||||
case Failure(e) =>
|
case Failure(e) =>
|
||||||
|
|
|
||||||
|
|
@ -1820,8 +1820,8 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
||||||
sendResponse(DestroyDisplayMessage(killer, victim, method, unk))
|
sendResponse(DestroyDisplayMessage(killer, victim, method, unk))
|
||||||
// TODO Temporary thing that should go somewhere else and use proper xp values
|
// TODO Temporary thing that should go somewhere else and use proper xp values
|
||||||
if (killer.CharId == avatar.id && killer.Faction != victim.Faction) {
|
if (killer.CharId == avatar.id && killer.Faction != victim.Faction) {
|
||||||
avatarActor ! AvatarActor.AwardBep(1000)
|
avatarActor ! AvatarActor.AwardBep((1000 * Config.app.game.bepRate).toLong)
|
||||||
avatarActor ! AvatarActor.AwardCep(100)
|
avatarActor ! AvatarActor.AwardCep((100 * Config.app.game.cepRate).toLong)
|
||||||
}
|
}
|
||||||
|
|
||||||
case AvatarResponse.DropItem(pkt) =>
|
case AvatarResponse.DropItem(pkt) =>
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ object ServerType extends IntEnum[ServerType] {
|
||||||
case object Released extends ServerType(3, "released")
|
case object Released extends ServerType(3, "released")
|
||||||
case object ReleasedGemini extends ServerType(4, "released_gemini")
|
case object ReleasedGemini extends ServerType(4, "released_gemini")
|
||||||
|
|
||||||
val values = findValues
|
val values: IndexedSeq[ServerType] = findValues
|
||||||
implicit val codec = PacketHelpers.createIntEnumCodec(this, uint8L)
|
implicit val codec: Codec[ServerType] = PacketHelpers.createIntEnumCodec(this, uint8L)
|
||||||
}
|
}
|
||||||
|
|
||||||
// This MUST be an IP address. The client DOES NOT do name resolution properly
|
// This MUST be an IP address. The client DOES NOT do name resolution properly
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import java.nio.file.Paths
|
||||||
import com.typesafe.config.{Config => TypesafeConfig}
|
import com.typesafe.config.{Config => TypesafeConfig}
|
||||||
import enumeratum.{Enum, EnumEntry}
|
import enumeratum.{Enum, EnumEntry}
|
||||||
import enumeratum.values.{IntEnum, IntEnumEntry}
|
import enumeratum.values.{IntEnum, IntEnumEntry}
|
||||||
|
import net.psforever.objects.avatar.{BattleRank, CommandRank}
|
||||||
import net.psforever.packet.game.ServerType
|
import net.psforever.packet.game.ServerType
|
||||||
import net.psforever.types.ChatMessageType
|
import net.psforever.types.ChatMessageType
|
||||||
import pureconfig.ConfigConvert.viaNonEmptyStringOpt
|
import pureconfig.ConfigConvert.viaNonEmptyStringOpt
|
||||||
|
|
@ -30,7 +31,9 @@ object Config {
|
||||||
viaNonEmptyStringOpt[A](
|
viaNonEmptyStringOpt[A](
|
||||||
v =>
|
v =>
|
||||||
enum.values.toList.collectFirst {
|
enum.values.toList.collectFirst {
|
||||||
case e: ServerType if e.name == v => e.asInstanceOf[A]
|
case e: ServerType if e.name == v => e.asInstanceOf[A]
|
||||||
|
case e: BattleRank if e.value.toString == v => e.asInstanceOf[A]
|
||||||
|
case e: CommandRank if e.value.toString == v => e.asInstanceOf[A]
|
||||||
},
|
},
|
||||||
_.value.toString
|
_.value.toString
|
||||||
)
|
)
|
||||||
|
|
@ -120,7 +123,15 @@ case class SessionConfig(
|
||||||
)
|
)
|
||||||
|
|
||||||
case class GameConfig(
|
case class GameConfig(
|
||||||
instantActionAms: Boolean
|
instantActionAms: Boolean,
|
||||||
|
bepRate: Double,
|
||||||
|
cepRate: Double,
|
||||||
|
newAvatar: NewAvatar
|
||||||
|
)
|
||||||
|
|
||||||
|
case class NewAvatar(
|
||||||
|
br: BattleRank,
|
||||||
|
cr: CommandRank
|
||||||
)
|
)
|
||||||
|
|
||||||
case class DevelopmentConfig(
|
case class DevelopmentConfig(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue