キモブロ

Please spy check please, Fucking retard

高効率なジャンプ鯖向けのHPリジェネプラグイン試作してみた

概要

いわゆる、ダメージくらった時に自動でヘルスマックスに回復(リジェネ)するプラグイン。それを負荷を抑えた実装にしてみたというやつ

詳細

https://github.com/kimoto/sourcemod-plugins/blob/master/scripting/nj_regen.sp

withgod作のscriptがベースだが、プレイヤーごとにCreateTimerを発行して0.N秒おきにRegeneteする実装だと、なんか人が増えた時に重くなりそうな気がする。

そこでplayer_hurtイベント発生時にリジェネする感じの実装を作ってみた。コンセプトコードなので細かいエラー処理とか省いてるけどまぁちゃんと動く。player_hurtはプレイヤーがダメージを受けた時に発生するイベントで、このダメージ受けたというイベント自体を潰してかつ、その瞬間にリジェネしてるのでダメージ食らったとしてもまったくhealth減らないみたいな感じ。この方式だと常にmax healthの状態になる。

どういうことかっていうとCreateTimerほうしきだと

200
175
200

みたいな感じで一瞬ダメージ受けた時はその分ライフへって、次のtimerタイミングで200に戻る感じだけど、player_hurtをトリガーとしたこのリジェネ方式だとダメージ受けた瞬間に、しかもPreHookなのでダメージ受ける前にダメージイベント自体を消してリジェネしてる感じかな? (あんま詳しくない。)なので

200
200
200

みたいな感じ。ワンチャンさえ死ぬ可能性がないし、おそらく負荷も小さいんじゃないかな。Timer一個も使ってないので。CreateTimer方式だとワンチャン死ぬんじゃないかな。瞬間的に5000とかダメージ入ったら。

この方式だと

hurtme 5000

でも死なない