Coder Social home page Coder Social logo

polserver / moderndistro Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 17.0 21.93 MB

Package of scripts and configs needed to run POL

Shell 0.61% Batchfile 0.54% Pascal 54.87% PHP 0.82% C++ 9.30% HTML 16.13% SourcePawn 4.71% CSS 0.23% Pawn 2.32% NASL 6.51% Classic ASP 0.32% Python 0.02% POV-Ray SDL 3.63%

moderndistro's Introduction

Build Status Coverity Scan Build Status Coverage Status

POL

PenUltima Online (POL) is a MMO server, compatible with most Ultima Online clients. POL is customizable via configuration files and has its own scripting language (eScript). POL has been tested and run on both Windows and Linux natively, and builds are offered for both.

More information: http://www.polserver.com.
Forum: http://forums.polserver.com/
Docs: http://docs.polserver.com/

Discord: https://discord.gg/4JbC8hA

If you find bugs, please create an issue with the dump, relevant log lines and your best guess on how to reproduce the bug.

Current stable version: POL 100.1.0

Current development version: POL 100.2.0

Always check the core-changes.txt file for breaking changes when using the development version. We'll strive to keep the development version stable.

Contributing

You can send us pull requests at anytime. We expect you to be the author of the contributed code or that it's in a compatible license.

We always need updates or better descriptions in the docs, so feel free to send pull requests for changing them. You can find some of them in docs/docs.polserver.com/pol100.

The best way to get used to the code is to search for eScript functions in the cpp files. For example, "SystemFindObjectBySerial" or "ApplyDamage". This way you can see how eScript interfaces with the core and how to add/modify modules and functions.

Compiling in Windows

You need at least cmake version 3.9.

Recommended: Open the CMake GUI select the the root folder as source code folder, select the bin-build subfolder as "where to build the binaries" folder, and select your installed Visual Studio version e.g. Visual Studio 14 2015 Win64. Now simply press configure+generate+open project and it will directly open the solution file in your IDE. After building the binaries are located in the bin folder.

Not Recommended: If you are using Visual Studio 2017, you can try using the integraded CMake: use the open folder function and select the root folder. CMake will take a while to load: wait until the CMAKE manu appears, then you can use it to start the build, make sure to have the Realease mode selected.

Minimum compiler version: Visual Studio 2017

Warning: We can not easily debug dumps from self-compiled cores. Make sure you save the .pdb and .exe!

Compiling in Linux

Make sure you have the required libraries installed: zlib, openssl and the mysql client (if SQL supported is desired).

Then run the following commands (you need at least CMake 3.9):

  • cd bin-build
  • ./build_linux.sh

Minimum compiler version: GCC 8 or LLVM/Clang 7.

The command will generate binaries and dynamicaly linked libraries in the bin/ folder. You need them all for your binaries to work. Debug symbols are included by default.

To generate a compressed distributable archive (without debug symbols), then use ./build_linux_release.sh.

Manual/Advanced compiling

The following instructions are only for advanced users. If you only want to compile the core, please follow the steps above.

This software uses a CMake-based build system. CMake is a build system generator: on Linux, it will take care of generating a Makefile. If you are familiar with linux source tarballs, just think of cmake as a modern replacement for the good old ./configure script.

First of all, run cmake one first time and let it do some autodetection:

cd bin-build
cmake ..

A file called CMakeCache.txt has now been created: inside this file, you will find all the settings that will be used for your build. You have many options to edit this file:

  • by hand, with your favorite text editor (read the comments in the file header for a quick syntax briefing)
  • from a terminal GUI, like ccmake (sudo apt-get install cmake-curses-gui to install it on Debian-based systems): just launch the gui by typing ccmake . and follow the interface
  • from a X window GUI, like cmake-gui (sudo apt-get install cmake-qt-gui to install it on Debian-based systems): just launch the gui by typing cmake-gui . and follow the interface

Here is a non-complete description of the most useful options:

  • FORCE_ARCH_BITS='<bits>' replace <bits> with 32 to force a 32 bit build, 64, to force a 64 bit build. The default settings use autodetection.
  • BUILD='<type>' replace <type> with one of the following:
    • Default: runs the default build using default settings
    • Debug: makes a debug build (adds '-O2', '-g', '--ggdb')
    • Valgrind: makes a special debug build to be used in Valgrind that will run very slowly (like Debug, but uses '-O0' instead of '-O2')

You can also set an option directly with the '-D' cmake flag, by example:

cmake -Wno-dev -DFORCE_ARCH_BITS=32 -DBUILD=Debug

Keep in mind that even when set this way, the option will be saved in the CMakeCache.txt configuraton file and remembered for future builds.

You can now use the classic make command to compile the POL. You can type:

  • make or make all to do the build

You will find the compiled files inside the bin/ folder.

To delete intermediate build files and clean the folder you can use the interective clean.py script.

moderndistro's People

Contributors

2dchaos avatar admin-yukiko avatar asylum- avatar che666 avatar davidjsgardner avatar eric-swanson avatar frozenblit avatar hope-lives avatar kevineady avatar pumpk1ns avatar reloecc avatar sigmantium avatar strobelartesao avatar turleypol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moderndistro's Issues

Tactics is not rising

Tactics is not rising any skillpoints. The bug is happening at 0.0 tactics and 101 dex (I know... random number. Could be dexterity related. I'll test it later) and using a war axe with kiteshield.

Pickaxe can't be made

I believe the recources needed to make the pickaxe are not listed in it's script.
It is present in tinkering menu but can't be crafted

buffs properties

properties are not deleted from the character after the server restart.
We start the server and we can’t make ourselves a buff, since properties are present

Some macefighting weapons dmg

War axe , Hammer Pickm, smith's hammer, war hammer, mace, war mace damages are hitting 12 every time even with skills at max and even if you modify the damage in .info

it looks like a problem with some macefighting weapons.

(war axe should be macefighting? I think as a Axe it should be on Swordmanchip, right?)

Bug with recall runes

Ok. After brief testing I've found that recall runes do not work as they should.

First thing is bug in circle5/mark.src spell script.

if (cast_on.IsRecallRune())
        SendSysMessage(caster, "You can only cast that on a recall rune!", color := 33);
        return;
endif

it should be like this (exclamation mark is missing :) ):

if (!cast_on.IsRecallRune())
        SendSysMessage(caster, "You can only cast that on a recall rune!", color := 33);
        return;
endif

After fixing that I've found that items/rune/recallRune/use.src is checking 'x' prop instead of new Destination struct to see if rune is marked. Rune is marked but if we double click rune it will say it is not.

That probably needs switching to rune.GetDestination() method. But... if you do that we need some kind of error returned from that method because if you double click rune and use GetDestination() method then var destination := GetObjProperty( rune, "Destination" ); will return error which will lead to code that checks "old type rune" and that will fail also setting new Destination prop on blank rune with errors :)

So to fix that we need better checking if rune is old :) or maybe add IsRuneBlank() method :)

So far I've found this. I'm not sure where else this can go wrong too :) So because it's not just one exlamation mark I'll leave this here for review.

oncreate.ecl not working properly

When creating a new Character and choosing Paladin, warior, ninja or samurai The oncreate.ecl can't create the newbie items as practice krysis, longsword and shield (not sure if other items are created.

When creating a new Character and choosing Mage or Necromancer, the client is disconected and in pol cmd it shows "Starting skill values incorrect"

Treasure Chest not adding items

When using treasurechest spawn system, it is unable to spawn items in ti. Instead it spawns a key

in POL cmd it gives a messege like the one below for each item it can't spawn
syslog [pkg/tools/gmtools/spawnTest.ecl]: Unable to create sapphire on wooden chest. Error= Could not insert item into container.

Tailoring or/and scissors not working properly

Tailoring has some issues:
-making a leather armor and cutting it to get materials returns clothes and not leather.

  • With high skills (150) cutting a dress(for exemple) that uses 10 clothes to be made, it returns 11 clothes back

Riding mount

