-
Content Count
503 -
Joined
-
Last visited
-
Days Won
68
Angelix last won the day on February 25
Angelix had the most liked content!
Community Reputation
370 ExcellentAbout Angelix
-
Rank
Sea Captain
-
So I was thinking of implementing this, and the leaderboard within the NPC shouldn't be an issue, but the reward yes. The leaderboard can be shown, but the whole script itself doesn't reset, so the NPC would show how far a player has gotten through the map's existence. So you can't give out rewards at the end of the month if it's not resetting.
-
Angelix started following Contract System, Delete inventory item though database manager, How do I implemented this for IMP Card and and 2 others
-
There's 2 ItemInfo files. Both must match in order to avoid this error. You probably created a new item within the ItemInfo on server and did not copy-paste that new ItemInfo to client and compile. So just copy ItemInfo to client, compile it and you should be able to enter without issues.
-
Yes, it is possible! You'd just have to add functionality and keep a main database file to keep track of all the players, then based off on that, do an internal ranking and then display that on an NPC.
-
This script can only be used on server files based on "Corsairs Online". Cannot be used anywhere else unless you have sources and rewrite the stuff related to IGS.
-
There's example on how to use. There's probably some more scripts lying around in the forum if you search for them.
-
Those functions you posted do not use LuaSQL. You can replace them for the ones in the other thread.
-
Why not just use LuaSQL?
-
Updated! Anomaly Tower - Release 1.0.0.
-
Update. This has been implemented now! I just went ahead and added a new function that should handle the randomness altogether now. With this function, some of the scripts functions were modified to use that new function and all the rewards can be selected. Just grab the file again from GitHub and you're good to go! Don't forget to modify it to your needs.
-
Didn’t think of this! So it’s not really implemented as of now. It’s not hard to do and can update it later today. Huh. Maybe just luck? I’ll try it out later today and check that out to see if anything is wrong with the randomness.
-
BUMP~
-
Mod Contracts system
Angelix replied to V3ct0r's topic in Mods for client and server (PKOdev.NET mod loader)
Hey there! I made a script for anyone using this mod.- 26 replies
-
- 1
-
-
- pkodev.mod.loader
- client
- (and 5 more)
-
Description: I've modified the lua scripts from @V3ct0r's Contract System Mod to be a bit more customizable. With this script you don't need to give player contracts directly via NPC since they can now be random map drops (given directly to their inventory). Download: GitHub It's hosted on GitHub to prevent loss of the script and potentially fix issues in the future if I feel like it. Installation: Just load the file in your server! If you have a mod/extension folder, you can go ahead and call it from there. Obviously you need V3ctor's Contract System Mod. This script can work on sources, but you will need to modify client source to show the item hints properly. Not hard to do, but I won't be providing anything related to that here! Like I said, just load the file, I won't help with that, sorry! The script is a stand-alone, no other functions are needed (hopefully). The only function neeeded is already hooked. Usage Details: As stated on V3ctor's original thread, create a new item within your ItemInfo. The item's ID must match what is defined in ContractSys.Conf.ItemID. ContractSys.Conf.ItemID = XXXXX The item's type must match ContractSys.Conf.ItemType. ContractSys.Conf.ItemType = 99 The item's function must be the following: ItemUse_ContractSys The system must be enabled by setting ContractSys.Conf.Enabled to true. ContractSys.Conf.Enabled = true If you want contract to be given randomly by killing monsters, then this variable ContractSys.Conf.World.Enabled must be set to true. ContractSys.Conf.World.Enabled = true In reality, this must be always set to true since there's no other option to get contracts from, they were not implemented! Adjust the maximum of active contracts a player can have at a single time. ContractSys.Conf.Limit Add your map to the allowed list, set it to true and adjust the probability to your needs. The probability is from 0 to 100. ContractSys.Conf.Maps['<MAP_NAME>'] = {Allow = true, Probability = 10} I have some examples in there for Forsaken City, Dark Swamp and Demonic World. You can follow those as guidance. Add some monsters that spawn in your map, along with their probability, minimum and maximum quantities. ContractSys.Monsters['<MAP_NAME>'] = { {Allow = true, ID = <MONSTER_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Rate = <MONSTER_RATE>}, } <MAP_NAME>: This is your map's name like "abandonedcity". <MONSTER_ID>: The monster's ID that spawns in that map. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that the player can be tasked to killed. <MONSTER_RATE>: The rate as a number that is used to add weight to the item. This number will be added with the other rates from the monsters in this map's monster list, the lower the number compared to others, the lower probability this monster will appear in a contract. I have some examples in there from Forsaken City, Dark Swamp and Demonic World. Add some rewards to be given when completing contracts obtained from your map. ContractSys.Rewards.Maps['<MAP_NAME>'] = { {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, } <MAP_NAME>: Your maps' name, such as "abandonedcity". <GOLD_AMOUNT>: The amount of gold to be given (if none, just set to zero). <ITEM_ID>: The item's ID to be given. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that can be given from the previous item. <ITEM_QUALITY>: The quality of the item (mostly used for gems). <REWARD_RATE>: The rate as a number that is used to add weight to the reward. This number will be added with the other rates from the items in this map's reward list, the lower the number compared to others, the lower probability this reward will appear in a contract. Now, if you want a monster to have specific reward, you can also add that. This will override other reward tables. ContractSys.Rewards.Specific[<MONSTER_ID>] = { {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, } <MONSTER_ID>: The monster's ID that will have specific rewards. <GOLD_AMOUNT>: The amount of gold to be given (if none, just set to zero). <ITEM_ID>: The item's ID to be given. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that can be given from the previous item. <ITEM_QUALITY>: The quality of the item (mostly used for gems). <REWARD_RATE>: The rate as a number that is used to add weight to the reward. This number will be added with the other rates from the items in this map's reward list, the lower the number compared to others, the lower probability this reward will appear in a contract. Script Logic: Player defeats a monster. System will look if the map where the player is located is defined. If defined, then it will grab a monster from that list. If not defined, it will grab a monster from the generic list. It will set the monster to the contract and a random amount between the minimum and maximum quantity available. Player must defeat the quantity of the monster set within the contract. Upon completion, player must double click the contract to finish. System will look if the monster has a specific reward and choose one from there. If no specific reward is set for that monster, then it will iterate through all the maps defined to see if the monster is defined within there. If a defined monster is found, then it will grab a reward from that map's list. If no reward has been chosen, then it will grab a reward from the generic list. The gold (if any) and item (if any) will be given to player. The quantity will be random from the minimum and maximum set.
-
You can always send a message here or discord. As for what keeps me here, probably nostalgia, playing with lua stuff and a few bucks here and there since I provide lua services. I'm also mentoring someone and helping them open up a server, so there's that.
-
If you won't discourage them, I will. This person bought these sources from someone else and doesn't know how to do anything. And the person probably doesn't have a private client and needs a tool to unpack the client to add stuff, which again, doesn't know what tool. So as @champ said, you're free to do whatever you like, but I think they may be other people willing to post proof of the sources they claim to sell. At least not with random "they have new resolutions, mounts, offline stall, new game settings and vip shit. Original "Corsair Online" files had these things right off the bat and they're available for free and using the same VS versions. Also, you can probably look through their pkoDev content history and conclude that this person does not know a thing about sources/C++ and is selling something they don't know about. Just my two cents, I'm muting this thread.