Gaming Community
Forum
 
Go Back   D3scene > Hot Games > WoW forum > WoW Private Server Info & Help
Register Blogs Live view Downloads Marketplace FAQ Members List Social Groups Calendar Search Today's Posts Mark Forums Read

LUA Tutorial

This is a discussion on LUA Tutorial within the WoW Private Server Info & Help forum part of the WoW forum category; Ok this tut is ALL MY WORK AND NO ONE ELSES. ALL CREITS GO TO ME. THIS IS NOT FINISHED, ...


Welcome on D3scene.com! Make sure to register - it's free and very quick! You have to register before you can post and participate in our discussions with 70000 other registered members. Downloads, user profiles and some forums can only be seen by registered members. After you create your free account you will be able to customize many options, you will have the full access to new hacks, latest cheats and last but not least will see no advertisements at all. We would love to see you around in our community!
View Poll Results: Was this helpful?
yes 5 100.00%
no 0 0%
Voters: 5. You may not vote on this poll

Reply
 
LinkBack Thread Tools Display Modes
  #1  
Old 04-15-2008, 12:28 PM
skhouri10's Avatar
So.... Whats up???

 
Join Date: Nov 2007
Location: Silvermoon in Sunfury Spire
Posts: 340
Thanks: 0
Thanked 0 Times in 0 Posts
Reputation: 149
Rep Power: 2
skhouri10 will become famous soon enoughskhouri10 will become famous soon enough
Send a message via MSN to skhouri10
LUA Tutorial

Ok this tut is ALL MY WORK AND NO ONE ELSES. ALL CREITS GO TO ME.
THIS IS NOT FINISHED, THIS IS NOT FINISHED, THIS IS NOT FINISHED!!!!
I will update it every time I finish a section. Its my first lua tut so it could be a bit off. So as I said i will update every time i finish a section (I will also bump lol)
I am currently working on quest and other npc function. After that i will show game object functions



Hey all!! This is my first LUA TUT that I have done myself! It contains data from a few other sites yes, but most of it is mine!! (it may be a bit dodgy but it was hard to make. If it is please tell me and I will fix it)

PART 1: BASIC START
Ok, for starters every function will start with this:

Code:
function UnitName_Event/Function (Unit, Event)
and end with
Code:
end
So for example

Code:
function test_OnCombat (Unit, Event)
end
Easy? It should be!

PART 2: TEXT/TALKING

Ok, so you have an npc and you really want it to yell out something when it enters combat or something? Well thats easy! All you have to do is add this to our script:

Code:
Unit:SendChatMessage (type, language,"some text")
The type is if the npc will say, yell or whisper the text:
Code:
say: 11
yell: 12
whisper: 13
The language can be
Code:
0 = UNIVERSAL <= The most used (all languages)
1 = ORCISH
2 = DARNASSIAN
3 = TAUREN
6 = DWARVISH
7 = COMMON
8 = DEMONIC
9 = TITAN
10 = THELASSIAN
11 = DRAGONIC
12 = KALIMAG
13 = GNOMISH
14 = TROLL
33 = GUTTERSPEAK
35 = DRAENEI
And now just insert the text you want. So now are script should look like this:
Code:
function test_OnCombat (Unit, Event)
        Unit:SendChatMessage(12, 0, "Die all!")
end
Of couse with your own type, language and text.

PART 3: MAKING THE NPC CAST A SPELL (NOT AN AOE OR BUFF)

Ok so now you want the fight to get interesting by adding a spell? Easy just add this:

Code:
Unit:RegisterEvent("nameofthefunction", timeinmiliseconds, howmanytimes)
The name of the function will be:
Code:
NpcName_SpellName
So now we should have something like mine:
Code:
function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10) 
end
Now we need to make another function so go 2 lines down under the end and put this:
Code:
function NpcName_SpellName (pUnit, Event)
        pUnit:CastSpellOnTarget(spellid, pUnit:GetInfo)
The get info can be:
Code:
- GetRandomPlayer(0) = Random Player
- GetRandomPlayer(1) = Random in Short-Range
- GetRandomPlayer(2) = Random in Mid-Range
- GetRandomPlayer(3) = Random in Long-Range
- GetRandomPlayer(4) = Random with Mana
- GetRandomPlayer(5) = Random with Rage
- GetRandomPlayer(6) = Random With Energy
- GetRandomPlayer(7) = Random NOT Main-Tank
- GetMainTank()
- GetClosestPlayer()
Code:
function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
And thats it for spells that aren't AOE or a buff

PART 3.5: MAKING AN NPC CAST AN AOE OR A BUFF

Very very simple. Just do what you did in part 3 although when you reach the part which is:
Code:
function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
Just delete the
Code:
OnTarget
and the
Code:
pUnit:GetRandomPlayer(0)) or whatever you put there
PART 4: CHECK METHOD

At first this may seem a bit complex but after a few times you should get it right. Its called the check method. The check method is used to make the npc check its health or mana % every so often and then do something. So lets start by puting this into your script:

Code:
function NpcName_Check (pUnit, Event)
Now if you want it to check its health % then put:
Code:
if pUnit:GetHealthPct()
or for mana
Code:
if pUnit:GetManaPct()
for this I will be using health. So I want it to check to see if the npc's health % is above 50 so I will put this in:
Code:
< 50 then
So for me it will now look like this:
Code:
function Test_Check (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
Now lets add a spell and some text. To add a spell or text just put this
Code:
pUnit:SendChatMessage (type, language,"some text"
and for a spell just put
Code:
pUnit:CastSpellOnTarget(spellid, pUnit:GetInfo)
Just like before.
Now if you want to have more than one check function than you need the have:
Code:
NpcName_CheckA
and for the second would be:
Code:
NpcName_CeckB
and so on. Now you need to register it under OnCombat. So go back to your OnCombat function and at the end (before the word end) put:
Code:
Unit:RegisterEvent("NpcName_Check", timeinmiliseconds, howmanytimes)
Don't forget to register it again if you have more than one.
At the moment my script looks like this:

Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!")
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
Now lets move on.

PART 5: MAKING AN NPC SUMMON ANOTHER NPC

There are two ways to do this. One is the more simpler way where the npc will summon them to its exact location, and the other which is harder (don't really recommend it) is where you manualy set you the npc's summoning location.

SIMPLE METHOD:

Ok, this is the simple method and is mostly used by starters. As explained before, this will summon the creature to the exact location of our npc. Ok so what we have to do is add this to our script (under everything)
Code:
function NpcName_Summon (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (Creatureid, x, y, z, o, factionid, durationInMiliseconds);
end
So as usuall the npc name you should know by now. The creature id is the id of the creature you are going to spawn. Now leave:
Code:
, x, y, z, o,
as it is because this is the simple method. When you make the creature that you are going to spawn make sure you take down the faction id because it needs to be the same.
And the duration is kind of self explanitory.
So mine looks like:
Code:
function Test_Summon (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
end
Now its time to register it so go back to OnCombat and under your last register just put:
Code:
Unit:RegisterEvent("NpcName_Summon", timeinmiliseconds, howmanytimes)
You can summon more than one npc at one time. So now mine script looks like:
Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!"
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
        Unit:RegisterEvent ("Test_Summon", 50000, 6)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
end

function Test_Summon (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000002, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000003, x, y, z, o, 14, 360000);
end
ADVANCED METHOD:

So you want your npc to summon somthing but not at his/hers/its exact location? Well then you will be needing to use this method. In this method you must go in-game to the location you want your npc to summon your creatures and type .gps . Now you must write down the x, y, z and o numbers. Now open your script and put down this:
Code:
function NpcName_Summon (pUnit, Event)
         pUnit:SpawnCreature (Creatureid, xid, yid, zid, oid, factionid, durationInMiliseconds);
So for the x id it would be the number you got when you typed in .gps next to the x. And the y id would be next to y when you typed in gps ect. Once you filled that out just fill in the faction and the duration just like in the simple method. Now you need to register it just like you did inn the simle method. So mine looks like:
Code:
function Test_SummonB (pUnit, Event)
         pUnit:SpawnCreature (1000004, 331.963989, 109.736969, 9.615998, 0.652178, 14, 360000);
So now my entire script looks like:
Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!"
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
        Unit:RegisterEvent ("Test_SummonA", 50000, 6)
        Unit:RegisterEvent ("Test_SummonB", 50000, 6)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
end

function Test_SummonA (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000002, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000003, x, y, z, o, 14, 360000);
end

function Test_SummonB (pUnit, Event)
         pUnit:SpawnCreature (1000004, 331.963989, 109.736969, 9.615998, 0.652178, 14, 360000);
And thats all for summoning!

PART 6: MAKING AN NPC CHANGE ITS SCALE

This is pretty straight forward. Simply add this to your script:
Code:
function NpcName_Scale (pUnit, Event)
        pUnit:SetScale (ScaleNumber)
end
So for me I will put:
Code:
function Test_Scale (pUnit, Event)
        pUnit:SetScale (3)
end
Now as usual we need to register it under OnCombat, so once again:
Code:
Unit:RegisterEvent ("NpcName_Scale", timeinmiliseconds, howmanytimes)
Now my script looks like

Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!"
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
        Unit:RegisterEvent ("Test_SummonA", 50000, 6)
        Unit:RegisterEvent ("Test_SummonB", 50000, 6)
        Unit:RegisterEvent ("Test_SetScale", 30000, 10)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
end

function Test_SummonA (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000002, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000003, x, y, z, o, 14, 360000);
end

function Test_SummonB (pUnit, Event)
         pUnit:SpawnCreature (1000004, 331.963989, 109.736969, 9.615998, 0.652178, 14, 360000);
end

function Test_Scale (pUnit, Event)
        pUnit:SetScale (3)
end
Now to move on.

PART 7: MALING THE NPC CHANGE ITS MODEL

Another pretty straight forward command. So we are going to add this to our script:
Code:
function NpcName_Model (pUnit, Event)
        pUnit:SetModel (Displayid)
end
So just to make something clear, the display id is NOT the npc's entry id. Ok mine looks like this:
Code:
function Test_Model (pUnit, Event)
        pUnit:SetModel (31135)
end
And yet again its time to register the event. Soooooo go back to OnCombat and put:
Code:
Unit:RegisterEvent ("NpcName_SetModel", timeinmiliseconds, howmanytimes)
'
And once again i will show you what mine looks like:

Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!"
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
        Unit:RegisterEvent ("Test_SummonA", 50000, 6)
        Unit:RegisterEvent ("Test_SummonB", 50000, 6)
        Unit:RegisterEvent ("Test_SetScale", 30000, 10)
        Unit:RegisterEvent ("Test_SetModel", 60000, 3)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
end

function Test_SummonA (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000002, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000003, x, y, z, o, 14, 360000);
end

function Test_SummonB (pUnit, Event)
         pUnit:SpawnCreature (1000004, 331.963989, 109.736969, 9.615998, 0.652178, 14, 360000);
end

function Test_Scale (pUnit, Event)
        pUnit:SetScale (3)
end

function Test_Model (pUnit, Event)
        pUnit:SetModel (31135)
end
NEXT!

PART 8: ADDING THE REST

Ok so we are basicly finished with our ENEMY MOB SECTION, NOT THE COMPLETE SECTION OF LUA. So at the bottom of every thing add:
Code:
function NpcName_OnDied (Unit, Event)
Unit:RemoveEvents()
end

function NpcName_OnKilledTarget (Unit, Event)
end

function NpcName_OnLeaveCombat (Unit, Event)
Unit:RemoveEvents()
end
You can add anything to these by registering them under one of these. Now under that put:
Code:
RegisterUnitEvent(entryidofthenpc, 1, "NpcName_OnCombat")
RegisterUnitEvent(entryidofthenpc, 2, "NpcName_OnLeaveCombat")
RegisterUnitEvent(entryidofthenpc, 3, "NpcName_OnKilledTarget")
RegisterUnitEvent(entryidofthenpc, 4, "NpcName_OnDied")
So now we are done with the mob/boss section!! And now my script looks like:

Code:
function Test_CheckA (pUnit, Event)
        if pUnit:GetHealthPct() < 50 then
           pUnit:SendChatMessage (12, 0, "Stop!"
           pUnit:CastSpellOnTarget (26989, pUnit:GetMainTank())
end

function Test_CheckB (pUnit, Event)
        if pUnit:GetHealthPct() < 10 then
           pUnit:CastSpell (17928)
end
end

function Test_OnCombat
        Unit:SendChatMessage (12, 0, "Die all!")
        Unit:RegisterEvent ("Test_ShadowBolt", 10000, 10)
        Unit:RegisterEvent ("Test_CheckA", 30000, 20)
        Unit:RegisterEvent ("Test_CheckB", 35000, 10)
        Unit:RegisterEvent ("Test_SummonA", 50000, 6)
        Unit:RegisterEvent ("Test_SummonB", 50000, 6)
        Unit:RegisterEvent ("Test_SetScale", 30000, 10)
        Unit:RegisterEvent ("Test_SetModel", 60000, 3)
end

function Test_ShadowBolt (pUnit, Event)
        pUnit:CastSpellOnTarget (11661, pUnit:GetRandomPlayer(0))
end

function Test_SummonA (pUnit, Event)
         x = pUnit:GetX();
         y = pUnit:GetY();
         z = pUnit:GetZ();
         o = pUnit:GetO();
         pUnit:SpawnCreature (1000001, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000002, x, y, z, o, 14, 360000);
         pUnit:SpawnCreature (1000003, x, y, z, o, 14, 360000);
end

function Test_SummonB (pUnit, Event)
         pUnit:SpawnCreature (1000004, 331.963989, 109.736969, 9.615998, 0.652178, 14, 360000);
end

function Test_Scale (pUnit, Event)
        pUnit:SetScale (3)
end

function Test_Model (pUnit, Event)
        pUnit:SetModel (31135)
end

function Test_OnDied (Unit, Event)
Unit:RemoveEvents()
end

function Test_OnKilledTarget (Unit, Event)
end

function Test_OnLeaveCombat(Unit, Event)
Unit:RemoveEvents()
end

RegisterUnitEvent(3000000, 1, "Test_OnCombat")
RegisterUnitEvent(3000000, 2, "Test_OnLeaveCombat")
RegisterUnitEvent(3000000, 3, "Test_OnKilledTarget")
RegisterUnitEvent(3000000, 4, "Test_OnDied")
Don't think thats it though!!! There are still two more parts for friendly npc's!

As I said before this may be a bit off. Oh and one last thing..
THIS IS NOT FINISHED, THIS IS NOT FINISHED, THIS IS NOT FINISHED
(Still a bit more to come!)


Oh and can this be stickied? lol

Last edited by skhouri10; 05-07-2008 at 10:54 PM.
Reply With Quote
D3scene
Welcome to D3scene - probably the best location for all Gamers.

To participate in our friendly environment you have to register. After completing registration you will have full access to all threads and features. We care about members and try to make your stay as pleasant as possible. We are unique with the following feature for members - you will not see a single Advertisement!


The best: registration is completely free. It will not cost you a single penny or harm you in any way. You will lose nothing except 1 minute of your time. So why not register? We would be happy to see you around!
  #2  
Old 04-16-2008, 03:22 AM
skhouri10's Avatar
So.... Whats up???

 
Join Date: Nov 2007
Location: Silvermoon in Sunfury Spire
Posts: 340
Thanks: 0
Thanked 0 Times in 0 Posts
Reputation: 149
Rep Power: 2
skhouri10 will become famous soon enoughskhouri10 will become famous soon enough
Send a message via MSN to skhouri10
Bump: Updated, now includes summoning
Reply With Quote
  #3  
Old 04-16-2008, 11:24 AM
skhouri10's Avatar
So.... Whats up???

 
Join Date: Nov 2007
Location: Silvermoon in Sunfury Spire
Posts: 340
Thanks: 0
Thanked 0 Times in 0 Posts
Reputation: 149
Rep Power: 2
skhouri10 will become famous soon enoughskhouri10 will become famous soon enough
Send a message via MSN to skhouri10
Bump: Update now includes scale and model changing and finishing the rest
Reply With Quote
  #4  
Old 10-21-2009, 06:40 AM
Newbie

 
Join Date: Oct 2009
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Reputation: 0
Rep Power: 1
xgamer08 is an unknown quantity at this point
OK..

Great Tutorial, but i have a question. Im new to this so i made a simple Deathwing Script. It looks fine to me cause i followed ur tutorial but wen i start up the server it gives me an error message wen it gets to loading the scripts. here is a pic of the script and error:
Attached Images
File Type: jpg Script.jpg (62.5 KB, 3 views)
File Type: jpg script 2.jpg (139.0 KB, 3 views)
Reply With Quote
  #5  
Old 11-06-2009, 11:39 PM
Newbie

 
Join Date: Nov 2009
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Reputation: 0
Rep Power: 1
jansen12321 is an unknown quantity at this point
Hello, I'm new at scripting and tbh don't got a clue what to do.

I made a script out of the boss Hadronox (just random) from azjol'nerub, but it doesn't work.

It looks like this:
function Hadronox_OnCombat (pUnit, Event)
Unit:RegisterEvent(Hadronox_Fireball, 60000, 2)
end
function Hadronox_Fireball(pUnit, Event)
pUnit:CastSpellOnTarget(28921, pUnit:GetMainTank())
end
function Hadronox_OnDied(Unit, Event)
Unit:RemoveEvents()
end
function Hadronox_OnKilledTarget(Unit, Event)
end
function Hadronox_OnLeaveCombat(Unit, Event)
Unit:RemoveEvents()
end
RegisterUnitEvent(28921, 1, Hadronox_OnCombat)
RegisterUnitEvent(28921, 2, Hadronox_OnLeaveCombat)
RegisterUnitEvent(28921, 3, Hadronox_OnKilledTarget)
RegisterUnitEvent(28921, 4, Hadronox_OnDied)

What is wrong?

As i said, I'm really unexperienced in scripting, so you may find hundreds of mistakes....
Reply With Quote
D3scene
Welcome to D3scene - probably the best location for all Gamers.

To participate in our friendly environment you have to register. After completing registration you will have full access to all threads and features. We care about members and try to make your stay as pleasant as possible. We are unique with the following feature for members - you will not see a single Advertisement!


The best: registration is completely free. It will not cost you a single penny or harm you in any way. You will lose nothing except 1 minute of your time. So why not register? We would be happy to see you around!
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
A custom quest tutorial. Batman WoW Private Server Info & Help 13 07-29-2008 06:13 PM
[SHARE] (Not my work): Lua script basic tut skhouri10 WoW Private Server Info & Help 1 04-10-2008 06:02 PM
[Updated - Nov. 27]Tutorial List editee Tutorials and Renders 3 03-16-2008 05:00 AM
Get most out of your Photoshop tutorial hendricius Tutorials and Renders 0 01-24-2008 04:43 PM
FalseLogic's Apply Image Sig Starter Tutorial FalseLogic Tutorials and Renders 6 01-18-2008 06:51 AM


All times are GMT +1. The time now is 07:26 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0 ©2009, Crawlability, Inc.
vBulletin style developed by Transverse Styles