Jump to content

Skill point for day without a death


Roland

Recommended Posts

Is it possible under the new system to award the player a skill point at the morning music event if there was no death during the preceding day and night?

 

I’d like to try removing xp gains completely and change to a skill point a day to see what would motivate players if xp were removed from the game. I’m pretty sure I can reduce xp gains to insignificant amounts but I don’t know how to do the above or even if it is possible.

 

Thank you!

Link to comment
Share on other sites

Heh I saw your post about this earlier. One idea is using a buff eg called buffDailySkillPoint, with <stack_type value="ignore"/>, duration 3600 (hr long days), and remove_on_death="true". Use triggered_effect trigger="onSelfBuffFinish" to perform the action when the duration ends. The thing is I don't know an easy way to add a skill point with triggered_effect. You may need to use this in tandem with a quest that requires a buff to complete (eg. buffDailySkillPointComplete), use onSelfBuffFinish to add buffDailySkillPointComplete, a short duration on that, then buffDailySkillPointComplete has an onSelfBuffFinish so it re-adds buffDailySkillPoint and restarts the cycle. The only issue with this is figuring out how to get your previous time spent from log-out to log-in, I don't think buff durations are preserved but maybe they are? Never tested logging out and back in while having the death debuff. But if no other way, it could surely be done through clever use of CVars.

 

Would need this in entityclasses.xml playerMale effect_group.

 

<triggered_effect trigger="onSelfEnteredGame" action="AddBuff" target="self" buff="buffDailySkillPoint"/>

<triggered_effect trigger="onSelfRespawn" action="AddBuff" target="self" buff="buffDailySkillPoint"/>

 

I don't think onSelfFirstSpawn works properly to only trigger the first time you spawn in a new game, but if buff durations are preserved in the save then using stack_type="ignore" should prevent onSelfEnteredGame from resetting it.

 

And I'm not too familair with quests, but the drunk and disorderly quest seems to have a requirement involving buffs.

 

<quest id="challenge_drunkanddisorderly">
	<property name="name_key" value="challenge_drunkanddisorderly" />
	<property name="subtitle_key" value="challenge_drunkanddisorderly_subtitle" />
	<property name="description_key" value="challenge_drunkanddisorderly_offer" />
	<property name="icon" value="ui_game_symbol_zombie" />
	<property name="repeatable" value="true" />
	<property name="category_key" value="challenge" />
	<property name="offer_key" value="challenge_drunkanddisorderly_offer" />
	<property name="difficulty" value="medium" />
	<property name="completiontype" value="TurnIn" />

	<objective type="ZombieKill" value="2" phase="1" />
	<requirement type="Holding" id="" phase="1" />

	<requirement type="Group" value="OR" phase="1" >
		<requirement type="Buff" id="buffBeer" />
		<requirement type="Buff" id="buffBeer" />
	</requirement>

	<objective type="InteractWithNPC">
		<property name="phase" value="2" />
	</objective>

	<reward type="Exp" value="1000" />
	<reward type="Item" id="casinoCoin" value="200-500" />
</quest>

 

Use <reward type="Quest" id="QUESTNAME" /> to perpetually re-add the quest upon completion. I don't know if using the buff requirement would cause a perpetual loop by having the buffDailySkillPointComplete...maybe a duration of 1 would work? Some experimenting definitely needed, but I am confident it could be done somehow.

Link to comment
Share on other sites

I'm thinking for not losing progress on log-out if durations AREN'T saved, maybe something like this using CVars which do persist between logout/login.

 

<buff name="buffDailySkillPoint" name_key="buffDailySkillPointName" description_key="buffDailySkillPointDesc" remove_on_death="false" hidden="true">
<stack_type value="ignore"/>
<update_rate value="30"/>
<effect_group>
	<triggered_effect trigger="onSelfBuffUpdate" action="ModifyCVar" target="self" cvar="DailySkillPoint" operation="add" value="30"/>

	<triggered_effect trigger="onSelfBuffUpdate" action="AddBuff" target="self" buff="buffDailySkillPointComplete">
		<requirement name="CVarCompare" cvar="DailySkillPoint" operation="GTE" value="3600"/>
	</triggered_effect>
	<triggered_effect trigger="onSelfBuffUpdate" action="ModifyCVar"" target="self" cvar="DailySkillPoint" operation="set" value="0">
		<requirement name="CVarCompare" cvar="DailySkillPoint" operation="GTE" value="3600"/>
	</triggered_effect>

	<triggered_effect trigger="onSelfDied" action="ModifyCVar" target="self" cvar="DailySkillPoint" operation="set" value="0"/>
</effect_group>
</buff>

 

This would just give you a permanent buff (using the entityclass.xml trigger to add the buff on onSelfEnteredGame) that updates every 30 seconds and handles the tracking/death reset with CVars. Then it's just a matter of getting the quest completion trigger figured out and properly tied to the buffDailySkillPointComplete buff.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...