kaioru / edelstein Goto Github PK
View Code? Open in Web Editor NEWA v.95.1 Mushroom game server emulator written in C# .NET
License: MIT License
A v.95.1 Mushroom game server emulator written in C# .NET
License: MIT License
https://bbb.hidden-street.net/quest/job/first-mission-infiltration
should be done once you adv as rouge, however of itself it is not.
currently hack-fixed by script:
quest = target.get_quest(2351) -- First Mission: Infiltration
if quest.state != 0x0 then
quest.complete()
end
tho i don't think it belongs there
Quest: The Dark's Lord trivial first problem
Mobs: Shroom
killing shrooms doesn't count towards the quest
public ITemplate Get(int id)
{
return !Templates.ContainsKey(id) ? null : Templates[id];
}
This is a double look-up. Use "Dicitonary.TryGetValue" instead.
Hello, i have just compiled Edelstein on Win7 64x setup the path for nx/scripts and then tried to login via v95localhost i found on ragezone. Compilation went ok, however the client crashes on login. Theres no exception being thrown in VS. Heres the screen:
btw why is the console formatted so messy o.o?
Hello,
I got this compiled and running on my Raspberry Pi 4 and realized all the links for a v95 localhost are dead...
Just wondering if someone could point me in the right direction on connecting to this. I'm super out of the loop on MS private server stuff, just trying to test this out for fun.
Thanks!
Ferdi, the Edelstein School Headmaster doesn't give 2031010 upon completing the LVL 10 resistance quest. If manually given then work as intended.
items should de-spawn after a while
I released a localhost sometime ago in ragezone, but it has a bug with the user login / password.
So I would like to suggest one of the following options:
In my view, having a DLL that can be used to extend the client would be killer.
Best,
This issue tracks the progress on state of various undeveloped features/enhancements or present bugs as I slowly review the entire plugin.
My main perspective on the requirements presented is based on idea that Rue should provide 2 main points:
Easy of use for E2E testing, as currently were still lack proper fully automated means of E2E testing yet, Rue should be able to offer partial solution for some aspects of that and offer easy way to attain any configuration of client states easily. Give a way to emulate/simulate/bypass certain events as to test them without having to go thru everything manually ingame which may be even impossible for lets say GM events or complex party quests.
Show what is already doable with the current state of affairs of neatly written codebase @Kaioru provided us with which was written and rewritten many times to take things like ease of extendibility and modifiability into account. As such offers a platform to test out protocol or game/login server code without actually having to modify the original code at all. What I personally consider an attractive aspect of modularity/isolability being part of the design.
Lack of more descriptive logging of init and mainly start of plugins, I would expect something like:
[PluginRue] RueLogin loaded with LoginContext into server nameof(server) registering into pipelines following custom plugs:
[0] AutoRegisterPlug with priority High
[1] AutoLoginPlug with priority High
Add to CommandManager
some kind of memory which would make a history of commands and would allow to move backwards/forwards in processing that history to undo/redo n command "steps".
Implement ConversationTextFormatter
should generalize and unify approaches for generating text for conversation speakers. This implies using the client text formatting syntax to achieve things like positioning(left, right, middle, top, bottom), whitespace management(toBlock, toParagraph, insertEmptyLine(int count)), character formatting(coloring, italics, bold), hyperlinking(items, skills, characterName, mobs, quests), lists formatting(create, remove, fromText, reorder), progress reporting, pagination(offer ability to make book of pages... determine text length on each page, split into pages)
Implement better textual search handling currently its either slow or lacking in effort put into working with the input, often returns nothing even when given half of the skill name. So we have lack of input processing, lack of search for closeness or relatedness, lack of suggestions of possible matches.
Generalize Stats, Skill, Equip commands to handle entire recordSnapshot(s), something like base IRecordSnapshot
-> IStatRecordSnapshot
, ISkillRecordSnapshot
, IEquipRecordSnapshot
and implement on these SetTo(IRecordSnapshot snapshot)
this gets you to wrappers/extensions like SetToJob()
, SetToDefault()
, SetToQuestState()
, ultimately combining the snapshot interfaces into a ICharacterBuildSnapshot
Help Command
Skill Command
ResetAll()
method merely sets all skill records to level 0, this doesn't imply the meaning of resetting to a default or previous state. This should be called SetAllToZero()
as its common for an alt of a main chair to inherit some of skill levels in various blessings, for such char the default is not all records at 0 at all.Stat Command
Debug Command
ToChat
args should also implement selection menu and answer in chat window.Why is not in the README;
How to setup "postgresql"
How to configure "servers"
How to configure the "databases"
Furthermore, why are the migration binaries stripped of their ".exe." extension?
Afterward, what localhosts work with the server, what is the point of running, if no clients can detect it
There are many possibilities why Stop method wont run this open possibility of stage registration continually failing due to stages already being registered on a "dead instance".
So either cover possibilities of ungraceful termination
or
Ensure there are no leftovers from previous instance.
client crashed after first dialog screen
when raising intelligence up none M.ATT is gained
Are the lua scripts in another repo?
Nuget also needs to be called manually to restore LiteDB but that's not really an issue, just for documentation purposes
attack or skills don't consume ammunition
Athena Pierce in Aran tutorial doesn't give such quest even tho it should
[fpWizards] : (mpEater) - doesn't work
[fpWizards] : (slow) - does't apply mob status change
[fpWizards] : (poisonBreath) - does't apply mob status change
[fpMage] : (poisonMist) - doesn't spawn mist entity
[fpMage] : (teleportMastery) - doesn't apply buff
[ilWizards] : (mpEater) - doesn't work
[ilMage] : (teleportMastery) - doesn't apply buff
[cleric] : (mpEater) - doesn't work
[cleric] : (heal) - doesn't heal
[priest] : (holySymbol) - doesn't increase exp gain
[priest] : (door) - doesn't spawn door entity
[priest] : (doom) - doesn't apply status change
[hunter] : (arrowBomb) - does't apply mob status change, if dmg kills mob, death anim. gets messed
[hunter] : (powerKnock-Back) - does't apply mob status change, if dmg kills mob, death anim. gets messed
[ranger] : (puppet) - entity is not summoned
[ranger] : (silverHawk) - entity is not summoned
[ranger] : (inferno) - skill cannot be leveled up
[rogue] : (disorder) - doesn't apply mob effect
[assasin] : (drain) - doesn't heal caster
[hermit] : (alchemist) - bonus is not applied
[hermit] : (mesoUp) - bonus is not applied
[hermit] : (shadowWeb) - doesn't work
[hermit] : (darkFlare) - doesn't work
[hermit] : (shadowMeso) - does't consume meso, bonus dmg not applied
[bandit] : (steal) - doesn't steal items
[chiefBandit] : (pickpocket) - bonus is not applied
[chiefBandit] : (mesoExplosion) - works very weirdly first no dmg applied then insta kill
[chiefBandit] : (darkFlare) - doesn't work
[chiefBandit] : (charka) - health/mana doesn't change
[chiefBandit] : (mesoGuard) - doesn't work
[pirate] : (dash) - doesn't apply its buff
[outlaw] : (rollOfTheDice) - doesn't apply buff
[marauder] : (rollOfTheDice) - doesn't apply buff
[marauder] : (energyCharge) - doesn't work
the list continues on, however generally speaking:
case 1: mob status not applied
case 2: skill doesn't heal user/allies
case 3: no summoned entity
case 4: no transformation skill applied
case 5: no buff or bonus applied
currently these are missing functions for scipts:
disableUI() - hides UI
lockUI() - prevent players actions
directionmode()
setStandAloneMode()
PortalSE()
IncreaseSlotLimit()
outlaws skill roll of the dice doesn't work
Your project is incredible, it's rare to see emulation projects for C# lovingly developed! :)
There isn't a discord group or anything like that, so I would like to ask about an issue regarding lua.
It's not necessarily about MS, but rather your implementation of Lua, I saw that some of your scripts wait for a response from the user, such as ask_menu, could you explain to me how you manage this?
Sample:
if target.field == mapFields.getID("NLCSubwayStation") then
selection = self.ask_menu("Hello. Would you like to buy a ticket for the subway?", {
[0] = "Kerning City of Victoria Island"
})
if selection == 0 then
ticket = charInventory.selectTicketToVictoriaFromNLC()
cost = charInventory.getPriceOfTicket(ticket)
if self.ask_yes_no("The ride to Kerning City of Victoria Island takes off every " .. target.as_continent().term .. " minutes, beginning on the hour, and it'll cost you #b" .. cost .. " mesos#k. Are you sure you want to purchase #b#t" .. ticket .. "##k?") then
charInventory.buyTicket(ticket, cost)
else
self.say("You must have some business to take care of here, right?")
end
end
When ask_menu is called, you call AskMenu (in C#), but in the Lua background, it waits for the return at the exact point where it stopped executing? Do you make any kind of use of threads/coroutines?
!dbg quests - print info about characters quests
should print ids, name, status and then values of specific records for each quest
!dbg npcs - prints info about npcs on field
should print ids, name, position(X,Y), foothold, ids quests given
!dbg mobs - prints info about mobs on field
should print ids, name, positionn(X,Y), foothold, lvl, hp, mp
!dbg reactors - print info about reactors on field
should print ids, name, positionn(X,Y), foothold, hp
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.