Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

TheDarkTournament


Link
 Share

Recommended Posts

Hi, most of you probably know me already as DeathTheKid and I'll be hosting "TheDarkTournament," a contest for the best of the best in visual basic programming at-least to this forum's standards. While I state it's for the best of the best I strongly encourage anyone who wants to show off anything as far as programming skills to join, however, there are some guide lines.

You'll make your entries in this topic by simply stating you name and throwing in a comment such as "I'll join." or something like that. Please note that every entry made here will also be made a contribution for the community, that's the overall reason for this contest besides having bragging rights or the cool prizes, if you're not willing to share then unfortunately this contest is not for you.

This is a VB contest only, no other languages. You're allowed to make anything you want as long as it's something that can be implemented into the eclipse source code and is helpful in any way, While your official submission would be sent to the judges, you should also provide screen shots to be posted so that members have an idea what they're voting on. The rules are as follows:

>! - No Stealing.
>! - Show proof that it is your code.
>! - No bashing anyone else's idea.
>! - No trying to get me to change the rules or sway the judges, this will not be a biased contest.
>! - If your entry is stolen, not yours, or violates the rules over all, you're disqualified.
>! - Can't be something you've already posted in the source section.
>! - No late submissions, depends on the situation, that can later be discussed.
>! - Don't turn this into a flaming topic, or you'll be to blame and or reported.
>! -Only one entry allowed per person, no multiple account entries allowed.
>! Here are some of the qualifications that need to be met:
>! - Vb6 only.
>! - Must be able to implement into the eclipse source code, must be useful.
>! - Must be willing to have it posted as a tutorial.
>! - Must send it to the judges as an official submission.
>! - If you can have a voucher for your work, that's a plus for you.
>! Again you can make and submit whatever you want as long as it ties in with eclipse and is useful for the eclipse game engine, no random programs are to be submitted.
>! >! Here are your prizes -
>! 1st place > 3k + Custom name color + Programmer of 2013 award (For eclipse)
>! 2nd place> 1.5k + Custom name color + Second rate programmer award.
>! 3rd place> 700 points
>!
>! DeathTheKid
>! Whack
>! Richy
>! Sherwin
>! The judges will be picked by me. This is the deadline:
>! Start: 04/04/2013
>! Finish: 05/10/2013
>! You have one month to think of an idea, make a submission and start to program, I think this is plenty of time, I wish luck to you all and I might also be joining the contest myself if I decide not to be a judge.
>! Regards,
>! DeathTheKid
Link to comment
Share on other sites

Hmmm i will enter. But what should i release? ![:D](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/biggrin.png)

What is better? Player mouse movement with pathfinding or movement blur when running? Or maybe mail system with email activation combined with displaying current online players on website? ![:D](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/biggrin.png)
Link to comment
Share on other sites

> I'll join. Not sure what to make though.
>
> Can we use libraries?

> This is a VB contest only, no other languages. You're allowed to make anything you want as long as it's **something that can be implemented into the eclipse source code** and is helpful in any way, While your official submission would be sent to the judges, you should also provide screen shots to be posted so that members have an idea what they're voting on. The rules are as follows:
Link to comment
Share on other sites

One question: i must release this, or i can release it only when i take place in tournament? Example: i will release compiled source and when i will take some place i will release source. Becouse otherwise i will lose my main offer in my programming workshop.
Link to comment
Share on other sites

Here's a simple durability system on equipment items. I used EO 2.1.4 for the edit.

I added the button to the shop, the shop fix packet, and the durability control, for teh lulz.

[http://freemmorpgmak…f3556d7aaf5.zip](http://freemmorpgmaker.com/uploadfiles/81ddae4db26c974f67e8cf3556d7aaf5.zip)

The tutorial;

modTypes on the bottom of ItemRec (Client, Server);

```

Durability As Long

```

modTypes on the bottom of PlayerRec (Client, Server);

```

PlayerDurability(1 To MAX_ITEMS) As Long

```

ModEnumerations, on the bottom of the C list (Client, Server);

```

CEquipFix

```

ModHandleData, In InitMessages, on the bottom (Server);

```

HandleDataSub(CEquipFix) = GetAddress(AddressOf HandleEquipFix)

```

In ModHandleData, roll to the bottom and paste this in (Server);

```

Public Sub HandleEquipFix(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim price As Long, i As Long, n As Long, costitem As Long

Dim amount As Long

If Not IsPlaying(index) Then Exit Sub

For i = 1 To Equipment.Equipment_Count - 1

If Item(i).Type = ITEM_TYPE_ARMOR Or Item(i).Type = ITEM_TYPE_SHIELD Or Item(i).Type = ITEM_TYPE_HELMET Or Item(i).Type = ITEM_TYPE_WEAPON Then

'Check for equipped.

If GetPlayerEquipment(index, i) > 0 Then

'N = Itemnum

n = GetPlayerEquipment(index, i)

'Determine cost to fix.

price = (Item(n).price \ Item(n).Durability) * (Item(n).Durability - Player(index).PlayerDurability(n))

'Don't know how to determine your currency without a loop so I'll use teh first cost item in shop.

If Shop(TempPlayer(index).InShop).TradeItem(1).costitem > 0 Then

costitem = Shop(TempPlayer(index).InShop).TradeItem(1).costitem

amount = HasItem(index, costitem)

If amount >= price Then

TakeInvItem index, costitem, price

Player(index).PlayerDurability(n) = Item(n).Durability

Else

PlayerMsg index, "You don't have enough " & Trim$(Item(costitem).Name) & " to fix your equipment!", BrightRed

End If

Else 'If there's no items in your shop then I can't grab the first items costitem, players will get free fixing.

Player(index).PlayerDurability(n) = Item(n).Durability

End If

End If

End If

Next

PlayerMsg index, "All equipment has been fixed!", White

End Sub

```

In ModCombat, paste these in anywhere (Server);

```

Public Sub SetWeaponDurability(ByVal attacker As Long)

Dim n As Long

'Handles Weapon Durability for attacker.

If GetPlayerEquipment(attacker, Weapon) > 0 Then

n = GetPlayerEquipment(attacker, Weapon)

If Item(n).Durability > 0 Then

Player(attacker).PlayerDurability(n) = Player(attacker).PlayerDurability(n) - 1

End If

If Player(attacker).PlayerDurability(n) = 5 Then Call SendActionMsg(GetPlayerMap(attacker), "Weapon durability is 5/" & Item(n).Durability & "!", Yellow, 1, GetPlayerX(attacker) * 32, GetPlayerY(attacker) * 32, attacker)

If Player(attacker).PlayerDurability(n) = 0 Then

SetPlayerEquipment attacker, 0, Weapon

SendWornEquipment attacker

SendMapEquipment attacker

SendStats attacker

' send vitals

Call SendVital(attacker, Vitals.HP)

Call SendVital(attacker, Vitals.MP)

' send vitals to party if in one

If TempPlayer(attacker).inParty > 0 Then SendPartyVitals TempPlayer(attacker).inParty, attacker

SendActionMsg GetPlayerMap(attacker), "Your weapon breaks!", Yellow, 1, GetPlayerX(attacker) * 32, GetPlayerY(attacker) * 32, attacker

End If

End If

End Sub

Public Sub SetDefenseDurability(ByVal victim As Long)

Dim i As Long, d As Long

Dim EqMsg As String

'Adding any more equipment slots will require editing this.

'Handles Armor durability for victim.

For i = 2 To Equipment.Equipment_Count - 1

If GetPlayerEquipment(victim, i) > 0 Then

d = GetPlayerEquipment(victim, i)

If Item(d).Durability > 0 Then

Player(victim).PlayerDurability(d) = Player(victim).PlayerDurability(d) - 1

End If

If Item(d).Type = ITEM_TYPE_ARMOR Then EqMsg = "Armor"

If Item(d).Type = ITEM_TYPE_SHIELD Then EqMsg = "Shield"

If Item(d).Type = ITEM_TYPE_HELMET Then EqMsg = "Helmet"

If Player(victim).PlayerDurability(d) = 5 Then Call SendActionMsg(GetPlayerMap(victim), EqMsg & " durability is 5/" & Item(d).Durability & "!", BrightRed, 1, GetPlayerX(victim) * 32, GetPlayerY(victim) * 32, victim)

If Player(victim).PlayerDurability(d) = 0 Then

SetPlayerEquipment victim, 0, i

SendWornEquipment victim

SendMapEquipment victim

SendStats victim

' send vitals

Call SendVital(victim, Vitals.HP)

Call SendVital(victim, Vitals.MP)

' send vitals to party if in one

If TempPlayer(victim).inParty > 0 Then SendPartyVitals TempPlayer(victim).inParty, victim

PlayerMsg victim, "Your " & EqMsg & " breaks!", White

End If

End If

Next

End Sub

```

Stay in ModCombat, enter the TryPlayerAttackPlayer, TryPlayerAttackNpc and TryNpcAttackPlayer in order with these codes on the bottom.

TryPlayerAttackPlayer:

```

SetWeaponDurability attacker

SetDefenseDurability victim

```

TryPlayerAttackNpc

```

SetWeaponDurability attacker

```

TryNpcAttackPlayer

```

SetDefenseDurability victim

```

In the Client, you have to do all the form work, or just take the PicShop and frmEditor_Item forms from the client I added.

In frmEditor_Item; Create a scrollbar and label, name them;

scrlDurability

lblDurability

```

Private Sub scrlDurability_Change()

' If debug mode, handle error then exit out

If Options.Debug = 1 Then On Error GoTo errorhandler

If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

lblDurability.Caption = "Durability: " & scrlDurability.value

Item(EditorIndex).Durability = scrlDurability.value

' Error handler

Exit Sub

errorhandler:

HandleError "scrlDurability_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

Err.Clear

Exit Sub

End Sub

```

Also in the Client. You'll have to add an image button to the PicShop, name it;

imgShopFix

And add its code below;

```

Private Sub imgShopFix_Click()

SendEquipFix

End Sub

```

Now in Client, modClientTCP, paste this;

```

Public Sub SendEquipFix()

Dim buffer As clsBuffer

' If debug mode, handle error then exit out

If Options.Debug = 1 Then On Error GoTo errorhandler

Set buffer = New clsBuffer

buffer.WriteLong CEquipFix

SendData buffer.ToArray()

Set buffer = Nothing

' Error handler

Exit Sub

errorhandler:

HandleError "SendEquipFix", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext

Err.Clear

Exit Sub

End Sub

```

Then we'd be done!
Link to comment
Share on other sites

> So this has to be in Vb6, we can't work on something in another language that's compatible with eclipse?

I suppose, as long as you show how it's compatible with eclipse and examples. Richy you're not supposed to post your code until after the system, fundamentally I just wanted screen shots of how it works in-game to be posted or something that explains what it does overall.

What post pics, you send the code before winners are announced.
Link to comment
Share on other sites

I was thinking about releasing my login server (C#) which allows communication between multiple servers, and the web.

I'll throw in a tutorial or two on how to add features like player communication between multiple servers etc. if I decide to release it.
Link to comment
Share on other sites

> Weird. I thought the contest said only VB6, but I guess that can change after the contest has started…

You're right. The rules state not to ask me to change the rules. Contest is vb6 only.
Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...