recursal/Fanatic-Fandom huggingface dataset:
Water Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; testingrc1 1.26
; Date/Time: 12:56:06 AM on 7/4/2010
; By Naddaz on TAZCO
;Mana Water
 Function Main()
 Player = Actor()
 PlayerMaxHP% = MaxAttribute(Player, "Mana")
 PlayerHP% = Attribute(Player, "Mana")

  CurrPHunger% = Attribute(Player, "Hunger")
 CurrMaxPHunger% = MaxAttribute(Player, "Hunger")

 If (PlayerHP >= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

      OutPut(Player, "You dont need that right now", 200, 45, 32)
    Return

 EndIf

         If (PlayerHP >= PlayerMaxHP) And (CurrPHunger <= CurrMaxPHunger)
        ;Give player hunger incress.
        ;CHANGE THIS LATER FOR WATER SYSTEM
        CurrPHunger% = Attribute(Player, "Hunger")
        TotHungerToGive% = CurrPHunger + 25
        SetAttribute(Player, "Hunger", TotHungerToGive)
        GiveItem(Player, "Mana Water", - 1)
        Return
         EndIf

 If (PlayerHP <= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

 OutPut(Player, "You sit and drink", 0, 200, 40)
 GiveItem(Player, "Mana Water", - 1)

 AnimateActor(Player, "Sit Down", 1.7)

 Ticks% = 6 ;total ticks of Mana

 Repeat

 Tothealth% = Attribute(Player, "Mana")
 totPlayerMaxHP% = MaxAttribute(Player, "Mana")
 DoEvents(1)

 NewHp% = Attribute(Player, "Mana") + 65 ;tick Mana amount

 AnimateActor(Player, "Sit idle", .05, 1)

 If (Tothealth >= totPlayermaxhp)
     AnimateActor(Player, "Standup", 1)
    Ticks% = 0
     Return
 EndIf

 TickChance% = Rnd(1, 32)

 If (TickChance = 1)
 NewHp% = Attribute(Player, "Mana") + Rnd(3, 5) ;tick Mana amount
 TotalHp% = NewHp
 SetAttribute(Player, "Mana", TotalHp) ;give player Mana per tick
 EndIf

 Until (Tothealth = totPlayermaxhp)

 EndIf

 End Function

```
Rockhead Charge Pet Ability Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; By Tazco
 ;Testing a charge ability for RockHead pet

Function Main()
Player = Actor()
Target = ContextActor()

PName$ = Name(Player)
TName$ = Name(Target)

PetID$ = ActorID("RockHead", "") ;pet id
Petname$ = "RockHead"  ;Pet Name
PetFound% = 0 ;Used for repeat if = 1 end repeat

;--------------------------------------------------------------------------------------------------------
   If (Target = 0) ; Check target is valid

  		Output(Player, "Select a target for your pet to attack!")
 		Return
    EndIf
 ;--------------------------------------------------------------------------------------------------------

;--------------------------------Vampire Check----------------------------------------------------------------------------------
 ;If vamp dont tell player they cant use a pet in this form
                IsVamp% = ActorId("Vampire", "Form")
                PRace$ = Race(Player)
                PClass$ = Class(Player)
                PlayerID% =ActorID(PRace, PClass)

                If(IsVamp = PlayerID) ;if player is a vampire
                    OutPut(Player, "You can not use a human pet in vampire form.", 255, 34, 12)
                    Return
                EndIf
;----------------------------End Vampire Check----------------------------------------------------------------------------------

;Look for actor pet
;Repeat

 NewPetToFind$ = FindActor(Petname, 2) ;type 2 search through NPCs

 NpcName$ = Name(NewPetToFind) ;found actor name

 	If (NpcName = Petname) ;If npc found is a gremlin pet
 		PetOwnerName$ = ActorGlobal(NewPetToFind, 1) ;check for pet owner name.

 					Result% = ActorDistance(NewPetToFind, Target)
 					 If (Result > 140)  ;check distance of target.
 							Output(Player, "Your pet is to far away, from your target!")
 							PetFound = 1
 							Return
 					 EndIf

 		If (PetOwnerName = PName) ;see if pet found is players pet. Check stored name to player name.
 			 PetSpeed% = Attribute(NewPetToFind, "Speed")
 			 ChargeSpeed% = PetSpeed + 18
 			  SetAttribute(NewPetToFind, "Speed", ChargeSpeed)

 			 SetActorTarget(NewPetToFind, Target)

 			 SetActorAIState(NewPetToFind, 3) ;set pet attack
 			 ChargeDone% = 15
 			  	Repeat
 			  		AnimateActor(NewPetToFind, "Run", .5, 2)
 			  		DoEvents(1000)
 			  		ChargeDone% = ChargeDone - 1
 			  		PetFound = 1
 			  	Until (ChargeDone = 0)
 			 CreateEmitter(Target, "hitflash", 15, 650)
 		EndIf

 	EndIf
 DoEvents(10)

 	If (PetOwnerName = "")
 		OutPut(Player, "You must have a RockHead pet summoned, to use this ability.")
 		PetFound = 1
 		Return
 	EndIf

 ;Until (PetFound = 1)

OldSpeed% = Attribute(NewPetToFind, "MobSpeed")
SetAttribute(NewPetToFind, "Speed", OldSpeed)

End Function

```
Defensive Arms Buff Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; testingrc1 1.26
; Date/Time: 10:23:54 PM on 7/9/2009
; By Tazco on NADDAZ
;Buff_Defensive Arms
Function Main()
Player% = Actor()
Target% = ContextActor()
Pname$ = Name(Player)
PlayerLevel% = ActorLevel(Player)
Prayerlvl% = Attribute(Player, "Prayer")
Bufflevel% = AbilityLevel(Player, "Buff Defensive Arms")
Buffamount% = Prayerlvl + PlayerLevel / 2 + Bufflevel * 5 / 23

ScriptLog("Buff_Defensive Armsrunning by " + Pname)

If (Prayerlvl <= 0)
    OutPut(Player, "You need to recharge your prayer, to use this buff, you need 1 prayer point.", 245, 123, 123)
    Return
 EndIf

 Buffcost% = Attribute(Player, "Prayer") - 1
 SetAttribute(Player, "Prayer", Buffcost)  ; take 1 prayer from player for buff cost

 If (BuffAmount > 75) ;set max amount that buff can be
     Buffamount% = 75
EndIf

Doevents(500)
If (Prayerlvl >= 1) ; set prayer level required to use ability

     AddActorEffect(Player, "Defensive Arms + Def", "Defence", Buffamount, 1800, 250) ; add buff icon should last 30 min
    OutPut(Player, "You have buffed with Defensive Arms " + Buffamount, 110, 54, 43)

Else
OutPut(Player, "You need a prayer level of 1 to use this Prayer ability", 125, 32, 43)
Return
EndIf
End Function

```
Bone Set Up for RC Models

*Taken from the RealmCrafter: Standard Documentation*

Realm Crafter Actors (Monsters and Player Characters) have
20 bones. The more bones a model has the greater the impact on FPS it has.

Gubbins (Equipment, weapons, armor, beards,
hair, etc) can be attached to 11 of these bones. These Gubbin attachment
joints/bones MUST be named the following:

1. Head
2. Chest
R\_Shoulder
4. L\_Shoulder
5. Pelvis
6. R\_Forearm
7. L\_Forearm

8. R\_Hand
9. L\_Hand
10. R\_Shin
11. L\_Shin
Default server Startup Script

*Taken from the RealmCrafter: Standard documentation.*

## Script

// Default
server startup script

// You may
alter this script however you like

// The entry
function for this script is always "Main"

// There is no
actor or context actor for this script

Function Main()

CreateZoneInstance("Dark
Lands")

Return()

End Function
Adding Numeric Pad (European Keyboard) to RealmCrafter Source Tutorial

Thanks to UUICEO, we finally get the NUM Keypad working in RC

**in Gooey.bb**,
Function Gy\_Update

Find this

```
GY_InKey = GetKey()

```

and replace by that

```
If KeyHit(79) > 0

  GY_Inkey = Asc("1")

 ElseIf KeyHit(80) > 0

  GY_Inkey = Asc("2")

 ElseIf KeyHit(81) > 0

  GY_Inkey = Asc("3")

 ElseIf KeyHit(82) > 0

  GY_Inkey = Asc("0")

 ElseIf KeyHit(71) > 0

  GY_Inkey = Asc("7")

 ElseIf KeyHit(72) > 0

  GY_Inkey = Asc("8")

 ElseIf KeyHit(73) > 0

  GY_Inkey = Asc("9")

 ElseIf KeyHit(75) > 0

  GY_Inkey = Asc("4")

 ElseIf KeyHit(76) > 0

  GY_Inkey = Asc("5")

 ElseIf KeyHit(77) > 0

  GY_Inkey = Asc("6")

 ElseIf KeyHit(83) > 0

  GY_Inkey = Asc(".")

 Else

  GY_InKey = GetKey()

 EndIf

```

Only one problem left, when you press "/" (KeyHit 181), it displays "/!"
the "!" should be declared somewhere else, but I didn't find where yet.
Super Saiyan 2

**This article/section is under construction/a work in progress. Therefore, this page/section is not yet complete and may be short or unfinished, possibly because the author didn't have enough time. Please ignore this, the user'll try to get it complete as fast as (s)he can.**

## Super Saiyan 2

### Users

**Goku
Vegeta
Cloned Vegeta
Vegito
Future Trunks
Goten
Trunks
Gotenks**
/Command Script

*Taken from the RealmCrafter: Standard documentation.*

## Script

// This script
contains custom /commands for the server to respond to

// You may
alter this script however you like

// The entry
function for this script is the name of the command

// So a new
Function must be added for each new custom command

// You may not
override built in /commands

// The actor is
the player who entered the /command, and there is no context actor

// Example
'/wave' command

Function Wave()

// Animate player

AnimateActor(Actor(), "Wave",
0.2, 0)

// Done

Return()

End Function

// Example
'/heal' command for GMs

Function Heal()

Player = Actor()

// Check player is a GM

If (PlayerIsGM(Player))

// Set health to maximum

Max = MaxAttribute(Player, "Health")

SetAttribute(Player, "Health", Max)

EndIf

// Done

Return()

End Function
Dansken Online

Dansken Online was a danish MMORPG created in RealmCrafter standard by original forum user Thomas B. The game was released in late 2007 but has been discontinued sometime after.

Dansken is a notable RealmCrafter project for two reasons; (1) it is one of the few RealmCrafter projects to have been released and (2) it is the most notable non-English RealmCrafter game.
Guild/Town Requires A Key Script

*Created by Stragothemad.*

```
Function Main()

Player = Actor()

D = OpenDialog(Player, ContextActor(), "Guild Door")

DialogOutput(Player, D, "This is the door to SIN guild map would you like to enter?", 255, 255, 255)

Result = DialogInput(Player, D, "Yes, No")

    If Result = 1

        If HasItem(Player, "Guild Key", 1)

            DialogOutput(Player, D, "Welcome to Sin guild.", 255, 255, 255)

            DoEvents(2000)

            CloseDialog(Player, D)

            Warp(Player, "Ourania Cave", "In_cave")

        Else

            DialogOutput(Player, D, "You need to have the guild key.", 255, 255, 255)

            DoEvents(2000)

            CloseDialog(Player, D)

        EndIf

    ElseIf Result = 2

        CloseDialog(Player, D)

    EndIf

End Function

```
Polymorph Skill

*Created by Piysta. You may need to make edits to this script for it to work.*

Old as hell, not even sure if it works. Clone spell of WoW's Polymorph.

```
Player = Actor()

Target = ContextActor()

Mana = Attribute(Player, "Mana")

OldID = ActorIDFromInstance(Target)

ID = ActorID("Sheep", "Critter")

Distance# = ActorDistance(Player, Target)

Faction = Faction(Player)

TargetFaction = Faction(Target)

FR = Faction + TargetFaction

If (Target = 0)

   Output(Player, "You do not have a target.")

ElseIf (Target = 1)

   If (TargetFaction = Faction)

      Output(Player, "You can not attack that target.")

   ElseIf (TargetFaction <> Faction)

      If (FR >= 101)

         Output(Player, "You can not attack that target.")

      ElseIf (FR <= 100)

         If (Distance > 40)

            Output(Player, "Target is out of range.")

         ElseIf (Distance < 40)

            If (Mana <= 4)

               Output(Player, "Not enough Mana.")

            ElseIf (Mana >= 5)

               SetAttribute(Player, "Mana", -5)

               Bar = CreateProgressBar(Player, 255, 0, 0, 0.01, 0.48, 0.2, 0.4, 4, 4, "Casting Polymorph")

                  Clicks = 4

                  X# = ActorX(Player)

                  Y# = ActorY(Player)

                  Z# = ActorZ(Player)

                  Repeat

                     Clicks = Clicks - 1

                     Delay(1000)

                     NewX# = ActorX(Player)

                     NewY# = ActorY(Player)

                     NewZ# = ActorZ(Player)

                     If (NewX# <> X#)

                        DeleteProgressBar(Player, Bar)

                        Output(Player, "Spell Canceled.")

                        Return

                     EndIf

                     If (NewY# <> Y#)

                        DeleteProgressBar(Player, Bar)

                        Output(Player, "Spell Canceled.")

                        Return

                     EndIf

                     If (NewZ# <> Z#)

                        DeleteProgressBar(Player, Bar)

                        Output(Player, "Spell Canceled.")

                        Return

                     EndIf

                     UpdateProgressBar(Player, Bar, Clicks)

                  Until Clicks = 0

                  ChangeActor(Target, ID)

                  AddActorEffect(Target, "Polymorphed: Sheep", "Health", 0, 5, 1)

                  DoEvents(5000)

                  ChangeActor(Target, OldID)

            EndIf

         EndIf

      EndIf

EndIf

```
Vamp Drain Soul Ability Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Define entry function 'Main'

Function Main()
Player = Actor()
Target = ContextActor()

TargetIsHuman% = ActorIsHuman(Target)
MaxBlood% = MaxAttribute(Player, "Blood")

;--------------------------------Vampire Check--------------------------------------------------------
 ;If vamp dont tell player they cant use a pet in this form
                IsVamp% = ActorId("Vampire", "Form")
                PRace$ = Race(Player)
                PClass$ = Class(Player)
                PlayerID% =ActorID(PRace, PClass)

                If Not (IsVamp = PlayerID) ;if player is a vampire
                    OutPut(Player, "You can not use a vampire ability in human form.", 255, 34, 12)
                    Return
                EndIf
;----------------------------End Vampire Check--------------------------------------------------------

If(TargetIsHuman = 1)
	Output(Player, "Cant cast onto a player. Must be a NPC.")
	Return
EndIf

CreateEmitter(Target, "Blood", 10, 300)
DoEvents(1000)
SetAttribute(Target, "Health", 0)
SetAttribute(Player, "Blood", MaxBlood)

OutPut(Player, "Blood Replinished.")
Return
End Function

```
Smelting Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Tazgame
 ; Date/Time: 7:52:52 PM on 2/27/2009
; By Tazco on NADDAZ
; need to fix the amount of iron chest making choice, it hangs on the dialog option screen when you pick 1, 2, 5 chests

Function Main()
	Player = Actor()

         ;find Anvil and see if its in range to use it.
    AnvilName$ = "Anvil"
    Target% = FindActor(AnvilName, 3) ;type 2 look through npcs

       IsClose3# = ActorDistance(Target, Player)

       IsClose% = IsClose3

         If (Target = 0)
            OutPut(Player, "This zone does not have a Anvil.")
            Return
        EndIf

         If (IsClose > 10)
            OutPUt(Player, "You need to find a Anvil to smelt weapons and armor.")
            Return
        EndIf

 	chatbox = OpenDialog(Player, Target, "Smelting", 418)
 	DialogOutPut(Player, chatbox, "Do you want to craft weapons or armor?", 102, 255, 255)
 	Smeltinglvl% = Attribute(Player, "Smelting")

          SoundChance% = Rand(1, 2)
         If (SoundChance = 1)
            PlaySound(Player, 169, 1)
         Elseif (SoundChance = 2)
            PlaySound(Player, 170, 1)
         EndIf

 Makeitemresult = DialogInput(Player, chatbox, "Smelt Armor,Smelt Weapons,Smelt Misc Items,Close") ; See changes to DialogInput command.

 If (Makeitemresult = 1)  ;Make armor script
 	CloseDialog(Player, chatbox)
  	ThreadExecute("Skill_Smelting_Armor", "Main", Player, 0) ;send xp amount to the smelting scripts

ElseIf(Makeitemresult = 2) ;make weapons sends to weapons smelting script
 		CloseDialog(Player, chatbox)
		ThreadExecute("Skill_Smelting_Weapons", "Main", Player, 0) ;send xp amount to the smelting scripts
ElseIf (Makeitemresult = 3) ;make misc smelting items EG axe head arrow heads ect...
         CloseDialog(Player, ChatBox)
        ThreadExecute("Skill_Smelting_Misc", "Main", Player, 0) ;send xp amount to the smelting scripts

 ElseIf(Makeitemresult = 4) ;end first choice make bars, armor, weapons and misc
   CloseDialog(Player, chatbox)
  Return
 EndIf

 Return

 End Function

```
Random NPC Chatter Script

*Created by Taz.*

```
; Date/Time: 7:44:44 PM on 10/7/2010
; By Naddaz on TAZCO

Function Main()

NPC = Actor()

Player = Actor()
Npc = ContextActor()
Chatbox% = OpenDialog(Player, Npc, "Scout in training")
Chatoption% = Rand(1, 10) ;1 of 10 options, for npc chater.
DoEvents(600)

If (Chatoption = 1)
DialogOutPut(Player, Chatbox, "Busy leveling up here, you should talk to Grand Master.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 2)
DialogOutPut(Player, Chatbox, "I am killing bears, my strength grows the more I level.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 3)
DialogOutPut(Player, Chatbox, "Can I help you with something?", 125, 23, 234)
DialogInput(Player, Chatbox, "Not really.")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 4)
DialogOutPut(Player, Chatbox, "I dream of fighting all kinds of monsters, as I explore the world. ", 125, 23, 234)
DialogInput(Player, Chatbox, "Really")
DialogOutPut(Player, Chatbox, "Ya I hope to be the best melee fighter around.", 125, 23, 234)
DialogInput(Player, ChatBox, "Good luck to you.")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 5)
DialogOutPut(Player, Chatbox, "Training hard, will allow me to kill player killers even easyer.", 125, 23, 234)
DialogInput(Player, Chatbox, "Maybe you can help me one day.")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 6)
DialogOutPut(Player, Chatbox, "After I get my melee up, the plan is to focus on magic.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 7)
DialogOutPut(Player, Chatbox, "Not much will stop the power of the Grand Master.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 8)
DialogOutPut(Player, Chatbox, "I hear that leveling magic will increase spell levels, after you have bought and learned that spell.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 9)
DialogOutPut(Player, Chatbox, "Abandoning a quest can be helpful, if you no longer want to do that quest.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return

Elseif (Chatoption = 10)
DialogOutPut(Player, Chatbox, "The Grand Master holds a spell on these bears, so they will not attack newcomers.", 125, 23, 234)
DialogInput(Player, Chatbox, "Ok")
CloseDialog(PLayer, Chatbox)
Return
EndIf

End Function

```
GM Teleport Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Define entry function 'Main'

Function Main()
Player = Actor()

isplayergm = PlayerIsGM(Player)

If (isplayergm = 1)
	D = OpenDialog(Player, ContextActor(), "Gm Warp")
	DialogOutput(Player, D, "Where can I teleport you?", 255, 255, 255)
	Result = DialogInput(Player, D, " Aragon,Ramoria City,Astro Inn,Stat Trainer,Spell Trainer,GM Island,Town center,Nothing")
	If (Result = 1)
		Warp(Player,"Damoria","ramoria")
		MoveActor(Player, 964.401, 284.376, 2638.5)
	ElseIf (Result = 2)
		Warp(Player,"Ramoria Feilds","damoria")
		MoveActor(Player, 964.401, 284.376, 2638.5)
	ElseIf (Result = 3)
		Warp(Player,"Astro Inn","astroext")
	ElseIf (Result = 4)
		Output(Player, "please update script with locaton of the stat trainer.")
		;Warp(Player,"Damoria","Ramoria")
		;MoveActor(Player, 964.401, 284.376, 2638.5)
	ElseIf (Result = 5)
		Output(Player, "please update script with locaton of the spell trainer.")
		;Warp(Player,"Damoria","Ramoria")
		;MoveActor(Player, 964.401, 284.376, 2638.5)
	ElseIf (Result = 6)
		Output(Player, "please update script with locaton of the GM Island.")
		;Warp(Player,"Damoria","Ramoria")
		;MoveActor(Player, 964.401, 284.376, 2638.5)
	ElseIF (Result = 7)

	;	Warp(Player,"Ramoria Feilds","Start")
		MoveActor(Player, 1125.69, 281.039, 4109.69)
	ElseIf (Result = 8)
		DialogOutput(Player, D, "Right you are, bye then!", 255, 255, 255)
		DialogInput(Player, D, "Bye")
		CloseDialog(Player, D)
		Return
	EndIf
	DialogOutput(Player, D, "Thank you! Come back when you want something else...", 255, 255, 255)
	DialogInput(Player, D, "Bye")
	CloseDialog(Player, D)

Else
	OutPut(Player, "You must be gm to use this.")
EndIf
Return
End Function

```
Starcraft/Solucja, Kampania BroodWar - Zerg, Poziom 2

**Reign of Fire**

Drugi poziom jest już zupełnie inny niż poprzedni. Najpierw oglądamy przerywnik filmowy, po czym działamy SCV z Psi Emitter. Na razie możemy nim przejąć co najwyżej 2 Drone'y oraz 8 Zerglingów. Jednym Dronem budujemy Hatchery, a drugim na razie poczekajmy. Po mutacji głównej budowli powtarzamy krok i jednocześnie staramy się wzbić w powietrze 1-2 Overlordy, z powodu przekroczonego limitu zaopatrzenia. Na dole są do zajęcia 3 Hunter Killery, bierzemy je bezwarunkowo, zresztą da się je *ukraść* bez żadnego zagrożenia ze strony wroga. Rozbudowujemy bazę, potrzebne nam są co najmniej Spawning Pool i Hydralisk Den, a obronę bazy niech wzmocnią Sunken Colony po lewej stronie posterunku i Spore Colony nieco na północ i na południe. Atak na żółtego Terrana (jedyny wróg w grze) zaczynamy od zniszczenia bunkra nieopodal naszej bazy, w nagrodę otrzymamy 3 silniejsze wersje Zerglingów do zajęcia (**#53**). Na wschodzie staramy się zmutować nową bazę, ochronę jej powierzamy Hydraliskom i Queenom, tym drugim potrzebne są badania nad Spawn Broodlings i zwiększeniem limitu many. SCV może jeszcze przejąć Torrasque'a oraz dodatkowe 3 Hunter Killery, lepiej tego *złodzieja* eskortujemy Overlordem, bo wtedy SCV będzie miał 200 punktów wytrzymałości. Tą potężną bestię jesteśmy w stanie zdobyć bez większego uszczerbku w oddziale, jeżeli zlikwidujemy rozłożony czołg z użyciem Queen (**#54**). Oprócz tego obrońcy stracą kontrolę nad złożami surowców, w ich pobliżu zmutujemy Hatchery. By zaatakować główną wrogą bazę, wykorzystujemy *wzniesieniowy półwysep* do desantu jednostek naziemnych. Utrudnieniem na początku będzie rozłożony czołg, dalej jest już z górki. Zadanie polega na zniszczeniu Psi Disruptera ulokowanego w prawym górnym rogu mapy.

Screen **#53**Screen **#54**

 Kompendium
Check Mail Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; By Naddaz on TAZCO

Function Main()

Player = Actor()
Target = ContextActor()
PName$ = Name(Player)
TName$ = Name(Target)

        HasMail$ = OpenFile(+ PName + "Mail.txt") ;attach name to player mail.

         If (HasMail = 0) ;there is no mail for player, make file.
            OutPut(Player, "You have no new mail.", 230, 145, 23)
            CloseFile(HasMail) ;close opened mail file
        Else
             CloseFile(HasMail)
            ChatBox$ = OpenDialog(Player, Target, +PName + " Mail")
            DialogOutPut(Player, ChatBox, "You have new mail, would you like to see it?", 230, 145, 23)
            POption% = DialogInput(Player, ChatBox, "No,Yes")
                If (POption = 1) ;Player will check later
                    CloseDialog(Player, Chatbox)
                    Return
                Endif
                  HasMail$ = OpenFile(+ PName + "Mail.txt") ;attach name to player mail.
             ;Player wants to see there mail show them!!
               PMail$ = Readline(HasMail)
               CloseDialog(Player, ChatBox)
               ChatBox$ = OpenDialog(Player, Target, +PName + " Mail")
               DialogOutPut(Player, ChatBox, + PMail, 230, 145, 23)

                DialogOutPut(Player, ChatBox, "if you don`t delete this message you will not be able to receive another.", 230, 145, 23)
               POption% = DialogInput(Player, ChatBox, "Delete Message,Close")

                CloseFile(HasMail)
              ; CloseFile(PMail)
                If (POption = 1) ;delete msg

                    DeleteFile(+ PName + "Mail.txt")
                    DialogOUtput(player, ChatBox, "Message has been deleted.", 230, 145, 23)
                    DialogInput(Player, ChatBox, "Close")
                    CloseDialog(Player, ChatBox)
                    Return
                Else ; close without deleteing msg

                Endif

                DoEvents(1000)
               CloseDialog(Player, ChatBox)

                CloseFile(HasMail)

         Endif

         CloseFile(HasMail)

End Function

```
Starcraft/Solucja, Enslavers - Poziom 1

**Schezar's Scavengers**

Kampanię *Enslavers* (która jest już po zainstalowaniu oryginalnego StarCrafta) będziemy rozgrywać głównie Terranami. Tak to wygląda w pierwszym etapie, na początku nie mamy bazy startowej. Mamy jednak nieliczną armię, która bez problemu pozbędzie się kilku wrogich Marine stojących nam na drodze. Na miejscu ich *zwłok* instalujemy bazę główną (**#1**), budujemy na początek Command Center oraz Supply Depot. Pierwsze ataki wroga są dosyć groźne, po połowie ustawiamy nasze priorytety na budowę SCV i szkolenie terrańskich Marine. Do obrony wystarczy na początek 12 Marine, a sprawa osadników jest następująca – 15 z nich wydobywa minerały, a 4 niech wydobywa gaz wespański z pobliskiego gejzera. Pobliskie mosty chronimy bunkrami z Marine i czołgami, a później możemy dobudować kilka Missile Turretów w kluczowych miejscach do obrony posterunku. Będziemy użerać się z Zergami, wysyłają oni co prawda słabe jednostki, ale w dosyć dużych ilościach. Rozpoczynamy atak na północ, posyłając Marine i czołgi z odkrytym Siege Mode. Nasze zadanie na razie będzie polegało na zabezpieczeniu miejsca na nową bazę, miejsca, w którym są surowce do wydobycia (**#2**). Nowa baza będzie budulcem do łatwiejszego wyeliminowania fioletowego Zerga z gry. Do tego świetnie nadadzą się czołgi, tylko uważałbym na Ultralisków w razie ze zwlekaniem z ukończeniem etapu. Zerg prawdopodobnie pozostawi za sobą minerały i gaz, które bardzo ułatwią oblężenie kolejnych wrogich baz.

Screen **#1**Screen **#2**
Jedyną drogą naziemną do pozostałych baz jest most na północy. Musimy jakoś zrobić miejsce na efektywniejsze rozkładanie armii, która zniszczy pozostałe budynki. Na razie pierwszeństwo mają Siege Tanki oraz Goliathy, niech one niszczą struktury najbliżej mostu, łącznie z Infested Command Center. Kiedy te struktury padną, jest tylko łatwiej, wroga da się łatwo rozwalić nawet Marine'ami. W przypadku ataku na Terranów uważaj na rozłożone czołgi, w razie problemów ty też rozłóż czołgi i nimi rozwiąż problem.

 Kompendium
MySQL Server Tutorial

*Taken from the RealmCrafter: Standard documentation.*

Welcome to the MySQL Server tutorial.

## Setting Up

To first use MySQL, you need to install a MySQL server. This can be downloaded
from http://www.mysql.com. It is advised that
you download MySQL version 5.0

MySQL can be installed using an installer,
this can allow you to configure MySQL to use the settings you prefer.

## RealmCrafter Configuration

For RealmCrafter, an administration program is provided, this can be launched
from your project manager and will open with a screen saying "No Connections
Open".

Firstly, Click the configuration button at the bottom left, this
will open a new window in which you can setup and configure RealmCrafter-MySQL
support. "Default" can be used to insert the default values of a manually
installed MySQL Server. You should already know your Username and Password. The
Hostname is the IP or domain name of the server, this is "localhost" (same
computer) by default. The Database can be anything you choose, you must create
it using another MySQL Administration program (like phpMyAdmin).

Hit the
"Test" button in order to check your configuration. Below is a screenshot of my
configuration and an example failure message:

Once the tool is connected, hit "Create Structure" to load in the RealmCrafter
SQL Structure, this is created by an application called "Mini", so do not be
alarmed by another window appearing and giving information. Click "OK" to save
settings after configuration.

From here, you can close the tool and run
the RealmCrafter MySQL Server, and use it as you would with a normal server.

## Additional Functionality

The tool comes with GM features built in, as they have been removed from the
AccountsWindow on the server.

Upon starting the tool, click refresh to
load up all the accounts that have been created.

From here, using the
buttons along the bottom, it is fairly self-explanitory.
You can Add and
Remove accounts. Change DM and Ban status, and also change the
password.

You can select more than one account at a time to make multiple
changes.
Bread Script

*Created by Taz.*

```
; Tazgame
; Date/Time: 4:20:52 PM on 3/2/2009
; By Tazco on NADDAZ
;need to fix sit animation

Using "RC_Core.rcm"

Function Main()
Player = Actor()
PlayerMaxHP% = MaxAttribute(Player, "Health")
PlayerHP% = Attribute(Player, "Health")
PName$ = Name(Player)
ScriptLog("Food_Bread running by " + PName)

 CurrPHunger% = Attribute(Player, "Hunger")
 CurrMaxPHunger% = MaxAttribute(Player, "Hunger")

 If (PlayerHP >= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

      OutPut(Player, "You dont need that right now", 200, 45, 32)
    Return

 EndIf

         If (PlayerHP >= PlayerMaxHP) And (CurrPHunger <= CurrMaxPHunger)
        ;Give player hunger incress.
        CurrPHunger% = Attribute(Player, "Hunger")
        TotHungerToGive% = CurrPHunger + 50
        SetAttribute(Player, "Hunger", TotHungerToGive)
        GiveItem(Player, "Bread", - 1)
        Return
         EndIf

 If (PlayerHP <= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

 OutPut(Player, "You sit and eat some bread", 0, 200, 40)
 GiveItem(Player, "Bread", - 1)

 AnimateActor(Player, "Sit Down", 1.7)

 Ticks% = 6 ;total ticks of health

 Repeat

 Tothealth% = Attribute(Player, "Health")
 totPlayerMaxHP% = MaxAttribute(Player, "Health")
 DoEvents(1)

 NewHp% = Attribute(Player, "Health") + 45 ;tick health amount

 AnimateActor(Player, "Sit idle", .05, 1)

 If (Tothealth >= totPlayermaxhp)
     AnimateActor(Player, "Standup", 1)
    Ticks% = 0
     Return
 EndIf

 TickChance% = Rnd(1, 32)

 If (TickChance = 1)
 NewHp% = Attribute(Player, "Health") + Rnd(3, 5) ;tick health amount
 TotalHp% = NewHp
 SetAttribute(Player, "Health", TotalHp) ;give player health per tick
 EndIf

 Until (Tothealth = totPlayermaxhp)

 Return
 EndIf

 End Function

```
Taz's Regen Script

*Regen script by Taz.*

```
Using "RC_Core.rcm"
; Test
 ; Date/Time: 12:12:19 AM on 10/7/2010
; By Naddaz on TAZCO
;Basic regen, you will need to add a death check so it will not run when player dies.
Function Main()

;Debuging checking to see if script is running.

Player = Actor()
plvl = ActorLevel(Player)
AddActorEffect(Player, "Regen", "", 0, 0, 1) ;give player regen buff change icon id
Fullticks% = 10 ; ten repeats

Repeat
DoEvents(2000)
PHealth% = Attribute(Player, "Health")
PHealthMax% = MaxAttribute(Player, "Health")
PMana% = Attribute(Player, "Mana")
PManaMax% = MaxAttribute(Player, "Mana")

Pname$ = Name(Player)

  Fullticks% = Fullticks - 1
  If (TotalHpMp = TotalMaxHpMp)
    DeleteActorEffect(Player, "Regen") ;take regen buff away
    Fullticks% = 0
    Return
   Endif

 ; Regen Health
         If (PHealth < PHealthMax) ;player Health is less then max then return some health
               If (plvl > 15)
                NewPHealth% = PHealth + Rand(20, 25) ;player level 15 or more give more regen
               Else
                NewPHealth% = PHealth + Rand(15, 10) ;player level under 15 give less regen
               Endif

            If (NewPHealth > PHealthMax)
                NewPHealth% = PHealthMax
            EndIf

            SetAttribute(Player, "Health", NewPHealth)  ;set health to the restore amount
        EndIf ;end health regen

         If (PMana < PManaMax)

                 If (plvl > 15)
                NewPMana% = PMana + Rand(12, 14) ;player level 15 or more give more regen
               Else
               NewPMana% = PMana + Rand(7, 9) ;player level under 15 give less regen
               Endif

            If (NewPMana > PManaMax)
            NewPMana% = PManaMax
            Endif

        SetAttribute(Player, "Mana", NewPMana)
        Endif

 DoEvents(500)

 Until (Fullticks = 0)

 End Function

```
Taz's Level Up Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Test
 ; Date/Time: 3:10:47 PM on 10/7/2010
; By Naddaz on TAZCO
;basic Level up
 Function Main()

 	Player = Actor()

 	XP = ActorXP(Player)
 	Lvl = ActorLevel(Player)
     HP4Lvl% = MaxAttribute(Player, "Health") + 55
    MP4Lvl% = MaxAttribute(PLayer, "Mana") + 25
    Str4Lvl% = Attribute(Player, "Strength") + 1
    Dex4Lvl% = Attribute(Player, "Dextarity") + 2
    Mag4Lvl% = Attribute(Player, "Magic") + 1
    Tou4Lvl% = Attribute(Player, "Toughness") + 1

 	; Player gets a level-up
     ;Incress basic stats.
	If (XP > Lvl * 1000)
		Lvl = Lvl + 1
        SetMaxAttribute(Player, "Health", HP4Lvl) ;increase hp by 55 on level up
        SetAttribute(Player, "Health", HP4Lvl) ;increase hp by 55 on level up
        SetMaxAttribute(Player, "Mana", MP4Lvl) ;increase mp by 25 on level up
        SetAttribute(Player, "Mana", MP4Lvl) ;increase mp by 25 on level up
        SetMaxAttribute(Player, "Strength", Str4Lvl) ;increase str by 1 on level up
        SetAttribute(Player, "Strength", Str4Lvl) ;increase str by 1 on level up
        SetMaxAttribute(Player, "Dextarity", Dex4Lvl) ;increase dex by 2 on level up
        SetAttribute(Player, "Dextarity", Dex4Lvl) ;increase dex by 2 on level up
        SetMaxAttribute(Player, "Magic", Mag4Lvl) ;increase mag by 1 on level up
        SetAttribute(Player, "Magic", Mag4Lvl) ;increase mag by 1 on level up

 		SetActorLevel(Player, Lvl)
 		Output(Player, "You advanced to level " + Lvl)
 	EndIf

 End Function

```
Cooked Fish Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; Morgance Online 0.1
; Date/Time: 12:04:34 AM on 10/16/2012
; By Dan Seguin on TAZCO-PC

Function Main()
Player = Actor()
PlayerMaxHP% = MaxAttribute(Player, "Health")
PlayerHP% = Attribute(Player, "Health")
PName$ = Name(Player)
ScriptLog("Food_Cooked Bass running by " + PName)

 CurrPHunger% = Attribute(Player, "Hunger")
 CurrMaxPHunger% = MaxAttribute(Player, "Hunger")

 If (PlayerHP >= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

      OutPut(Player, "You dont need that right now", 200, 45, 32)
    Return

 EndIf

         If (PlayerHP >= PlayerMaxHP) And (CurrPHunger <= CurrMaxPHunger)
        ;Give player hunger incress.
        CurrPHunger% = Attribute(Player, "Hunger")
        TotHungerToGive% = CurrPHunger + 100
        SetAttribute(Player, "Hunger", TotHungerToGive)
        GiveItem(Player, "Cooked Bass ", - 1)
        Return
         EndIf

 If (PlayerHP <= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

 OutPut(Player, "You sit and eat some cooked bass", 0, 200, 40)
 GiveItem(Player, "Cooked Bass", - 1)

 AnimateActor(Player, "Sit Down", 1.7)

 Ticks% = 6 ;total ticks of health

 Repeat

 Tothealth% = Attribute(Player, "Health")
 totPlayerMaxHP% = MaxAttribute(Player, "Health")
 DoEvents(1)

 NewHp% = Attribute(Player, "Health") + 65 ;tick health amount

 AnimateActor(Player, "Sit idle", .05, 1)

 If (Tothealth >= totPlayermaxhp)
     AnimateActor(Player, "Standup", 1)
    Ticks% = 0
     Return
 EndIf

 TickChance% = Rnd(1, 32)

 If (TickChance = 1)
 NewHp% = Attribute(Player, "Health") + Rnd(3, 5) ;tick health amount
 TotalHp% = NewHp
 SetAttribute(Player, "Health", TotalHp) ;give player health per tick
 EndIf

 Until (Tothealth = totPlayermaxhp)

 Return
 EndIf
 End Function

```
7Kings's Wacky Guide To Animated Textures on Meshes

*Created by 7Kings on the original RealmCrafter: Standard forums.*

Hello at the request of some users on here, Here is a tutorial on how to have animated textures on meshes.

A few things to note before we begin, there are a few ways to do this, mine is probably not the most efficient way of doing it, but it gets the job done. this tutorial will be explained with images and I will try my best to fully explain what is going on.

## Preparations

The first few files you will need for this edit are:

> Client.bb
>
>

> ClientAreas.bb
>
>

> Filmstrip texture
>
>

## Step 1

First you should open up your Client.bb and go to where all the globals are set up.

You will be setting up 4 Globals which consist of:

```
Global (insert variable)tex = 0

```

```
Global (insert variable)PlaneLastFrame = (number of frames in filmstrip texture)

```

```
Global (insert variable)PlaneAnimationSpeed = (Animation speed in miliseconds)

```

```
Global (insert variable)PlaneFrame% = MilliSecs()/(timing of each frame in miliseconds) Mod (Number of frames in filmstrip texture)

```

When you are done with that it should look simalair to mine.

My code is set up for an engine gubbin mesh for a spaceship with an animated
texture slapped on it. I have 24 frames and each frame runs for a second.

## Step 2

Next move on to ClientAreas.bb

In
between

```
;Scenery

```

but before

```
If S\EN <> 0

```

You will be placing a few lines of code.

```
If S\MeshID = INSERT GUE MESH ID NUMBER ;put in mesh ID

If (Your global variablename)tex= 0 Then (Your global variablename)tex = LoadAnimTexture("Path for your image.jpg", "Add filters to your desire", "width of each frame", "Height of each frame", 0 ,"total number of frames minus one")

EntityTexture S\EN, (Your global variablename)tex, frame <-- keep this code like this, it will be explained in section 3

EndIf

```

When you are complete, it should look like this:

Alright now you will realize that this is done on a mesh by mesh basis. There are again probably much better ways of doing this, but this way does work, just involves writing more code.

## Step 3

Alright, now its time to update all animated scenery in the main loop. Now you have it defined when an area is loaded if that mesh exists it will put the animated texture on and start it at the first frame.
Now to make it move!

Open back up your client.bb

Inside the function

```
Function UpdateAnimatedScenery()

```

You will be placing the following code:

```
If S\MeshID = ID OF DESIRED MESH
frame = MilliSecs()/(Speed desired) Mod (Number of total frames in your filmstrip minus one)
EntityTexture(S\EN, (Your variable name)tex,frame)

EndIf

```

The code should look like this when you are finished:

Now to top this all off, a working video of animated textures showing that my code works.

View 7Kings's Video of Animated Textures
Tree Chopping Script

A tree chopping script that works with RealmCrafter 1.26. The tree will need one bone and one frame of animation. A standard RCTree will work fine. Script was modified by original forum used rodneymillerpca.

```
Using "RC_Core.rcm"

; COMPLETE Seeking SCRIPT

; Date/Time: 7:30:24 PM on
15/06/2009

; By User on OWNER-X1U5WSPT8

; Date/Time: 6:37:57 AM on
1/1/2006

; Date/Time: 12:21:13 PM on 23/6/2009

; By Venture

;
Foremost

Function Main()

; Determines if the player is
close enough to harvest.

Result = ActorDistance(Actor(), ContextActor())

If(Result < 8.0)

Else

Output(Actor(),"Get a little closer!", 152,
183, 254)

Return

EndIf

; Checks if the player has a mining tool

If(HasItem(Actor(),"hatchet",1))

Else

Output(Actor(),"Might be a
good idea to go to the Chaos Tool Shed and buy a hatchet!", 253, 77, 112)

DoEvents(2000)

Return

EndIf

iWep% = ActorWeapon(Actor())

sWep$ = ItemName(iWep)

if (sWep = "hatchet")

Output(Actor(),"And a
chopping we will go...", 128, 255, 128)

DoEvents(2000)

Else

Output(Actor(),"Might be a good idea to use your hatchet!", 245, 255, 245)

DoEvents(1000)

Return

EndIf

; This just sets your Seeking
skill to 1 because the " >= 0 " does not work.

Seeking =
Attribute(Actor(), "Seeking")

If(Seeking = 0)

SetAttribute(Actor(),
"Seeking", Seeking +1)

Else

EndIf

; Let's make sure the Seeking
item exist.

Toughness = Attribute(ContextActor(), "Health")

If(Toughness > 0)

Else

Output(Actor(),"?", 128, 255, 128)

DoEvents(3000)

Return

EndIf

; Check if player has enough
skill to harvest this item.

Seeking = Attribute(Actor(), "Seeking")

If(Seeking > 0)

AnimateActor(Actor(),"seeker",0.5)

PlaySound(Actor(), 3, 1)

Doevents(1000)

Else

Output(Actor(),"??", 152, 183, 254)

Return

EndIf

; Grab a
random number to see what the player harvested.

Harvest = Rand(1, 6)

If(Harvest = 1)

GiveItem(Actor(),"pine log",+1)

Output(Actor(),"You
have 1 pine log!", 245, 255, 245)

SetAttribute(ContextActor(), "Toughness",
Toughness -1)

ElseIf(Harvest = 2)

Output(Actor(),"Ouch! You have been
hit by a splinter", 152, 183, 254)

Health = Attribute(Actor(), "Health")

SetAttribute(Actor(), "Health", Health -1)

Else

Output(Actor(),"Hit
a little harder!", 253, 77, 112)

EndIf

; Grab a Random number to see
if the player gains a skill.

SkillExp = Rand(1, 20)

If(SkillExp < 2)

SetAttribute(Actor(), "Seeking", Seeking +1)

Output(Actor(),"You gain 1
skill point!")

EndIf

Return

End Function

```
Taz's New InGame Commands

*InGame commands created by Taz.*

```
Using "RC_Core.rcm"

; Date/Time: 6:53:34 PM on 10/7/2010
; By Naddaz on TAZCO

;-------------------------------------------------------------------------------

; Example '/heal' command for GMs
Function Heal()
	Player = Actor()
;--------------------------------
;Check if player is still alive
;-------------------------------
PHealth% = Attribute(Player, "Health")
;If (PHealth <= 1)
;OutPut(Player, "You are dead and can not use that command", 200, 23, 213)
;Return
 ;Endif
 ;------------------------
;end player health check
;--------------------------
         DeleteActorEffect(Player, "Dead") ;debug add if player gets stuck with death icon
	; Check player is a GM
	If (PlayerIsGM(Player))
		; Set health to maximum
		Max = MaxAttribute(Player, "Health")
		SetAttribute(Player, "Health", Max)
    Else
         OutPut(Player, "You are not a GM", 255, 0, 0)
    Return
 	EndIf

 	; Done
 	Return

 End Function
 ;------------------------------------------------------------------------------------

Function Mana() ; give full mana
    Player = Actor()
;--------------------------------
;Check if player is still alive
;-------------------------------
PHealth% = Attribute(Player, "Health")
If (PHealth <= 1)
OutPut(Player, "You are dead and can not use that command", 200, 23, 213)
Return
Endif
;------------------------
;end player health check
;--------------------------

    If (PlayerIsGM(Player))
        Maxmp% = MaxAttribute(Player, "Mana")
        SetAttribute(Player, "Mana", Maxmp)
     Else
     OutPut(Player, "You are not a GM", 255, 0, 0)
    Return
     EndIf
 End Function
 ;-------------------------------------------------------------------------

```
Death Chest Right Click

*Created by Taz.*

```
Using "RC_Core.rcm"
; Morgance Online 0.1
; Date/Time: 3:39:43 AM on 11/1/2012
; By Dan Seguin on TAZCO-PC
;Will be attached to the death chest thats droped in the death loot script this script will retrive the items from the chest.

Function Main()
Player = Actor()
Target = ContextActor()
Pname$ = Name(Player)

ScriptLog("Death_Chest_RightClick script running by " + Pname)

 PlayerStoredName$ = ActorGlobal(Target, 1)
 PublicLoot% = ActorGlobal(Target, 2)

    If (PublicLoot = 5) ;if 5 then public and allow anyone open loot

    Else ;If not 5 then check players name to see if its there loot.
        If Not (PlayerStoredName = Pname) ;if stored name is not player that right clicks tell them its not public yet.
            OutPut(Player, "This loot is not public yet.", 145, 45, 76)
            Return
        EndIf
     EndIf

 Slotamount% = 1

     Repeat

         Itemslot$ = ActorBackPack(Target, Slotamount)
        InvoName$ = ItemName(Itemslot)

              If (InvoName = "")
                ;Player has no item in slot do display anything.
            Else

        		    GiveItem(Target, InvoName, - 1) ;Take item from player on death

                ;Give Item to chest
                GiveItem(Player, InvoName) ;Take item from player on death

            EndIf
        ;-------------------------------

        Slotamount% = Slotamount + 1
        DoEvents(30)

   Until (Slotamount = 36) ;amount of slots to count, 32 for invo and 6 for gear.

DoEvents(1000)
        SetAttribute(Target, "Health", 0) ;kill chest

 End Function

```
Imperialism Online

Imperialism Online was a sci-fi MMORPG by original RealmCrafter forum user, 7Kings.

## Summary

Imperialism online is set in a galaxy called Plurra Stella. Players explore, make profit and fight in this new universe. The goal? To survive. Players will be able to fly many different classes of starships and even land on planets to pick up jobs (quests) to generate revenue. This game will have an interactive market system that allows you to either make a large profit or a loss. We plan to have simulated gambling with simple games like, black jack, checkers, or even Rhak Nyug a card game in which you find matching pairs.

## Video

A video which shows off the music and screenshots of Imperialism Online.
Witch Gate

Witch Gate was a 3D MMORPG being developed in RealmCrafter Standard by the original forum's user "Eagle".

## Story

In an interview with truespace, developer Vikkie Eagle revealed what the game was about; "The story of Witch Gate takes place an eon after the great war of fire, and in this age the humans have mutated into many sects. The story of Witch Gate is a tragic one, no-one alive knows when the great war of fire happened, but the story has been passed down from the Ancients that the Witch Gates were built in order to preserve the world.

The world itself is made up of floating islands that can only be accessed by traveling through the Witch Gates. The Ocean surrounds the world of floating islands like a huge bubble, keeping the life-giving air from floating out to space. Each island has a sect that occupies it; some are nice, some are very dangerous. And the adventure begins!

These sects are made up of Elves, Dwarfs, Nomes, Humans, Goblins, Trolls and Dragons. The story centers on a great quest, as all of the sects are trying to find the seven Stones of Light. When these are found, the one that combines the stones will have the power of a god.
You must choose what sect to be part of, and either work as a team or by yourself as a rogue to find these stones. The quest will be long and hard, but it must be done.

Each player will choose what sect to belong to, and what class to be. The classes include Fighters, Witch Doctors, Sorceresses, Witches, Rogues, and Dark Wizards. Each class has its own set of special powers, which you can build on.

Here is some insight on what happens in the end! Once a player or group finds the Stones of Light, they must take them to an island that is not on any of the maps. This island was created by the Ancients and is actually a space ship. Once you place the stones in the containers it starts a great storm that will collapse the sky ocean forcing the islands to collide with one another – but this does not destroy the world! Instead, what it does is reshape the world back to its original shape, a globe called earth. Then the second part starts…. but you will have to play it to see what that is""
Spider Stew Script

*Created by Taz.*

```
Using "RC_Core.rcm"
; testingrc1 1.26
; Date/Time: 4:33:33 PM on 1/29/2011
; By Naddaz on TAZCO
;Spider Stew
 Function Main()
 Player = Actor()
 PlayerMaxHP% = MaxAttribute(Player, "Health")
 PlayerHP% = Attribute(Player, "Health")

  CurrPHunger% = Attribute(Player, "Hunger")
 CurrMaxPHunger% = MaxAttribute(Player, "Hunger")

 If (PlayerHP >= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

      OutPut(Player, "You dont need that right now", 200, 45, 32)
    Return

 EndIf

         If (PlayerHP >= PlayerMaxHP) And (CurrPHunger <= CurrMaxPHunger)
        ;Give player hunger incress.
        CurrPHunger% = Attribute(Player, "Hunger")
        TotHungerToGive% = CurrPHunger + 550
        SetAttribute(Player, "Hunger", TotHungerToGive)
        GiveItem(Player, "Spider Stew", - 1)
        Return
         EndIf

 If (PlayerHP <= PlayerMaxHP) And (CurrPHunger >= CurrMaxPHunger)

 OutPut(Player, "You sit and eat some spider stew", 0, 200, 40)
 GiveItem(Player, "Spider Stew", - 1)

 AnimateActor(Player, "Sit Down", 1.7)

 Ticks% = 6 ;total ticks of health

 Repeat

 Tothealth% = Attribute(Player, "Health")
 totPlayerMaxHP% = MaxAttribute(Player, "Health")
 DoEvents(1)

 NewHp% = Attribute(Player, "Health") + 75 ;tick health amount

 AnimateActor(Player, "Sit idle", .05, 1)

 If (Tothealth >= totPlayermaxhp)
     AnimateActor(Player, "Standup", 1)
    Ticks% = 0
     Return
 EndIf

 TickChance% = Rnd(1, 32)

 If (TickChance = 1)
 NewHp% = Attribute(Player, "Health") + Rnd(3, 5) ;tick health amount
 TotalHp% = NewHp
 SetAttribute(Player, "Health", TotalHp) ;give player health per tick
 EndIf

 Until (Tothealth = totPlayermaxhp)

 AddActorEffect(Player, "Well Fed + 4 Defence", "Defence", 4, 2790, 254)

 Return
 EndIf

 End Function

```