Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change LAYER_AUCTION to LAYER_STABLE and now is used to store the sta… #1201

Closed
wants to merge 2 commits into from

Conversation

raydienull
Copy link
Contributor

…ble pets in the player stable layer

@raydienull raydienull marked this pull request as ready for review December 15, 2023 11:41
@Tolokio
Copy link
Contributor

Tolokio commented Feb 1, 2024

I use layer auction for other things... Are u removing it?

@Jhobean
Copy link
Contributor

Jhobean commented Feb 1, 2024

He change the name to stable and chage behavior of stablemaster storing pet there. You vam use this layer again with no problem.

@cbnolok
Copy link
Contributor

cbnolok commented Feb 1, 2024

Since it can be used in multiple ways, while holding stabled pets is done only by one specific npc kind, what about giving it a more generic name? To remark it could be used for other stuff

@Tolokio
Copy link
Contributor

Tolokio commented Feb 5, 2024

I dont know if I understand well what u say. If players store pets there, Could it be used for others things? I mean, Are u saying it can store pets and more stuff?

nolok said "stabled pets is done only by one specific npc kind", I dont understand. It is an npc that uses that layer, but it uses player's layer, not vendor layer, right?

@Jhobean
Copy link
Contributor

Jhobean commented Feb 5, 2024

Layer can be use for what you want. Just use the layer number like you did previously. Name is just a define in the source.

But be aware, this layer will now receive you pet stabled.

That said, now npc stablekeeper now use this layer ON the player to store pet.before npc was storing pet on the NPC bank because If you store pet on bank of player, player was able to see it. With this fix, pet will be now store on player on this layer. Before this fix, If you kill a stable npc, player loose all the pet the NPC had on his bank.

@Raylde i say true?

@cbnolok
Copy link
Contributor

cbnolok commented Feb 5, 2024

I mean that the layer can be used for auctioned items, stabled pets and other stuff, so instead of changing a specific name for another specific name, i feel that a more generic one would be more appropriate

@Tolokio
Copy link
Contributor

Tolokio commented Feb 5, 2024

OK, I took a look on the source. Layer can be used for any kind of stuff as stable system only count t_figurines. Anyway this change have 2 problems or possible problems for servers that use auction system.

1: If someone use auction system to try to sell a horse (t_figurine) or any other mount using that layer, that mount will appear on the stable system. (unless t_figurine's link is not player's uid)
2: If someone use auction system, it will show stabled pets until you modify the script to ignore t_figurines. (or to ignore linked t_figurines)

//
All t_figurines are linked to the one who shrink it? or it is linked only when it is stabled?

image

As u can see, the code check if "t_figurine->link" is the player using stable system. That check was neccesary when all t_figurines from diferent players were in the same layer of the npc. Now seems to be useless so we could remove that check. The only reason to keep that check is to solve the problems I mentioned. This way u could remove "link" from T_figurine to avoid it to be shown at stable's dialog. And u can tell auction system to ignore t_figurines that are linked to a player.

Another question: if I put a t_figurine inside a backpack that is inside layer_stable, will it be shown? or system do not check inside containers of that layer?

//
Another thing... Before, pets could be only retrieve in the same stable U get it in. So if u have the horse on cove, it can be only retrieved there. This change makes any pets retriveable anywhere, and I dont see any clear way to avoid it and let it work as it worked before (or there is?). In my case I dont like pets being retriveable anywhere so Im forced to script custom stable system or compile my own source. (not a problem for me, just saying problems I see)

Sorry for this longs texts

@Jhobean
Copy link
Contributor

Jhobean commented Feb 5, 2024

What about keep layer auction and create a new layer for layer stable? For me its important to store the pet on the player itself. It's a major bug in sphere when you kill the npc the mount dissapear lol.

@Tolokio
Copy link
Contributor

Tolokio commented Feb 6, 2024

What about keep layer auction and create a new layer for layer stable? For me its important to store the pet on the player itself. It's a major bug in sphere when you kill the npc the mount dissapear lol.

There are few ways to avoid ur problem by script.

1-
Make Invul your stable master.
2-
ON=@death
f_get_mounts_into_players_bank
3-
on=@death
f_get_mount_somewhere_and_get_them_back_to_stable_master_when_he_spawn.
//u can use the spawn to store the id of the container where the mounts are. And call it back when a new stable_master spawns. It is not hard to script and for me is the best solution to your problem.

//
I would agree maybe creating another layer for it could be fine. It would avoid conflict with auction_system or other custom system that use auction_layer. But if someone wants to have old system, where pets can only be retrieved where they were stabled, the options are: Create custom stable system or compile custom sphereX.

Should we add a triggers to let people customize?

On=@petretrieve
local.figurine -> uid of the figurine inside the for
Return 1 ->Avoid pet to be shown at stable's dialog.

On=@PetsTable
src->Player
|-> Stable_master npc
argo->Pets trying to be stabled

Whatever u choose to do is fine for me. Im forced to compile my own sphere anyway and I dont care to much about this. But I like to share my point of view as it seems that nobody thought about the possible problem or backwards compatibility.

@xwerswoodx xwerswoodx mentioned this pull request Apr 17, 2024
cbnolok pushed a commit that referenced this pull request Apr 28, 2024
* Fix crafting (#1190)

* Added .editorconfig (#1188)

* Fix Issue #1191 CANMASK not being saved on server reboot (#1192)

* Fix target cancelling upon death (#1186)

* Feature/meditation fail movement (#1184)

* Fix herding dupe char (#1185)

* Editable DispID for chars  (#1178)

* Fix issue #1097 (CAN_O_NOSLEEP not working after server reboot) (#1198)

* Fixed: The issue that causes more1/2 not saved correctly for spellbook. (Issue: #1221)

* Fixed: Players automatically become criminal to everyone when attack someone. (Issue: #1213)

* Fixed: CallGuard not working correctly on the players that only criminal for target. (Issue: #1213)

* Fixed: The wrong input of Kill trigger, to make it compatible with older sphere versions. (Issue: #1210)

* Added: New Layer LAYER_STORAGE (80) to let scripters create their own storage system on chars. (Issue: #1209)
- Only t_container and t_container_locked can be equipped to this layer.

* Changed: Decay time removed from spawned items. (Issue: #1218)

* Added: New spellflag SPELLFLAG_FIELD_RANDOMDECAY to randomize field tile decay time, like old sphere versions. (Issue: #1169)

* Changed: SERV.LOG command changed to support console colors. (Issue: #1158)

* Added: Sphere.ini setting CanPetsDrinkPotion (true in default) to make pets drink potion when their owner drop it on it. (Issue: #1147)

* Fixed: Missing fCheckOnly checks block the taming skill. (Issue: #1219)

* Added: New trigger @drink added for characters. (Issue: #1162)

* Added: New trigger @AFKmode added for characters. (Issue: #1161)

* Added: New trigger @reveal added for characters. (Issue: #1157)

* Added: New triggers @ArrowQuest_Add and @ArrowQuest_Close added for characters. (Issue: #1116)

* Added: New function triggers f_onaccount_block and f_onaccount_unblock. (Issue: #1156)

* Added: New function trigger f_onserver_broadcast. (Issue: #1145)

* Added: Two new LOCAL variables ItemPoisonReductionChance and ItemPoisonReductionAmount to @hit trigger. (Issue: #1159)

* added: MAGICF_REACTIVEARMORTH (010000) MAGICF flag to Sphere.ini to let people decide if reactive armor should reflect two handed weapons.

* Fixed: Possible fix for accesses and bans not loading for multis. (Issue: #1223)

* Fixed: Possible fix for wrong damage calculation of slayer bonus damage. (Issue: #1179)

* Added: REGION_FLAG_HOUSE (0x0100) flag for houses. (Issue: #1154)

* @Murdermark Update
Added: ARGO object for @Murdermark trigger to get killed character.

* @RegionResource Fix
Fixed: ARGN1 (reap amount) doesn't updated depends on the amount left on bit. (Issue: #1224)
Added: ARGO to get bit uid under @ResourceGather and @RegionResourceGather triggers.

* Multi Invalid Region Fix
Fixed: Possible fix for the OnRegionTrigger getting called on invalid region while multi creating/removing.

* CAN Flags DWORD to UINT64
Changed: dword CAN flags changed with uint64 to increase limits.

* Fixed: Possible fix for chat debugs. (Issue: #1212) (Issue: https://discord.com/channels/354358315373035542/483721253773901824/1224030729906815077)

* Added Missing Data to sphere.ini

* t_crop update
Added: "MOREX" key to set amount of fruit given when the crop ripped.
Changed: Now @create trigger called when crop grow to let people to change MORE values in stages if needed.
Added: @ResourceTest trigger added for crops. (This trigger works seperately for every stage)
Added: @ResourceGather trigger added for crops. (This trigger works seperately for every stage)

* Fixed: Possible fix for invalid ResourceID warnings. (Issue: #1071)

* Fixed: Missing REGION reference for multis. (Issue: #1228)

* Elemental Engine Flags
Added: ElementalEngineFlags variable added to sphere.ini to let servers to filter elemental engine. (Issue: #1230)

* Custom Multi Count
Fixed: An issue that causes T_MULTI_CUSTOM keep multi count saved. (Issue: #1232)

* Fixed: Bonded pets cannot see their master while DeadCannotSeeLiving equals to 2. (Issue: #1225)

* Standard Guild Align Fix
Fixed: The issue that causes Guilds without align shown enemy to the players with a guild with align. (Issue: #1208)

* GMs Dress Players
Fixed: GMs cannot dress up players. (Issue: #901)

* GM unequip fix
Fixed: Wrong check block GMs to unequip item from players.

* Custom Hosing Fix
Fixed: An issue that causes a visual bug to remove all tiles while removing a tile in higher floors. (Issue: #345)

* Merged Jhobean's Pr
Merged Jhobean's EMOTEF_EAT PR and split EAT flag for npcs and players. (PR: #1207)

* @hit and @GetHit as Item Triggers
Added: Trigger @hit is added as an item trigger.
Added: Trigger @GetHit is added as an item trigger.

* Visual Range Update
Added: MAPVIEWRADAR, MAPVIEWSIZE and MAPVIEWSIZEMAX to sphere.ini that overrides default visual range values. (Issue: #1144)

* H keyword for Hexadecimal returns
Added: 'H' shortcut for variables to get the value as hexadecimal.

* raydienull's LAYER_STABLE PR merge
- Merged: raydienull's LAYER_STABLE build merged, but LAYER_AUCTION keep same as LAYER_STABLE added as a new layer. (PR: #1201)
- Fixed: raydienull's LAYER_STABLE follower triggers doesn't called while taking pet out of stable.
- Fixed: raydienull's LAYER_STABLE doesn't work with the new follower system.
- Removed: Unnecessary LINK == PLAYER checks as figurines will be stocked on the owned player.

* c_man_gm
- Fixed: Setting GMs dispid to c_man_gm in-game, prevents GMs to use in-game commands.

* NPC Hear Distance
- Changed: Default NPC hear range reverted back to the 14 from 4, as it was 14 in older versions, as there was no reason for changing it. (Issue: #1215)

* CCChampion Rework
- Fixed: Candles keep stuck while killing npcs. (Issue: #564)
- Fixed: LEVELMAX doesn't affect the max level of champion system, and keep spawn npcs for default max level.
- Changed: Spawn system changed and now it automatically calculate the percentage of spawns per level in descending order.
- Changed: Candle calculation is now depend on max level, instead of static 4 level.
- Added: SRC added in @start trigger. SRC is a reference of player that starts champion spawner.
- Added: @complete trigger that triggers when champion completed. (Issue: #477)
- Added: @DelRedCandle trigger that triggers while red candle removing.
- Added: @DelWhiteCandle trigger that triggers while white candle removing.
- Added: @Level trigger that triggers when champion level up.
- Added: @Stop trigger that triggers when champion stopped.

* T_MULTI_ADDON Fix
- Fixed: Script multis move 1 block north when their type set as t_multi_addon. (Issue: #1238)

* ADDCOMPONENT
- Fixed: ADDCOMPONENT command was added as ADDCOMP for houses.

* Reactivated Hardcoded Fishing Skill
- Changed: Re-activated 56b style hardcoded fishing system, as I don't know why it's deactivated as softcoded system too bad and broken.
	- Fishing skill in default script pack should updated.
	- Delay should set to 2.5-3.0
	- All softcoded system should removed.
	- If anyone want to code their own fishing system, they can use SKF_SCRIPTED.

* EF_DAMAGETOOLS Update
- Added: EF_DAMAGETOOLS flag implemented to the sphere.
	- Added LOCAL.ITEMDAMAGECHANCE to the @success trigger for skills to decide damage chance for tools. (Default: 25)
	- Added LOCAL.ITEMDAMAGEAMOUNT to the @success trigger for skills to decide damage amount. (Default: 1)
	- EF_DAMAGETOOLS only affects the skills with SKF_GATHER flag.

* m_ridFruitOverride CAN_I_SCRIPTEDMORE update

* SPELLFLAG_NOUNPARALYZE
- Fixed: SPELLFLAG_NOUNPARALYZE flag wasn't working as intended.
@cbnolok cbnolok closed this Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants