Jump to content
MMO Society
  • Latest Commits

    • Due to ignoring the warnings from the staff and continuing with the infractions your thread will be locked until further notice. If you believe that this is a mistake, please contact one of the moderators.
    • Please allow a timeframe of 24 hours inbetween the bumps.   It is actually against the community rules to bump more frequently than once every 24th hour.   If you wish to get a sticky you may purchase that through our store.   Thank you!
    • Please keep the bump post to once every 24 hours as allowed by the rules of the forum. Continuing to bump threads every 6 hours will result in both of them being locked.
    • Hey guys, once again we would like to present one of our guides & overview blog posts which can be found in full length at our website: website BFA - PATCH 8.3 OVERVIEW - VISIONS OF N'ZOTH Oct 14, 2019 We will provide you with information about World of Warcraft Patch 8.3 Visions of N'zoth in Battle for Azeroth (BFA). The main features of the patch include the new Vulpera and Mechagnome allied races, Horrific Visions, Titan Assaults, Worgen and Goblin heritage armor sets, Legendary Cloak, Heroic difficulty of a Darkshore Warfront, Season 4 Mythic Keystone dungeon updates along with the new raid - Ny'alotha! CONTENT PREVIEW You can read through detailed patch notes in HERE Or feel free to watch a video recap of Visions of N'zoth content preview below. NEW RAID - NY'ALOTHA The new raid coming in Patch 8.3 is Nya'lotha, the sleeping city that works as the major base of operations for the Black Empire. After N'Zoth has been freed thanks to our efforts in the Eternal Palace, he returns to Nya'lotha, and we confront him and his twisted minions on a final confrontation that should not only decide the fate of Azeroth but of the universe as a whole. In Nya'lotha, we will face many former friends (or foes) as corrupted versions of themselves - Wrathion, Ra-Den, Queen Azshara, Vexiona and even Il'gynoth! N'Zoth is the Final Boss of Battle for Azeroth - Ny'alotha Raid RAID WILL HAVE A TOTAL OF 12 BOSSES Wrathion, the Black Emperor Maut The Prophet Skitra Dark Inquisitor Xanesh The Hivemind Shad'har the Insatiable Drest'agath Vexiona Ra-den the Despoiled Il'gynoth, Corruption Reborn Carapace of N'Zoth N'Zoth, the Corruptor ALLIED RACES - VULPERA AND MECHAGNOME VULPERA Vulpera are cunning nomadic scavengers capable of turning what they find into opportunities to thrive. Clever and resourceful, the vulpera of Vol'dun have survived amidst the sands for generations. Eager to join the ranks of the Horde, their caravans have departed from the dunes in search of adventure. The serpentine sethrak have taken to subjugating anyone they can as slaves, and the vulpera are an easy target for their machinations. If you've taken steps to liberate the vulpera from these overseers, they'll join the Horde on the battlefield.   AVAILABLE CLASSES:  Hunter,  Mage,  Monk,  Priest,  Rogue,  Shaman,  Warlock, and  Warrior RACIAL ABILITIES (subject to change) Bag of Tricks - Use a trick on an enemy to damage them, or an ally to heal them. Rummage Your Bag - Change the contents of your Bag of Tricks. Now where did you put that...? Make Camp - Set your camp location outdoors. Return to Camp - Teleport back to your camp location, Nose for Trouble - Take less damage from the first strike inflicted by an enemy. Vulpera Survival Kit - Find extra goods when you loot humanoids. Fire Resistance - Take less damage from fire. UNLOCKING VULPERA RACE REACH EXALTED WITH VOLDUNAI EARN ACHIEVEMENT SECRETS IN THE SANDS When the next content update goes live, players who've completed the requirements will gain access to a quest chain to recruit the vulpera as an Allied Race. Once you complete the chain, you'll receive the achievement Allied Races: Vulpera and can create a new vulpera on the character selection screen. You'll also unlock a new mount—the Caravan Hyena—for your collection at character creation, which all of your Horde characters can ride. Leveling your new vulpera from 20 to 120 will earn a cosmetic Heritage Armor set that is unique to this new Allied Race. MECHAGNOME Scrappy and resourceful, mechagnomes have improved their fleshy forms with top-notch prosthetics. Though they once sought to mechanize themselves completely, the mechagnomes now seek a balance between flesh and steel. Emerging from years of isolation on Mechagon, they bring both ingenuity and aptitude to the Alliance. They left Gnomeregan to construct a metal metropolis, Mechagon. However, their once wise and ambitious ruler King Mechagon now ruthlessly rules over them with an iron fist. Work together with the Rustbolt Resistance to overthrow their tyrant so these mechanical mavericks will join the Alliance. AVILABLE CLASSES:  Hunter,  Mage,  Monk,  Priest,  Rogue,  Warlock, and  Warrior RACIAL ABILITIES (subject to change) Re-arm - Automatically heal yourself when your health drops to a low life total. Combat Analysis - Get stronget as you fight the same enemy. Hyper Organic Light Originator - Summon decoys of yourself to distract foes. Skeleton Pinkie - Open locked chests. Mastercraft - Function as a personal set of crafting tools for professions.   UNLOCKING MECHAGNOME RACE REACH EXALTED WITH THE RUSTBOLT RESISTANCE EARN ACHIEVEMENT THE MECHAGONIAN THREAT When the next content update goes live, players who've completed the requirements will gain access to a quest chain to recruit the mechagnomes as an Allied Race. Once you complete the chain, you'll receive the achievement Allied Races: Mechagnomes and can create a new mechagnome on the character selection screen. You'll also unlock a new mount—the Mechagon Mechanostrider—for your collection at character creation, which all of your Alliance characters can ride. Leveling your new mechagnome from 20 to 120 will earn a cosmetic Heritage Armor set that is unique to this new Allied Race. WORGEN AND GOBLIN HERITAGE ARMOR The Worgen and Goblin Heritage Armor, originally supposed to come in Patch 8.2.5 and then delayed, is arriving in Patch 8.3, Visions of N'Zoth! TITAN ASSAULTS The first sign of N'Zoth's power we're going to witness first hand are Assaults by his minions, on two key locations in Azeroth that are home to Titan facilities. Now, these Titan facilities are our world's last defence, our final bulwark against N'Zoth coming completely into our world and plunging it into madness. First off: Uldum, home of the Halls of Origination, great titan vault, is going to come under regular assault by the minions of N'Zoth. When an assault is active in the zone, players will rally to Uldum and battle across the zone against the Old God's minions. Another key location that is home to a major titan facility is the Vale of Eternal Blossoms back in Pandaria - Mogu'shan Palace. Now, last time we saw the Vale of Eternal Blossoms, it had been blighted with dark Sha energy unleashed by Garrosh towards the end of Mists of Pandaria. Now, the passage of time, hence, the natural of redemption that came in the end of that arc has finally healed these old, old wounds to the land, and the Vale stands fully restored to its original glory, all players to visit in this next content update. At least, till it comes under attack by the minions of the Old God, and it's once again plunged into a new type of darkness. Don't worry, it is only going to look like this as long as N'Zoth is actively attacking the zone. Otherwise, in the long run, the pristine Vale is here to stay. BLACKTALON SHROUD - LEGENDARY CLOACK In Patch 8.3 Visions of N'zoth, a new Legendary Cloak will be available for players to obtain and upgrade called the Blacktalon Shroud. This cloak will be useful in Horrific Visions and even the raid! The Legendary cloak currently on PTR is named  Ashjra'kamas, Shroud of Resolve and can be upgraded using  Horrific Core. The cloak starts at Rank 1 and can be currently upgraded to a maximum of Rank 15. Each upgrade will increase the Item Level and the Sanity Loss Reduction bonus, with extra bonuses at Ranks 5, 10 and 15. As the N'zoth encounter in the raid also has sanity drain, this cloak appears to be important for those encounters! The cloak itself also gets an appearance upgrade at Rank 5 and Rank 10!   To read more about 8.3 please visit our website! Thank you very much for reading, and see you in Azeroth  
    • For Ubuntu / Linux, search on the internet for something like "how to make a service linux" etc. When it's a service it should auto restart. Highly recommended to link into something like cronjobs etc on Linux, it's very useable if you know how to use it.
    • Doing my part to help keep information alive.    AUTOMATIC REALM RE-STARTER   Save as restart.bat @ECHO OFF CLS ECHO WOWSERVER Started %time:~0,5% %date:~1% :SERVERLOOP worldserver.exe ECHO WOWSERVER Restarted %time:~0,5% %date:~1% ECHO. GOTO SERVERLOOP :END   Place in the same folder as your worldserver.exe THIS IS FOR WINDOWS   Now, for Linux:   #!/bin/bash while : do ./worldserver sleep 20 done "./worldserver" may need to be altered if you're going to place your worldserver restarter in a different location. Do NOT forget to save this as a shell(.sh)    
    • Thank you for sharing this collection of tutorials!   //like
    • I've recently decided to start making tutorials again and all of the tutorials I make from now on will be in the playlist below. Link to the playlist What's done so far: WoW Emulation: Basics - An introduction to WoW emulation and getting your repack or self compiled server ready to play. WoW Emulation: (SQL) Custom Items Upcoming tutorials:   WoW Emulation: (SQL) Custom Quests WoW Emulation: (SQL) Custom NPCs WoW Emulation: (C++ & SQL) Creature Gossip Scripting WoW Emulation: (C++) Item Gossip Scripting Credits:     Have Questions? Here's my main Discord.      
    • I wouldn't recommend using it on anything that's got an outside connection, but it's surely a good script, instead of using a program / tool, this is way easier to set up for some people.   If you have such an SQL file, it's too bad, it will execute it, can't do anything about it, but as i said in the main post, use the updates that comes along with the world table when compiling your TrinityCore. It's an easier way to execute all of the files, in one single go.   - Sorry for late reply, didn't see you commenting.
    • Hi dear, thankyou for sher i added this command iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack   but ican't join on console by putty ! Port 22 connection time out!  
    • I was going to sell this. But I have decided to leave the wow EMU scene. If you need assistance on this my discord is WiFi-404Verified#2160   if you need more settings and Kernal setting Pm me on discord! DO NOT PM me with wow-Related question's. Only pm me about Linux stuff.   Nodaways seems that every script kid is able to produce a soft DDOS attack, happily they are small and limited so they cant saturate your DNS unless they really know what they are doing. So lets Build some rules that will no longer allow a "Web Booter" to knock your server Offline! lets edit Ip tables first this way we can Stop, all known attacks for a short time, until it is blocked by out Table rules! iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 20 --hitcount 5 -j DROP ----Now Lets stop Invalid packets iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP Now lets block those Bullshit packets that "skids" Find on pastebin to attack your servers with iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP Next Lets Block those Spoofed Servers People Buy Now days iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP Now lets block pings, this way the attack cant see if he got anywhere with his attacks! iptables -t mangle -A PREROUTING -p icmp -j DROP iptables -A INPUT -p tcp -m connlimit --connlimit-above 80 -j REJECT --reject-with tcp-reset iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP Now lets stop the HARDEST attack. This will limit the SYN to 2r/s iptables -t mangle -A PREROUTING -f -j DROP iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP Lets even set up a Proxy to handle all the SYN that gets past this limit! Aka the Bypass methods iptables -t raw -A PREROUTING -p tcp -m tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP now lets also block abnormal Segment sizes iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP Check ip that attacks netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n Here we will install a program called DSniff apt-get install dsniff Now lets kill the Ip that is attacking tcpkill host ip Now lets make it so that IP can NEVER attack again We have to install a program called Cutter for this apt-get install cutter now lets run cutter cutter NOW when you restart as of now the (Attacker) can just attack again. So lets make it save the "Banned Ips" on restart iptables-save > /etc/iptables.up.rules iptables-restore < /etc/iptables.up.rules Now Lets edit your Kernel. My Kernel settings are No longer included. IF YOU FIND THIS ON ANY OTHER EMU WEBSITE OTHER THAN MMO-SOCIETY PLEASE PM ME ON DISCORD! i have successfully mitigated DDoS attacks that peaked at multiple million packets per second using these rules. i cant even down a Time4VPS server which has NO ddos Protextion with 912 gbps          
    • That is very very nvm EXTREMELY insecure to use in a public website. You must check the contents of the file and split and prepare the queries before execution. what if in one of the files I have a query, TRUNCATE TABLE `whatever`; or DROP DATABASE; ? 
    • Interesting! Thank you for sharing this with us
    • <?php $mysql_host = "localhost"; #Hostname / IP $mysql_database = "world"; #Database $mysql_user = "root"; #Mysql username $mysql_password = "trinity"; #Mysql password #For each begin foreach(glob('world/*.sql') as $file) { #Connect to DB $db = new PDO("mysql:host=$mysql_host;dbname=$mysql_database", $mysql_user, $mysql_password); #Get the file in question $query = file_get_contents($file); #Prepare $stmt = $db->prepare($query); #Execute if ($stmt->execute()) { echo $file." Success<br />"; } else { echo $file." Fail<br />"; } } This script needs to be on a webserver. Go to the directory containing the PHP file. Create a new folder called "world", transfer all your database update files in there. (C:\TrinityCore\sql\updates\world\3.3.5)   It will produce a list: world/2018_02_19_00_world.sql Success world/2018_02_19_01_world_335.sql Success world/2018_02_19_02_world_335.sql Success world/2018_02_19_03_world_335.sql Success world/2018_02_19_04_world_335.sql Success world/2018_02_19_05_world_335.sql Success world/2018_02_19_06_world_335.sql Success world/2018_02_19_07_world_335.sql Success world/2018_02_19_08_world_335.sql Success world/2018_02_19_09_world_335.sql Success world/2018_02_19_10_world_335.sql Success world/2018_02_19_11_world_335.sql Success world/2018_02_19_12_world_335.sql Success world/2018_02_19_13_world_335.sql Success world/2018_02_19_14_world_335.sql Success world/2018_02_19_15_world_335.sql Success world/2018_02_19_16_world_335.sql Success world/2018_02_19_17_world_335.sql Success world/2018_02_19_18_world_335.sql Success world/2018_02_21_00_world_335.sql Success world/2018_02_21_01_world.sql Fail   Can also be used for other things, than just updating your world db. *IF USING FUSIONCMS IT MAY INTERFERE WITH ITS HTACCESS. **MAKE SURE TO PLACE THE PHP / WORLD DIRECTORY IN A WHILELISTED FOLDER.   - Thought to share this in case anyone else need it. Takes too long to manually do this. If there's other methods to doing this, please share them in the comments or in your own thread.
    • This tutorial was written in hopes of getting you, the newest member of our community, on the right track. This tutorial holds only the basic knowledge related to wow emulation, and is in no way intended for veteran members of the community. In this tutorial we'll briefly go over: - Databases, what they are and what they are used for. - DBC files, what they are and what they are used for. (Includes info on client sided modifications) - Source code, what it is and what it can be used for. (Includes info on compiling the source) - The differences and benefits between compiling your own source and using a repack. - Databases.   - In order to explain the difference between repacks and compiled sources, we will have to explain what databases and dbc files are first. - Database editing can be done both on repacks and compiled servers. - Databases are storage units, which are used for storing data ranging from, items, creatures and quests, to stuff like, characters, character achievements, character inventories, active quests, accounts and so on. - When you start up your worldserver executable, it reads and collects all of the data from these tables, and "places" them into C++ containers. - This data can easily be modified using any database editing tool. The preferred tool of the community is HeidiSQL. This tool will allow you to connect to your database, and view and edit all of the information stored inside of it. - For example you can edit item/creature appearances, their stats, their names, their size etc. - Client sided, all of this information is stored in the cache folder, so upon making any changes, you will have to, a) restart the world server, or, if possible, reload the table you were working in with the .reload *table_name* command, b) restart your game, and delete your cache folder. - DBC Files. - DBC files are in a sense similar to the database, they are also used as storage units, but unlike the database, these files store client sided data, while the database holds all server data. Everything you see in game, from spell names, their visuals, item displays, creature displays etc. is handled using DBC files. - As well as the database data, the data stored in the DBC files can also be manipulated. You can create custom spells, you can change the textures of some displays, insert custom objects from other games, retro port data from Legion to Woltk, and much more. - The main difference between editing DBC files and editing Database data, is that, in order to see the actual changes ingame, you will have to create a custom .MPQ Patch containing all of your modified DBC Files (or the additional .blp, .m2, .skin or other files you added) and place it in your clients data folder. Here is a short tutorial on how to create a custom MPQ file.  - This example tutorial will be using the client sided implementation of custom items as an example, but the part of the tutorial which requires the creation of the custom patch, and placing DBC files into it, applies to almost all if not all DBC related edits. Make a table in the database which will hold all item.dbc data CREATE TABLE `patch_table` (     `ID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',     `ClassID` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',     `SubclassID` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',     `Sound_Override_Subclassid` TINYINT(3) NOT NULL DEFAULT '-1',     `Material` TINYINT(4) NOT NULL DEFAULT '0',     `DisplayInfoID` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',     `InventoryType` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',     `SheatheType` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',     PRIMARY KEY (`ID`),     INDEX `items_index` (`ClassID`) ) COMMENT='Item System' COLLATE='utf8_general_ci' ENGINE=MyISAM ROW_FORMAT=FIXED ; Run this query INSERT INTO patch_table SELECT entry, class, subclass, SoundOverrideSubclass, Material, displayid, InventoryType, sheath FROM item_template[/CODE] After that use the build in option found in WDBXEditor to import all of the data from the newly created patch_table after that save the dbc changes. (This is the fasted method I've discovered. It should take around half a minute to do everything) Now that you have your dbc file set up, it's time to create a custom mpq patch containing the dbc file. In order to do that you will need an MPQ editor, which you can grab here Ladik's MPQ Editor Run the program and select the option to create a new mpq file. Then, create a new folder called "DBFilesClient" and place your newly created dbc file inside of it, like so: Please ignore the other .dbc files and the two folders located inside my patch, those are not needed. After that you can save your patch, place it in your data folder, delete your cache folder and re-run the game. Once in game you should be able to use spells with your weapons, and they should no longer appear as question marks in your inventory. - Source code and compiling. - Quite possibly the "scariest" part of emulation, and the part at which most members get stuck at and give up. - Although it might be easier to pick up a repack, compiling the source brings a variety of benefits. - The trinitycore source is written in C++, which is by most, considered one of the hardest languages to master. Although the language itself is hard to learn, if you only plan on doing minor edits in the source, you're not expected to fully comprehend it. - Most of the Classes, methods and variables inside the trinity source are really well named, and in most cases their name perfectly describes their purpose. For example, Player::CanEquipItem(uint8 slot, uint16 &dest, Item* pItem, bool swap, bool not_loading) const[/CODE]    is a method which checks if the player can, equip an item. If you use common knowledge, you'll be able to find and edit whichever function you want in a breeze. - Compiling the source is an extremely easy process, once you're given the right documentation.   - The trinitycore wiki page has compiling tutorials for both Linux and Windows, and the tutorials are always kept up to date. So instead of writing a tutorial here, I'll post the links to the Linux and Windows requirements.    - Eluna - is a lua engine implementation for MaNGOS and TrinityCore based cores.     This engine allows one to write scripts using the Lua scripting language.     Lua is more flexible than the default database scripting systems and easier to use than C++.     Lua allows for fast paced development - scripts can be reloaded without recompiling or restarting. - Compiling your own source vs Using a Repack. - While it may seem easier to pick up a repack, compiling your own source brings a vast amount of benefits. - For example, if you're going for a custom/fun WoW experience, without the source, you'll only rely on the database and the dbc files for customization. While that may be enough for some project, having the source on the side is always a benefit. You can add custom scripts like Rochet's Transmogrification which allows you to change the appearance of your armor, or you can add some source modifications like Rochet's Item Gossip Script which allows you to trigger gossip windows using an item instead of a creature, or trigger a player gossip window when a certain event occurs (a gossip window popup when the player kills a creature, or something similar). This can be used for creating Teleportation Stones, fun creature killstreak systems and a lot more. - Even if you're going for a blizzlike experience, having your own source will allow you to script bosses, modify pathfinding, write spell scripts etc. you wont be just relying on SmartAI and dbc fixes to achieve this.  Linux  Windows  Server Setup Database Installation - List of useful community guides. The list will be updated as more tutorials get released.    
    • Video Main SQL Queries: Here's the Add Script: SET @StartEntry := [COLOR="#00FF00"]STARTENTRY[/COLOR]; SET @EndEntry := [COLOR="#00FF00"]ENDENTRY[/COLOR]; SET @AddPCT := [COLOR="#00FF00"]160[/COLOR]; -- DO NOT TOUCH! SET @NewPCT = 1 + @AddPCT/100; UPDATE item_template SET stat_value1 = stat_value1*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value2 = stat_value2*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value3 = stat_value3*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value4 = stat_value4*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value5 = stat_value5*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value6 = stat_value6*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value7 = stat_value7*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value8 = stat_value8*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value9 = stat_value9*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value10 = stat_value10*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; SET @StartEntry := [COLOR="#00FF00"]STARTENTRY[/COLOR]; SET @EndEntry := [COLOR="#00FF00"]ENDENTRY[/COLOR]; SET @RemPCT := [COLOR="#00FF00"]55[/COLOR]; -- DO NOT TOUCH! SET @NewPCT = 1 - @RemPCT/100; UPDATE item_template SET stat_value1 = stat_value1*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value2 = stat_value2*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value3 = stat_value3*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value4 = stat_value4*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value5 = stat_value5*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value6 = stat_value6*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value7 = stat_value7*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value8 = stat_value8*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value9 = stat_value9*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; UPDATE item_template SET stat_value10 = stat_value10*@NewPCT WHERE entry BETWEEN @StartEntry AND @EndEntry; And that's the remove one.  Additional SQL Queries:  Get Items by Item Set ID: SELECT * FROM item_template WHERE itemset = [COLOR="#00FF00"]XXX[/COLOR]; Get Items Where Entry >= value:   SELECT * from item_template WHERE entry >= [COLOR="#00FF00"]XXXXX[/COLOR] ORDER BY entry DESC; PS: Lag is from shitty StreamLabs OBS! 
    • nice share sure many will find this useful
    • Disable PvP Flagging / Allow Duel   Full Sanctuary - Like Dalaran   Free for All - Like Gurubashi Arena down in the actual Circle   where to enter these IDs? Field4 in AreaTable.DBC
    • Hello ! Today we will learn how to create an NPC from nothing ! Summary Required tools NPC dressing CreatureDisplayInfo editing CreatureDisplayInfoExtra editing Patch creation DB addition Looks like it's time to gear up ! - Software like Photoshop or Gimp. Personally I use Photoshop because of this : BLP Plugin - Wow Model Viewer or something similar - BLP Converter (useless if you use the Photoshop's plugin) - My DbcEditor  - MPQ Editor - Your 3.3.5 client ! Looks like it's time to dress up ! I only mentionned one tool which can dress up our future NPC, so, let's go to Wow Model Viewer ! First, we have to select the race of our NPC, I'll choose... Human male ! You can select this in the menu on the left, in the character part. Now, here's the interesting part. Quick explanation : The menu in the top right corner defines the look of your npc, face type, hair color... ATTENTION ! In CreatureDisplayInfoExtra, hair color and hair style are inversed ! Below this menu, it's seems to be obvious, you can set your Npc's stuff. Below again, Oppa tabard style !  8-) I let you prepare your NPC, I'll create mine and after, we compare who made the most beautiful  ! Time's up ! Here's mine : Ok I used WoD stuff, I cheated... a bit   Now, you can screen the whole right menu, that way you will not forget the character's characteristics ! Sometimes you can see two numbers to the right of the object name, they are important, the first is the itemID, the second his DisplayID, keep them two ! Our NPC is created, now we need to extract its texture. In my WMV version I do this : Once exported, a single file will interest us : body.tga Open it with Photoshop or your software, and you'll see this : You're free to customize the face, adding scars or whatever ! If you don't use the BLP plugin, save this file as png, and slide it on your BLP Converter. We have finished the texture ! "But, Hyakki-master ! And weapons ?!" Creature_equip_template, world database ! Your turn CreatureDisplayInfo ! Open this DBC with the software provided by this tutorial (MyDBCEditor) You'll see lines. Lines everywhere ! Scroll to the last line, right click and select "Insert line...", your ID MUST be unique ! I'll choose 70010. Quick explanation 2 : First column : unique ID Second column : Model ID that is registered in CreatureModelData.dbc (for a human male it's 49, a human female 50...) Third column : Dunno, let zero. Fourth column : ExtraDisplay : We'll see it in CreatureDisplayInfoExtra.dbc, it must be unique too. Fifth column : Let 1. Sixth colum : Creature opacity. 255 means your npc is opaque, 0 means... yes it's transparent. Seventh and Eighth column : "Extra texture", when you npc isn't a character but a creature, these colums set their skin. The next columm : Contains an ID or 0, the ID corresponds to sound ID in NPCSounds.dbc. Last column : Let zero. Here's the look of my NPC column : You must to put this DBC in your MPQ patch and in serverside. Next ! Braces yourselves CreatureDisplayInfoExtra is coming !  This is where it all take shape. Documentation time ! 1 : ID, that one you choosed in the fourth column in CreatureDisplayInfo. 2 : Character's race, 1 for human... IDs are situated in ChrRaces. 3 : Gender. 0 for male (It is also the degree of intelligence of the person who wrote this guide) and 1 for female. 4, 5, 6, 7 & 8 : SkinColor, FaceType, HairStyle, HairColor, BeardStyle. (Don't forget, in WMV, hair style & hair color are inversed) 9 : Head DisplayID (that one you choosed in WMV, if not, set to 0). 10 : Shoulders DisplayID (that one you choosed in WMV, if not, set to 0). 11 : Shirt DisplayId (that one you choosed in WMV, if not, set to 0). 12 : Chest DisplayID (that one you choosed in WMV, if not, set to 0). 13 : Belt DisplayID (that one you choosed in WMV, if not, set to 0). 14 : Legs DisplayID (that one you choosed in WMV, if not, set to 0). 15 : Boots DisplayID (that one you choosed in WMV, if not, set to 0). 16 : Bracers DisplayID (that one you choosed in WMV, if not, set to 0). 17 : Gloves DisplayID (that one you choosed in WMV, if not, set to 0). 18 : Tabard DisplayID (that one you choosed in WMV, if not, set to 0). 19 : Cape DisplayID (that one you choosed in WMV, if not, set to 0). 20 : 0. 21 : Your texture name, in my case, it'll be admerin.blp Fill your DBC line with your items's DisplayID that you choosed for your NPC. Be careful, sometines the first digit is valid, sometines it's the second. Here's mine : Save it ! Upload it to your server, put it into your Patch ! But... Where in my patch ?! I assume you know how to create a MPQ patch. So, open your MPQ with MPQ Editor ! If they don't exist, create two folders at the root of the patch. Call them : DBFilesClient Textures You can put your two DBCs in DBFilesclient Now, go in Textures, create a folder called BakedNpcTextures and put your .blp in there. Your patch is ready. Last step ! Creature_model_info Serverside part ! In your world Database, find this table and open it ! Quick explanation... Oh no, copy/paste the content of an other line. EXCEPT ONE THING ! Your ID must be the same as the one in CreatureDisplayInfo, in my case : 70010. This digit is the DisplayID that you MUST use for your creature. Once your line is written and your NPC created... This tutorial is finished    ! Don't hesitate to show your NPCs here ! Original Guide Credits - Oldaron @ Model-Changing
    • On youtube anyone can add subtitles. It is not restricted to the owner of the video unless he forces it to be him only. @Caden If the setting is locked, unlock it and ReynalDev can add his own subs.
    • I think it does make sense not to read something you don't understand, or listen to something you don't understand. (another language).
    • I speak Spanish, I will not play games because they are in English? I will not read articles because they are in English? Has no sense... Anyway, there you have the information, if you want to take it, go ahead.
    • I get that but not sure anyone here would really want to go through that hassle, especially when there's probably similar tutorials in english.
    • You have information and some videos have subtitles in english. You can easily use google translate or any other kind. https://youtu.be/bIkVAjZN5qQ
    • Cool, but not sure these will help anyone here as they aren't in english.
    • On my Youtube channel you will find many guides to develop your Lineage 2 server. I have also created a library for you to review related content about the development of Lineage 2 servers.
    • Original post is. http://www.ac-web.org/forums/showthread.php?208537-Compile-TrinityCore-Merge-Eluna-Lua-Engine-amp-Update-Source-Engine
    • No problem, guys. I'm working on the next one.
    • Hey, Lordcraft Users! I'd like to welcome you to the first of a series of Java tutorials hand written by yours truly. They are going to be a Lordcraft exclusive and hopefully, everyone will find them useful. Going through these tutorials, I'll be assuming each and every one of you is brand new to both programming and Java. If you are already well versed in either of these subjects, feel free to wait around for the next bit of tutorials.   ------- *** -------   Chapter I: Preparing Your System      In order to get started with Java programming, you need a few tools installed on your system. Depending on your operating system, you may install things a little bit different then I am. I am using a Windows based laptop, so I'll be showing how a Windows user will setup their system. However, if you use a Mac or run Linux, comment below and I'll help you install everything.           Programs:           JDK - JDK 8 and JDK 9           IDE - NetBeans or IntelliJ or Eclipse        I listed five programs above that you guys may be interested in. Right now, you probably have no idea what a JDK or IDE is, and that's okay. We'll go over that. For now, I recommend you download JDK 8 and Netbeans. I'll be using Netbeans in all of my tutorials since my university requires my program of study to use it for the Java language. Plus, it's super easy to use.        Installing the JDK           Step 1: Go to the downloads page and download JDK 8u152. (Don't forget to accept the License Agreement and pick the correct download for your system)!           Step 2: Run the downloaded JDK application. Depending on your operating system, the way you'll do this may vary. Windows users will run the .exe file, Linux kernals will run it from the console (most distributions will run the tar.gz version), and Mac users will run the .dmg file.                 Links: Windows or Linux or Mac           Step 3: Run through the installer, it's pretty easy. Just pressing "next" will be enough.           Step 4: Congratulations! You've installed the required JDK application!        Installing the IDE           Step 1: Go to the downloads page and download Java SE           Step 2: Run the Netbeans installer, depending on your operating system, the installed product will be different. You'll run it the same way you ran your JDK installer.           Step 3: Accept the licensing agreement, pick your installation path, and check for updates (this will save you time later on). After that, let the installer do it's job.           Step 4: Congratulations! You installed the required IDE! Now we can start programming... Almost.   ------- *** -------   Chapter II: What Is a JDK and IDE?      So now you're probably wondering what a JDK and IDE and why we need them. In short, a JDK (Java development kit) is a subset of a SDK (software development kit). The JDK offers a variety of tools for developing, debugging, and monitoring java applications. Essentially, it's the core behind the Java language. Without a JDK, you can't have your Java code.      But what about an IDE? If the JDK gives us the ability to develop Java code, why do we need this? Well, an IDE (integrated development environment) is a program that allows you to easily make project files, test your source code, read error text, catch errors in code before runtime, and hosts a debugger. Not only that, but an IDE offers a quick and responsive function that builds your sourcecode into computer-readable binary, which then turns into an executable code.      There's a lot more information about both the JDK and IDE, but all you really need to know is that a Java IDE requires an updated JDK in order to properly integrate Java code into programs.   ------- *** -------   If you have any questions, leave a comment or contact me on Discord!
    • woah no , no just no , use Mysqli or PDO do not use raw mysql
    • trust me this **** saved my life usually i had to write hundred of lines of codes but now i've learned my lesson :)) hopefuly this will be helpful for somebody else because as of now i could only find huge ass overwrites of the class and most of them were for Wordpress pretty hard to reintegrate on a fresh built website 
    • Eyo all, been working on a website for a client and i got tired of writing thousands of functions to get out the data from DB. You know in this business you keep learning things while working on. My main issue was i could not dinamically add params to $stmt->bind_param, but after reading few hundreds lines on PHP mysqli doc i found out i can pass them dinamically by referrence and use the mighty call_user_func_array. However what i'm going to print is just a sample not the full class you've got to struggle yourself for other things. There must be many other ppl who want to learn PHP. NOTE!!! The class i'm sharing is incomplete it only have a single function and is jut for learning purpose, you'll have to figure out yourself the rest. class mmlDatabase{     private $database = array("host" => "127.0.0.1", "username" => "root", "password" => "ascent", "database" => "mydatabase");          //Why public? easy like this you can call the function outside the class and print the error wherever you want     public $errors = array();     private function connect()     {         $con = mysqli_connect($this->database['host'], $this->database['username'], $this->database['password'], $this->database['database']);         if (!$con) {             printf("Connect failed: %s\n", mysqli_connect_error());             exit();         }         return $con;     }     public function Query($sql='', $input_params = array(), $param_types = '', $getoutput = false){         /*         $sql = Represent the raw sql text whith questionmark as values         $input_params = Represent the array of values that need to be inserted         $param_types = Represent the type of parameters, s = string, i = integer, d = double,  b = blob         $getoutput = If you are waiting for an output after a SELECT QUERY         */         $output = array();         $params = array();         $conn = $this->connect();         $n = strlen($param_types);                  //Adding param types as first variable ("param types", waiting for params)         $params[] = & $param_types;         //Adding Params one by one as referrence         for($i = 0; $i < $n; $i++)             $params[] = & $input_params[$i];         //Try to run query otherwise throw error         if($stmt = $conn->prepare($sql)) {             //Now calling bind param as user function passing the new parametter list             call_user_func_array(array($stmt, 'bind_param'), $params);             $stmt->execute();             //check if we are waiting for a response (array of variables) mostly for SELECT query             if($getoutput) {                 $result = $stmt->get_result();                 while ($data = $result->fetch_assoc()) {                     array_push($output, $data);                 }             }             $stmt->close();         }         else             array_push($this->errors, 'Wrong SQL: ' . $sql . ' Error: ' . $conn->errno . ' ' . $conn->error);         $conn->close();         //Return the output if there's no errors else return false and print the error wherever you want         if(count($this->errors) === 0 && !empty($output))             return $output;         return false;     } } $DB = new mmlDatabase; //USAGE $result = $DB->Query("SELECT * FROM `mytable`", NULL, NULL, true); $result = $DB->Query("SELECT * FROM `mytable` WHERE `column` = ?", array(1), "i", true); $result = $DB->Query("SELECT * FROM `mytable` WHERE `name` = ? AND `id` = ?", array("Some Name", 1), "si", true); $DB->Query("INSERT INTO `mytable`(`name`, `email`, `password`, `age`) VALUES (?, ?, ?, ?)", array("Some Name", "Some Email", "password", 23), "sssi", false/*can leave this variable blank since by default is false*/); $DB->Query("REPLACE INTO `mytable`(`id`, `name`, `email`, `password`, `age`) VALUES (?, ?, ?, ?, ?)", array(1, "Some Name", "Some Email", "password", 23), "isssi", false/*can leave this variable blank since by default is false*/); $DB->Query("UPDATE `mytable` SET `name` = ? WHERE `id` = ? AND `email` = ?", array("newname", 1, "email"), "sis", false/*can leave this variable blank since by default is false*/); //Separate variables sent inside query $sql = "INSERT INTO `mytable`(`name`, `email`, `password`, `age`) VALUES (?, ?, ?, ?)"; $params = array(1, "Some Name", "Some Email", "password", 23); $param_types = "sssi"; $DB->Query($sql, $params, $param_types, false);
    • note most responsive layouts use display: table-cell; making the whole div work like a <table> you might want to use the !important if you want the styles to apply on that responsive layouts
    • this would be really nice. the current SQL requires quite a bit of modding to make it work in the current rev.
    • That's because this thread is more then a year old. @JadaDev, do you have a new download link?
×
×
  • Create New...