Leaderboard
Popular Content
Showing content with the highest reputation on 05/19/21 in all areas
-
Changelog 09.06.2021: Bumped Unity to newest version. Various minor adjustments and cleanups not worth mentioning. Many TBA client changes that will follow before client-server release. Added around 80 new cosmetics that contain of accessories, mounts and headgears. Coded Knockout Drops to knockout one of your Pokemon outside of battles. You do not earn or lose happiness in pvp battles anymore. Coded Thousand Arrows. Coded Power Construct (Zygarde form changes). Reworked PvE switching moves such as U-Turn/Volt Switch/Roar. Fixed that 2 stage moves can bypass semi-invulnerable. High Jump Kick recoil doesn't occur on flinch anymore. Fixed Protect. Protect will protect you against Status moves now. Hyper Cutter only prevents atk lowering now. Clear Smog respects the type immunity now. Coded Random Battles: Coded Random Battles ladder. Users with MS have guaranteed shiny pokemon and a 20% chance for every other pokemon. All pokemon in random battles team have max PP. You can queue for random battle from everywhere. Fixed critical hit. Negative defensive boost won't be ignored anymore. Head Smash recoil is always 50% of the damage dealt now. You can no longer thaw or wake up when you use item in battle. Reworked Fake Out. It should fix all edge cases. Fixed Technician in combination with weather effects/boosts. Changed Avalanche and Pursuit code order to make their effect unaffected by Technician. Sticky Web lowers the speed of Magic Guard pokemon now. Trick is blocked by Protect now. Flinch should only be activated on the attacking turn of 2 turns moves now. Magic Coat bounces back when Soundproof is active now. Gravity is coded now. Red Card is coded now. Added a missing text when status moves fail due to semi-invulnerable moves. Added Battle Turn counter after every round. PvP battles automatically end in a draw after 1000 battle turns now. Fixed a bug where status effects weren't applied after the enemy died due to some edge cases. This includes poison, burn, leftovers, magma storm and similar that were skipped in these cases before. Coded Noble Roar. Coded Zoom Lens. Fixed a raise condition for invalid natures in python. Fixed that breaking Subsitute removed the Ditto Transform. If a Pokemon faints after using Knock Off due to the target's ability (Rough Skin or Iron Barbs) or held Rocky Helmet it doesn't remove the target's held item anymore. Two-stage moves such as Solar Beam can no longer hit Pokemon that are in a semi-invulnerable move. Working on a test framework that should massively reduce the chance of an issue like that to make it into a server release for some time now. Removed redundant assignment for many string.append calls. Renamed a few global vars to have the g_ prefix. Changed user bg_task to not pass the user as argument because it turned out to be more clutter in the end. Changed user mtx type to std::recursive_mutex and renamed it from csTL to user_mtx. Replaced a few calls to is_ptr_alive with nullptr checks. Don't call Faint on npc user objects on battle end. Only send after-battle packet to real players. Renamed class member variables to lower snake case and added "_" prefix to private variables. Reworked cChannels class: Now uses MariaCpp and prepare. Added internal mutex to remove dependency on global g_dba_crit_sec. Removed MariaCpp error wrapper and return MariaCpp connection from get_new_con directly. Moved generic cDB error wrapper from h to cpp file. Reworked cCoinShop to use MariaCpp and removed unused RemoveShopItem method. Changed type of cUser last_saved from int to chrono::time_stamp. Changed type of cConfig autoUserSaveInterval and minUserSaveInterval to chrono::seconds. Made various cpp globals static because they always were supposed to. Being in team-preview will be treated as being in battle now. Use sendEnvironment in thunder method instead of redundant code. Reworked cFriends to use MariaCpp and removed redundant RemoveFriendship method. Reworked cGuild to use MariaCpp and removed part of the motd and logo escape code that was purely db related. Removed redundant guild reload code. Reworked cIgnore to use MariaCpp. Reworked cItem to accept MariaCpp result sets. Reworked cItems to use MariaCpp and more clearly separate global items and user inventories. Added an npc getter that returns a shared_ptr& (npc instances are bound to their respective map objects which are bound to users which in turn are only ever deleted in the main thread. this means that npcs will never get deleted while in use in the main thread.). Reworked cNPCBattles to use MariaCpp and some of the methods now take shared_ptr& instead of shared_ptr. Reworked login code: Moved all initial connection and login code into a coroutine that co_awaits blocking socket reads. Moved threaded part of the login code into load_user method. Added static simple_send method to user class that is supposed to be used before the user object is logged in far enough. The login code now loads the user object in isolation and connects it to the object structure after than in the main thread. Removed connect method as everything related to the process now either happens in the connect coroutine or in the load_user method. Split up msgbox generation and sending to allow the login code to send msg boxes vis simple_send. Split up q packet generation and sending so the login code can send it without a call to teleport. cUsers add_user function now returns a success bool in case a user with the same name is already logged in. Reworked logout code: Don't disconnect user in the ProcessPacketQ method. The only place where users are now being disconnected is in the main socket select and process data code. User objects are now stored as shared_ptr whith a custom deallocation method that ensures the actual destructor is always called from the main thread. The disconnect process now involves one switch into the user save thread to save the user and then back to the main thread to remove global associations with chats and guild. Renamed StartRareBattle to StartWildBattle because thats what all the overloads actually do. Changed is_ip_banned and is_mac_banned to be static and take the ip/mac via parameter because it needs to be usable before the user object has even been instantiated. cUser SetShop now takes an r-value reference to avoid an unnecessary copy. Removed the $ToSoon message right after a normal friendly battle. Added error system message if a person that you accepted a pvp request from has already challenged someone else. Update both player's visible battle state when a teampreview or a battle has been started. Various client->server packets no longer update LastAction or only do so if appropriate. Removed SafeChannelChange logic as this can now easily be scheduled with schedule_func. Fixed a potential uint underflow in the gain money function. cUser set_connected setter now updates the global ip_counter. Removed isMoving as it is not being used anywhere. Various places now allocate a local shared_ptr<cUser> to make sure the user doesn't get deleted unexpectedly. Changed various function argument types from cUser* to shared_ptr<cUser>&. Only try to access users current map if not nullptr (to set region and caught map). cUserPkmns cleanup: Fixed cUserPkmn GetCount. Added get_array_size again and return it instead of GetCount in python to make index access work as expected. Reworked pokemon slot allocation and always resize pkmns array down to only the necessary number of elements. Added constructor for npc battle or random team cUserPkmns instance. Don't use the new ranges stuff anymore in update_arr_positions because in the end it complicated stuff instead of simplifying it. Improved string concatination in user senddetails method. Important fix! call CoInitialize in all threads that potentially use networking. Added special lock_python function that takes a mutex and locks it like the python mode of cs_guard did. Removed user_login_guard for now. Changed user_poke_guard to work with std::recursive mutex and use it to conditionally lock user mutex. Reworked globals: Made globals value types. Moved each global object to its corresponding .h file instead of having one globals.hpp. Implemented proper destructors for them. Moved various global objects out of the g_Users adn g_Environment objects and into their own respective .h files. This necessetated a lot of additional include juggling but in the end its fewer total includes in each file. Moved global object initialization from constructors into load functions as necessary. Changed a few class enums into unscoped enums to get implicit to int conversion but contain them in a namespace with the same name. Removed GetDexId from cPkmns and cUserPkmns and use GetDexMon instead. Changed hidden power logic to exclusively rely on the Type enum which now is unscoped. For xanascript type string we now cast type enum to string and uppercase the result because its not needed anywhere else. Removed redundant user UpdatePokedex and call pokedex.Update directly via the user.GetPokedex() getter. Replaced a few int ids with their corresponding enums. Renamed a few from and to enum conversion functions. Moved phase switch into cUser method. /goto now switches to the targets phase as well. Limit g_Environment update calls to slower interval. Added use after free intentional crash command option but it doesn't work for some reason. Implemented proper handing of potential winsock2 send WOULDBLOCK errors. Merged individual battle stats related methods to one that takes the match type enum as its only argument (this cleaned up a few code smells from the addition of random battles). Changed a few function arguments from const string& to string_view where appropriate. Made a few static data holding objects constexpr. Use discard method in static random function. Fixed potential issue with user_iter helper in case of more than one recursive iteration call (locked_shared needs to count recursions instead of just being a bool). Made IsNumeric function accept negative numbers (strings starting with "-" in particular). Added nodiscard arrtibute to a few functions in helpers. Removed the ToNum helper function that takes an explicit search length and changed the other overload to take a string_view which can be used to achieve the same result. Removed unecessary layer of indirection for exec_every and randomize the initial delay to prevent stacked load on individual server ticks. Fixed log_msg std::format calls in match_maper.cpp because msvc c++20 is now feature complete. Actually use del function on ServerVarsWrapper for delattr and delitem python magic methods. Differentiate between len and count for user.pokes so len - 1 can be used as container index for the last element. Improved server tickrate regulation by using win api timeBeginPeriod to reduce the lag variation of sleeps (and make sleeps viable at all). Improved login speed by accepting up to 25 connections each server tick instead of just one. Fixed python pokemon iterator by storing a shallow copy of the poke pointers and interating that instead (as the object is also used for slices this makes more sense anyway). Removed unnecessary schedule_func wrapping for python pokemon free (the used cUserPkmns methods are entirely thread safe). revert this if pokemon pos overlap issues pop up again.10 points
-
2 points
-
2 points
-
1 point
-
1 point
-
1 point
-
Pseudo et Tag Discord : Flap#3986 Âge : 29 ans. Quelques mots sur vous : Le pire do jeu. Quoi que je fasse, je suis constamment mauvais. Quels sont vos objectifs dans le jeu (PVP, farm, collection de PKM) ? : PvP. S'il vous plaît, aidez-moi à obtenir 100 points dans le chat vocal. Pourquoi devrions-nous vous choisir ? : Parce que j'ai besoin d'une maison en Or et mon français est terrible. Merci pour la lecture.1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
What is the role of a Moderation Staff member? PRO's Moderation Team is a group of staff who provide support for players and ensure that PRO is kept in order. The Moderation Team make sure that users follow PRO's Rules and support players on the forum and in-game. Moderator [RECRUITMENT IS OPEN] A Moderator's primary focus is in PvP, and Chat violations. They maintain order in-game and make sure that users are following the rules. Moderators handle Reports, Appeals, and the PvP subforums. A good candidate for Moderator is someone who's an experienced member of PRO and has good knowledge in the PvP and Chat rules. Moderator is the most recruited role in PRO, it's important that Moderators would be able to put aside at least one hour per day for their duties. Trade Moderator [RECRUITMENT IS OPEN] TMods are supposed to do three main activities: dealing with reports in the Report Center, making sure the Trade subforums are all in order and that every topic is following the Trade Rules, and moderating chat channels in-game. TMods are the principal forces responsible for watching over Trade Chat in-game, but they also moderate everywhere there could be an infraction. TMods will step in if a player needs help with a general, non-role-specific issue that any staff member could address effectively. A good candidate for a Trade Moderator is someone who's an experienced member of PRO and has good knowledge in the Trade, PvP and Chat rules. Requirements Even if you don't meet the requirements, small exceptions may be made if the rest of your application is promising. (Mandatory) requirements must be met in order to apply. At least 200 hours in-game playtime. Able to dedicate yourself to staff work and deliver efficiently. 18 or older is preferred, applications from younger applicants will be considered if exceptional Can understand English at an advanced level. (Mandatory) You can still be accepted if you are from an area that isn't listed. These are just our priorities based on our highest userbase countries. What we look for in applicants. Strong communication. Open-mindedness. A positive attitude. Good organisation skills. Able to work in a team. Can work under pressure. Application The application form is below. Please fill it in and submit it as a new topic Here. We are aware that the questions might looks hard or "too serious" for a voluntary/not-paid position, however it's important to know who we have in front of us when we read their applications. This because the quality of staff is reflected on the community and the greater the staff is and the better the results will be. The previous questions were telling us almost nothing and this would lead to a lot of time potentially wasted from both sides. Your application and results must remain confidential. We ask all applicants to keep the fact they have applied secret. Sharing your application status will result in the rejection of your application. Please be aware that all staff work is voluntary! This is not a career. When applications are open, there will be an announcement on our Discord Server and this post will be featured on the front page of the forum.1 point
-
- Ho oh tail - Scar in eye - Hylia Shield - Majoras Mask - Lugia Surf Mount - infernape hat (with torchlight tool function :D) - Banette mouth - Archeops Wings - Crawdaunt Gloves - Cotton candy, Green Pacifier, Candy Cane, Moomoo Milk .. from lunchbox - Gogoat Horns, Pinsir Horns - Pachirisu Tail - All other ash caps from anime - Hat from the guy u play in Gen 2 games - Rhyperior Arms - Shedinja Halo - Larvitar, Togepi Hat - Sunflora Leafs around face xD - Venomoth wings - Zoroark Hair as a hat - Conkeldurr nose, Probopass nose - Aron Cacnea Trapinch Hats -1 point
-
Red/Blue and or shiny/normal Shuckle surf mount.1 point
-
1 point
-
1 point
-
Start. Abra you've traveled a lot but now it's time to get home1 point
-
Are you serious lmao? Do you really think a single soul will say yes to the changes? Solaceon has always been overpowered , yes its rng dependant but you literally have nothing to lose aside from logging in 2 minutes each day to talk o the reporter . You could say you have to hunt the pokes at the start , while that is true , that's an absolutely disgusting worthwhile exchange for the money you get out of solaceon , and there are even people doing solaceon service where they will catch all the required pokemon for you. The nerf to rewards might have been a bit too harsh, but the change that you have to show the reporter freshly caught pokes should have been the norm from the start -11 point
-
Uff, I never really saw a reason as there are only a few Waterfalls and Dive is only present in Hoenn right now but as many people keep suggesting it then sure. See it as implement in the next client-server update.1 point
-
0 points