On tuesday it was working normaly (and i've not touched the codes) and today the mounts are desapearing after riding them a littlebit

Moving items arround

Sometimes, when you are moving items arround into bags or containers and try to move anything else it says "You are already holding an item" and you have to logout and login again to fix it

Scimitar not listed in blacksmithy.cfg

Scimitar is not listed on blacksmithy.cfg but is listed in SmithMenu.cfg, thus it apears to be crafted but it can't be created with blacksmith in game.

Several Issues from Discord

strobelartesao — Today at 8:14 PM
Hello, my friedns. I was playing around with modern distro and placing some npcs and found some strange things. The Stablemaster spawns naked and with no hair.

Also testing damage with some friends, something must be of (i don't know how to check it in the scritps... noob here). They went to a cemitery and the damage looks like is always only based on STR and not on the weapon or skill they have
[8:15 PM]
is there something i have to setup and configure?
[8:19 PM]
i've noticed when someone with a horse/ostard/llama dies, the animal desapears and when you ressurect the player a strange random item is created in your bagpack.
[8:21 PM]
does it looks like bad configuration or i've messed something up?

strobelartesao — Today at 8:29 PM
Ow! Remembered now: the jeweler don't buy jewels and gems

strobelartesao — Today at 8:38 PM
Owwww! Annnd the scrolls didn't disappear when used and staff's/wand's charges don't consume
[8:40 PM]
Looking to all those errors, I'm quite sure the problem is on my side... Is there any chance someone can help?

Dev_GIB — Today at 9:10 PM

Scissors not working

Found out scissors where not working. Went to the scripts and saw that the item had different names(codes?) in different scripts. Fixed that here in my end. Now the scissors work for cutting cloth rolls (don't know the name and will check later) but can't cut clothes and other items.

tinkertraps.ecl does not exists

When trying to open a traped container such as a treasure chest it does not trigger the trap. In POL cmd it gives this messege

Warning! pkg/skills/tinkering/tinkerTraps.ecl does not exist!
Exception caught while loading script pkg/skills/tinkering/tinkerTraps.ecl: Unable to open pkg/skills/tinkering/tinkerTraps.ecl for reading.
Unable to read script 'pkg/skills/tinkering/tinkerTraps.ecl'

Cooking not working

You can't dobbleclick any raw food to cook it. And you cant make fire to cook it too

Pickaxe durability

The Pickaxe's durability stays in 45/45 even after heavy usage but sudently it breakes

Crates and Chests

Every interactive (openable) chest and crate in the world has a key in it.

Treasure chests are being created as regular chests with a key in it

Need to see how quality modifiers work in crafting scripts.

There appears to be something awry with crafting. The quality value of an exceptional item, as reported by the crafting script, is 1. The issue is that the base quality on items is 1. Exceptional items should have a quality value > 1.

Bandages are not healing

Bandages are not healing, doesn't come back to the inventory bloody and doesn't raise healing skill

controlCorpse.src

does not change the graphics of the corpse

corpse.graphic	:= 0xeca + RandomInt(9);

Ores and attributes

Different ores don't give different specks to armor and weapons.

The armors are created with the ore color but not attributes
the weapons are created with the correct name but not the ore color and attributes.

Dying riding a mount

When you die riding a mount it disapears and become a strange item (usualy a ship tile) in your bag when you ressurect

Choping wood

Choping wood is giving the player 10 logs each time it collects wood

Tamed Horses movement

I Asked a tamed horse to follow and it follows tile by tile stoping every step it takes

Some sounds are off or missing

I've noticed many sounds are "missing" or "different", like the pickaxe sound is a "punch" sound instead of "tchktchktchk". The sounds of putting things in your backpack are missing. Like throwing som coins in your bag or getting ore while mining. Nothing makes sound. The sound of smelting ores is a "bubbly boiling" sound and not a flames/forge sound.

Missing chargeUpkeep script

In scripts/misc/logon.src in function RestoreMods around line 470 we can find:

start_script(":combat:chargeUpkeep", parms);

but this script does not exist in modernDistro package.

also there are calls through start_script inside pkg/systems/combat/include/equip.inc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.