Few Useful systems

Share files with other Dawn of Light users

Moderator: Support Team

Few Useful systems

Postby stephenxpimentel » Wed Jan 18, 2012 6:05 pm

Hey guys, my work week is going to be chaotic for awhile and so i have to take a yet another break from DOL :(, but i don't want the stuff i've made to go to waste, so i've decided to upload a couple of systems i've made for u all.
Code: Select all
[StephenxPimentel]
I'm releasing this package to the userbase of DOL in hopes that my work will be used
during my break.

BY USING THESE SCRIPTS I WOULD PLEASE LIKE IT IF ALL SIGNIFICANT CHANGES ARE RELEASED
TO THE PUBLIC. ESPECIALLY BUG FIXES AND PERFORMANCE FIXES.


Included in this package is:

1) VIP System
2) Voting Mapchange System
3) Universal Merchant
4) Lockout System
5) Customized Proc System
6) VIP Morph NPC
7) Free Daily Item NPC ( This will more than likely need database changes to work properly )
8) Custom GamePlayer class
9) Ability Adjust System
10) Database Tables to go with it all.


With that said, Enjoy these scripts, and if u have any questions feel free to drop me a PM and maybe
i can help you out!
Attachments
Scripts.rar
(19.95 KiB) Downloaded 465 times
Lets have some fun.
stephenxpimentel
Contributor
 
Posts: 1300
Joined: Wed Sep 19, 2007 5:09 pm

Re: Few Useful systems

Postby Graveen » Wed Jan 18, 2012 8:35 pm

Thank you Stephen ! I'm not sure i could find something suitable for the core, but your work is appreciated :)
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12660
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: Few Useful systems

Postby stephenxpimentel » Wed Jan 18, 2012 8:52 pm

the ability adjust might be ok for the core, but i'm sure theres better ways to do it...

i made that system because live seems to nerf abilities w/o changing DB values, and to me we should do nerfs/adjustments and leave values in the DB the same, as its not a visible nerf to all the players, and DB values remain in-tact to match what they say on live.
Lets have some fun.
stephenxpimentel
Contributor
 
Posts: 1300
Joined: Wed Sep 19, 2007 5:09 pm

Re: Few Useful systems

Postby Blue » Thu Jan 19, 2012 4:30 pm

2) Voting Mapchange System

:roll:

I feel DAoC is misused. My opinion.
ex DOL Lead Developer
Blue
Uthgard Admin
 
Posts: 961
Joined: Wed Jan 21, 2004 11:07 pm
ICQ: 63977313

Re: Few Useful systems

Postby geshi » Thu Jan 19, 2012 5:15 pm

Sadly with the state of the public database there are few options available for people.

a) Make an instant 50 server with limited maps and probably custom mobs.
b) Make a classic server (public DB is pretty classic as things stand, another reason why there are so many classic servers).
c) Spend months/years/lightyears creating a live-like server.

Seeing as most people want to run a server for a bit of quick fun, they go straight to A.. if people want some long term fun but they don't want to bother creating a lot of content they pick B..

If the public DB was as live like as possible, we would see far more live like freeshards for sure.
geshi
Contributor
 
Posts: 1826
Joined: Tue Oct 21, 2008 9:16 pm

Re: Few Useful systems

Postby Blue » Thu Jan 19, 2012 5:18 pm

So I pick c) as this game deserves it. Even with a 100% live like DB you would see ppl to shortcut every feature in DAoC to make it a fastfood game.

"Map Changes" remember me of Counterstrike, Battlefield or Unreal Tournament tbh not a MMORPG with a persistent world.

@steven: I don't want to bring your work down. Please don't misunderstand me. Keep the motivation up to do more scripts. There are a lot who appreciate any input into the community.
Last edited by Blue on Thu Jan 19, 2012 5:24 pm, edited 1 time in total.
ex DOL Lead Developer
Blue
Uthgard Admin
 
Posts: 961
Joined: Wed Jan 21, 2004 11:07 pm
ICQ: 63977313

Re: Few Useful systems

Postby geshi » Thu Jan 19, 2012 5:22 pm

I agree.. but some people are put off by other servers having a lot of work done already and just don't bother... not everyone has the time to learn how to code or even do this sadly :cry:
geshi
Contributor
 
Posts: 1826
Joined: Tue Oct 21, 2008 9:16 pm

Re: Few Useful systems

Postby Ephemeral » Fri Jan 20, 2012 12:02 am

I'll stick to d.

Throw out most established mechanics and rewrite them.
"The swarm is always smarter, faster and more adept than any actor which seeks to thwart it."
C++, Java, C#, VB.NET, ASM.
Current Project:
Engine Developer for The Red Solstice
User avatar
Ephemeral
DOL Freak
 
Posts: 554
Joined: Wed Mar 30, 2011 12:23 am

Re: Few Useful systems

Postby Sensi » Fri Jan 20, 2012 12:03 am

I'll stick to d.

Throw out most established mechanics and rewrite them.
:mrgreen:
Code: Select all
"Write it, cut it, paste it, save it, load it, check it, quick - rewrite it"
User avatar
Sensi
DOL Novice
 
Posts: 52
Joined: Fri Aug 05, 2011 7:28 am
Location: California

Re: Few Useful systems

Postby Blue » Fri Jan 20, 2012 12:13 am

I'll stick to d.

Throw out most established mechanics and rewrite them.
May even make sense for some parts if you have a lot of time and way better concepts.
ex DOL Lead Developer
Blue
Uthgard Admin
 
Posts: 961
Joined: Wed Jan 21, 2004 11:07 pm
ICQ: 63977313

Re: Few Useful systems

Postby stephenxpimentel » Fri Jan 20, 2012 5:02 pm

the problem with live-like servers, and this is my opinion of why people flock to instant 50 servers is....

Freeshards come and go so rapidly that people feel putting in any of their time building up a character is a waste for them, as majority of the time they will get to level 50, and the server will be gone.

As for putting the work in to actually MAKE a live-like server, for me, i would be disappointed that the shard will more than likely never have enough population to actually well... populate it.

i code for the fun of it, and the learning experience, but i still get disappointed if no one plays ;)
Lets have some fun.
stephenxpimentel
Contributor
 
Posts: 1300
Joined: Wed Sep 19, 2007 5:09 pm

Re: Few Useful systems

Postby geshi » Fri Jan 20, 2012 6:28 pm

Yep especially since the players who want their stuff to be there in a few months / few years are mostly playing Uthgard :mrgreen:
geshi
Contributor
 
Posts: 1826
Joined: Tue Oct 21, 2008 9:16 pm

Re: Few Useful systems

Postby stephenxpimentel » Mon Apr 29, 2013 6:41 pm

[Update] Custom Proc System.
-Makes the procs save and persist after restarts.
Code: Select all
/* * DAWN OF LIGHT - The first free open source DAoC server emulator * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * [StephenxPimentel] * Proc-Drop-Item class; * * **************************How To Use:******************************** * 1) Create a new item, and set its class-type to DOL.GS.ProcDropItem. * 2) Set its ProcSpellID to the proc u want it to represent. * 3) Drop the item onto an item in your inventory (Armor or Weapon) * 4) Whala ur inventory item now has the correct proc! :) * * ***To Clear Procs*** * -Currently u have to have a version of this item saved in ur DB as * 'proc_clear1' - remove primary proc * 'proc_clear2' - remove secondary proc * * *****************************NOTE************************************ * -This script can be very easilly modified to add charges (/use 1/2). * */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using DOL.Database; using log4net; using System.Reflection; using DOL.GS.PacketHandler; using DOL.GS.Spells; namespace DOL.GS { public class ProcDropItem : GameInventoryItem { private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private ProcDropItem() { } public ProcDropItem(ItemTemplate template) : base(template) { } public ProcDropItem(ItemUnique template) : base(template) { } public ProcDropItem(InventoryItem item) : base(item) { } public override void Delve(List<string> delve, GamePlayer player) { //****DELVE**** //This will delve the proc spell to the person who delves the proc item. delve.Clear(); if (Id_nb == "proc_clear1") { delve.Add("[Drop onto an item to clear its Primary Proc]"); base.Delve(delve, player); return; } if (Id_nb == "proc_clear2") { delve.Add("[Drop onto an item to clear its Secondary Proc]"); base.Delve(delve, player); return; } delve.Add("[Drop this item on another item in your inventory to add this proc:]\n"); //if the spell is null, then we don't do anything. if (SkillBase.GetSpellByID(ProcSpellID) != null) SkillBase.GetSpellByID(ProcSpellID).Delve(delve); else delve.Add("This item has no proc assigned to it. Please contact a staff member."); base.Delve(delve, player); } public override bool Combine(GamePlayer player, InventoryItem targetItem) { //these values have to be hard-coded. if (Id_nb == "proc_clear1") //clear primary proc { if (targetItem.ProcSpellID > 0) { player.Inventory.RemoveItem(targetItem); ItemUnique unique = new ItemUnique(targetItem.Template); unique.ProcSpellID = 0; GameServer.Database.AddObject(unique); InventoryItem newInventoryItem = GameInventoryItem.Create<ItemUnique>(unique); player.Inventory.AddItem(eInventorySlot.FirstEmptyBackpack, newInventoryItem); player.Out.SendInventoryItemsUpdate(new InventoryItem[] { newInventoryItem }); player.Inventory.RemoveItem(this); player.Out.SendInventoryItemsUpdate(player.Inventory.AllItems); player.Out.SendMessage("The Primary Proc has been removed!", eChatType.CT_SpellResisted, eChatLoc.CL_ChatWindow); return true; } return false; } if (Id_nb == "proc_clear2") //clear secondary proc { if (targetItem.ProcSpellID1 > 0) { player.Inventory.RemoveItem(targetItem); ItemUnique unique = new ItemUnique(targetItem.Template); unique.ProcSpellID1 = 0; GameServer.Database.AddObject(unique); InventoryItem newInventoryItem = GameInventoryItem.Create<ItemUnique>(unique); player.Inventory.AddItem(eInventorySlot.FirstEmptyBackpack, newInventoryItem); player.Out.SendInventoryItemsUpdate(new InventoryItem[] { newInventoryItem }); player.Inventory.RemoveItem(this); player.Out.SendInventoryItemsUpdate(player.Inventory.AllItems); player.Out.SendMessage("The Secondary Proc has been removed!", eChatType.CT_SpellResisted, eChatLoc.CL_ChatWindow); return true; } return false; } if (GlobalConstants.IsArmor(targetItem.Object_Type) || GlobalConstants.IsWeapon(targetItem.Object_Type)) { bool firstProc = false; bool secondProc = false; //check if they already have a primary proc if (targetItem.ProcSpellID > 0) firstProc = true; //check if they already have a secondary proc if (targetItem.ProcSpellID1 > 0 && targetItem.ProcSpellID > 0) secondProc = true; if (firstProc == false) { player.Inventory.RemoveItem(targetItem); ItemUnique unique = new ItemUnique(targetItem.Template); unique.ProcSpellID = ProcSpellID; GameServer.Database.AddObject(unique); InventoryItem newInventoryItem = GameInventoryItem.Create<ItemUnique>(unique); player.Inventory.AddItem(eInventorySlot.FirstEmptyBackpack, newInventoryItem); player.Out.SendInventoryItemsUpdate(new InventoryItem[] { newInventoryItem }); player.Out.SendMessage("Your Proc has been added!", eChatType.CT_SpellResisted, eChatLoc.CL_ChatWindow); player.Inventory.RemoveItem(this); player.Out.SendInventoryItemsUpdate(player.Inventory.AllItems); return true; } if (secondProc == false) { player.Inventory.RemoveItem(targetItem); ItemUnique unique = new ItemUnique(targetItem.Template); unique.ProcSpellID1 = ProcSpellID; GameServer.Database.AddObject(unique); InventoryItem newInventoryItem = GameInventoryItem.Create<ItemUnique>(unique); player.Inventory.AddItem(eInventorySlot.FirstEmptyBackpack, newInventoryItem); player.Out.SendInventoryItemsUpdate(new InventoryItem[] { newInventoryItem }); player.Out.SendMessage("Your Proc has been added!", eChatType.CT_SpellResisted, eChatLoc.CL_ChatWindow); player.Inventory.RemoveItem(this); player.Out.SendInventoryItemsUpdate(player.Inventory.AllItems); return true; } if (firstProc == true && secondProc == true) { player.Out.SendMessage("That item already has its maximum procs. You must first remove one!", eChatType.CT_SpellResisted, eChatLoc.CL_ChatWindow); return false; } } return false; } } }
Lets have some fun.
stephenxpimentel
Contributor
 
Posts: 1300
Joined: Wed Sep 19, 2007 5:09 pm

Re: Few Useful systems

Postby HunabKu » Tue Apr 30, 2013 4:07 am

updated package :
Scripts_updated_29-04-13.7z
(10.91 KiB) Downloaded 127 times
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am


Return to “%s” User Files

Who is online

Users browsing this forum: No registered users and 1 guest