- Joined
- Jul 26, 2008
- Messages
- 1,009
This was originall by Vuen, It was later modded by Blackroots, then Spiritman0. I furthered it with the tools it needed to compete with SotDRP. It now boasts a 'skilladd function, DM player units, a larger amount of custom models and skins, Jass spells, more items, the ability to give heroes directly to players, and DM activation on blue by name for certain people who have helped me.
Along with the ability to add skills, I have set many, many applicable unit skills to up level 10. As well there are "Blank" heroes who start off with no skills, allowing DMs to give them custom skill sets and set their skill level rate. The skill level of hero skills is now 5/5/5/3, maxing them out at 24.
An 'abilitylist is available for custom skills and spells. As well, the units and doodads have been updated so you can type their names to create them. All of this was done by manipulating the Jass code inside, which was a learning experience.
This version is a working version, though in a beta state. It is protected, and available for public use. Be aware that it is a Beta map, and does have a chance of criticaling or not doing what you except it to do.
The only versions that will be placed up here on Hive are for BetA testing, until I release a version that I believe can be played without worry of critical error by the entire VD&D community.
I'm looking for anyone well versed in Jass to gander at the coding and perhaps formulate a less consuming 'skilladd code. If you're up to it, contact me and I'll provide you with the things you need and assist you with the repetitive work on the project.
Contact me at [email protected], PM, or over this thread.
Vuen's DnD TE Beta - The Hive Workshop - A Warcraft III Modding Site
As well, a piece of the 'skilladd code is provided in Jass tags. I'll explain why.
I'm seeking well versed Jass coders and Trigger designers. The current Jass script for the 'skilladd function is ~8000 lines long, WAY too much. It causes medium lag, high load time, and has flaws such as over leveling causes the skill to stop working until you delevel it.
What isn't shown is how I hide it from the game chat, the entirity of the code, and several other pieces. It's just a general idea. I'll provide the real code in entirity if I believe the person requesting it can help me, though the entire code shouldn't be necessary.
So, the code is similar to SotDRP, but it's nowhere near as efficient.
I really need someone to give me a better template for skill add. Any and all repetitive work I'll gladly do myself, while giving anyone willing to help me full credit. Along with credit, I'll also give you an unprotected version of the map should you wish to help me in any other way.
I also could use spell makers, modelers, and texturers in that order.
On top of that, I need BetA testers and trustworthy people willing to help me with the work that needs done.
I'm quiet easy to work with, and will carry most all the work load. I'm capable of reducing file and model sizes, and many other various things.
The map is looking to be very promising, and I have an excited community waiting to recieve it. I could see this edition stimulating the life of Vuen's D&D, and perhaps even allowing it to compete with SotDRP.
So, contact me about helping, and we'll go from there.
Below is the run down of the Jass script in simplified form. This is the best way to see how the 'skilladd function I have implemented works.
JASS:
//This is where it actually adds the skill, levels it, etc.
function AddDefend takes nothing returns nothing
if IsUnitSelected(GetEnumUnit(), udg_TEMP_Player) then
call UnitAddAbilityBJ( 'Adef', GetEnumUnit() )
endif
endfunction
function RemoveDefend takes nothing returns nothing
if IsUnitSelected(GetEnumUnit(), udg_TEMP_Player) then
call UnitRemoveAbilityBJ( 'Adef', GetEnumUnit() )
endif
endfunction
function LevelDefend takes nothing returns nothing
if IsUnitSelected(GetEnumUnit(), udg_TEMP_Player) then
call IncUnitAbilityLevelSwapped( 'Adef', GetEnumUnit() )
endif
endfunction
function DelevelDefend takes nothing returns nothing
if IsUnitSelected(GetEnumUnit(), udg_TEMP_Player) then
call DecUnitAbilityLevelSwapped( 'Adef', GetEnumUnit() )
endif
endfunction
//This recognizes the string you entered and decides what desired result you want done.
function DoSkillAddHU takes integer id returns boolean
local group grp
local player pl
local force fp
local string str
local string text
local integer utype
local integer i1
local integer i2
local integer array ratios
set pl = ConvertedPlayer(id)
if not(IsPlayerInForce(pl, udg_Force[2])) then
//********************RETURN
return false //not a command
endif
set fp = bj_FORCE_PLAYER[id-1]
set str = StringCase(GetEventPlayerChatString(), false)
if (str == "adddefend" or str == "'defend") then
set udg_TEMP_Player = pl
set grp = GetUnitsInRectAll(GetPlayableMapRect())
call ForGroupBJ( grp, function AddDefend )
call DestroyGroup(grp)
call DebugCommand(str,id)
elseif (str == "@defend" or str == "removedefend") then
set udg_TEMP_Player = pl
set grp = GetUnitsInRectAll(GetPlayableMapRect())
call ForGroupBJ( grp, function RemoveDefend )
call DestroyGroup(grp)
call DebugCommand(str,id)
elseif (str == "+defend" or str == "lvldefend") then
set udg_TEMP_Player = pl
set grp = GetUnitsInRectAll(GetPlayableMapRect())
call ForGroupBJ( grp, function LevelDefend )
call DestroyGroup(grp)
call DebugCommand(str,id)
elseif (str == "=defend" or str == "deleveldefend") then
set udg_TEMP_Player = pl
set grp = GetUnitsInRectAll(GetPlayableMapRect())
call ForGroupBJ( grp, function DelevelDefend )
call DestroyGroup(grp)
call DebugCommand(str,id)
endif
//********************RETURN
return true //is a command
endfunction
//Far above this is the actual chat functions which you cant see in this Jass Ask me if you need it and I'll add it.
//Hides the string from DM chat
elseif GetBooleanAnd(SubStringBJ(str,1,1) == "'" or SubStringBJ(str,1,1) == "+"or SubStringBJ(str,1,1) == "@"or SubStringBJ(str,1,1) == "=", IsPlayerInForce(pl, udg_Force[2])) then
//Get rid of that pesky space people like to add
if (SubStringBJ(str,2,2) == " ") then
set text = SubStringBJ(str,3,StringLength(str))
else
set text = SubStringBJ(str,2,StringLength(str))
endif
if DoSkillAddHU(id) then
endif
I also need help with implementing a play animation function, and I created a play SFX function similar to this (Plays things like Explosion, Abolish Magic, Defend, etc.) but haven't been able to get it to work.
This is what I'm looking at modding, and once complete the work will carry over to larger, more diversified maps.
Be a part of this great project, and have your name recognized by Battle.net players and respected in the RP community!
Last edited: