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

Justn

Members
  • Posts

    1129
  • Joined

  • Last visited

    Never

Everything posted by Justn

  1. umm.. You might need to delete your characters of out of your "/server/data/accounts/" folder and delete the names out of the charlist ini after you do the tutorial
  2. @Encyclopedia: > For those who're using Eclipse Origins v2b > > SKIP this part of the tutorial. read page 2 and it will show you how to get this to work for EO2 http://www.touchofdeathforums.com/smf/index.php/topic,64806.20.html
  3. Justn

    [EO] House Editor

    ~~I would happily pay someone to look into this for me or take a copy of my source and find a check to prevent this.~~ sorry didn't realize i was double posting updated the above post
  4. Can you tell me what you fixed? I used Ballie's tutorial awhile back and it seems to be working fine. Is there a bug or something?
  5. Justn

    VB6 Forum?

    thanks alot erwin! stupid bing toolbar didn't show that site.
  6. Justn

    VB6 Forum?

    Does anyone know of any active websites that offer support for visual basic questions? I have googled a few but most havent had anyone post since like 2008
  7. Justn

    Checking a variable?

    hmm still doesnt like the Player(index).Map i will keep playing around with it some more and see if there is any way around this. If i get it to work ill post the fix in the House Editor tutorial. Thanks 7 for looking into it. If anyone else can look at this tutorial http://www.touchofdeathforums.com/smf/index.php/topic,65616.0.html and find a way to keep players form buying a house that already owned by someone else please let know
  8. Justn

    Checking a variable?

    Ok it didnt like the player(index) in the second GetVar so i changed it up but either when i go to call the sub in game i get a mismatch type or it just always says "number is in use" and exits sub. Thanks for the advice i will keep trying
  9. Justn

    Checking a variable?

    thanks does this check to make sure the number (""=#) in the ini is not already there?
  10. Justn

    Checking a variable?

    I have a database that writes a number beside a players name when clicked ``` Call PutVar(App.Path & "\data\accounts\houses.ini", "OPTIONS", "" & Player(Index).Name, "" & HMapNum) ``` every player has a default number of 0. example: Player1=0 Player2=0 Player3=0 after player2 activates the call: Player1=0 Player2=8 player3=0 the problem is i need to have it where if Player3 clicks the same call as player2 it puts the same number… Player1=0 Player2=8 Player3=8 I cant have this as its for player housing and the numbers are equal to the map of the house. Is there anyway to put a check if the the number is already in use then it exits the sub?
  11. Justn

    Guild System?

    is MRDE= Mirage Realms 3.0?
  12. Justn

    [EO] House Editor

    Nice its working (kinda) thanks alot alatar and crzy :cheesy: Edit: There is an issue with this, a player can buy and edit a house owned by another player if anyone knows of a way to fix this please let me know. I asked on vb forum and they told me to do this but it seems not likely it would work as it didnt fix the problem but i was kinda confused on what numbers it checked for http://www.vbforums.com/showthread.php?p=4062999&posted=1#post4062999 any input on this would be great thanks alot Edit: I would happily pay someone to look into this for me or take a copy of my source and find a check to prevent this.
  13. @Fragment: > Just checking, does this include paperdoll, yeah? Reading this at work on phone yes =)
  14. oops i didnt understand what you were saying thanks alot in modDirectDraw7 find:``` With rec_pos .top = EqTop .Bottom = .top + PIC_Y .Left = EqLeft + ((EqOffsetX + 32) * (((i - 1) Mod EqColumns))) .Right = .Left + PIC_X End With ```and change to``` With rec_pos .top = EqTop + ((EqOffsetY + 32) * ((i - 1) \ EqColumns)) .Bottom = .top + PIC_Y .Left = EqLeft + ((EqOffsetX + 32) * (((i - 1) Mod EqColumns))) .Right = .Left + PIC_X End With ```updated tutorial
  15. hmm i havent had a problem with class requirments but it did happen to me once with the rarity saving but it was because i didnt have "Item(EditorIndex).Rarity = scrlRarity.Value" in my source it only caused a saving problem with anyhting new i was trying to make and didnt affect anything i already had created. i guess i will look into this some more.. if anyone can think of something else to try plz let me know.
  16. I just noticed that when i make a new conversation and use the cmbevent and save it works, but when i open up the conv editor again it resets my cmbevent back to none.. Its not doing it for my first conversation only any other new ones i add.. i dont remember it doing this before? can anyone point me in the direction of how to fix this? If i Click an empty conv slot and then click save it will not mess with the other conversations but if i scroll threw any previous convs it will reset cmbevent to none
  17. Edit: wait nvm this only does it for bank and give it item and it just closes the chat if you move doesnt prevent movement of npc =p What i did was add this to the bottom of modConv ``` Public Sub ClosePlayerChat(ByVal index As Long) ' exit the chat TempPlayer(index).inChatWith = 0 TempPlayer(index).curChat = 0 ' send chat update sendChat index ' send npc dir With MapNpc(TempPlayer(index).c_mapNum).NPC(TempPlayer(index).c_mapNpcNum) If .c_inChatWith = index Then .c_inChatWith = 0 .Dir = .c_lastDir NpcDir TempPlayer(index).c_mapNum, TempPlayer(index).c_mapNpcNum, .Dir End If End With ' clear last of data TempPlayer(index).c_mapNpcNum = 0 TempPlayer(index).c_mapNum = 0 Exit Sub End Sub ```Then i went to Select Case Conv(convNum).Conv(curChat).Event under``` SendBank index ``` Add``` TempPlayer(index).InBank = True ```Then under``` SendInventory index ```Add``` ClosePlayerChat index ```
  18. Did you add stats for the the npc such as health strength agility ect.? i think you must have atleast one stat point in each for you to beable to talk to them. That should also fix your quest problem.. As for the pets problem I think that mod is an outdated version of the pet system and still has a few bugs… sorry if that doesnt help
  19. Justn

    I want only 'QUEST'

    Alatar's Quest System- http://www.touchofdeathforums.com/smf/index.php/topic,70502.0.html What do you mean the sprites are too low? I dont understand
  20. This is for anyone having trouble with adding new equipment slots on this tutorial: [http://www.touchofde…ic,64777.0.html](http://www.touchofdeathforums.com/smf/index.php/topic,64777.0.html) Note: In this tutorial we will be adding 5 new equipment slots feel free to add, remove or change as many as you need making the necessary changes for your game. The new slots are gloves(bottom left in picture), boots(bottom right), legwear(bottom center), necklace(top right, the necklace is refered in the tutorial as 'ring' just because thats what i also use it for), and an enchant slot(top left). In the end you should have something that looks like this: This is my char with all the new items equipped: >! [http://www.freemmorp…51ed71ff0d3.bmp](http://www.freemmorpgmaker.com/files/imagehost/pics/756d1ba11157545523f8551ed71ff0d3.bmp)Server Side Go to **modConstants** and make your item constants look like this taking note that the new equipment slots are under the helmet slot and above the shield slot. you need to do this client side also.``` Item constantsPublic Const ITEM_TYPE_NONE As Byte = 0Public Const ITEM_TYPE_WEAPON As Byte = 1Public Const ITEM_TYPE_ARMOR As Byte = 2Public Const ITEM_TYPE_HELMET As Byte = 3Public Const ITEM_TYPE_LEGS As Byte = 4 ' NewPublic Const ITEM_TYPE_BOOTS As Byte = 5 ' NewPublic Const ITEM_TYPE_GLOVE As Byte = 6 ' NewPublic Const ITEM_TYPE_RING As Byte = 7 ' NewPublic Const ITEM_TYPE_ENCHANT As Byte = 8 ' NewPublic Const ITEM_TYPE_SHIELD As Byte = 9 Public Const ITEM_TYPE_CONSUME As Byte = 10Public Const ITEM_TYPE_KEY As Byte = 11Public Const ITEM_TYPE_CURRENCY As Byte = 12Public Const ITEM_TYPE_SPELL As Byte = 13 ```Next go to **modEnumerations****Find** :``` ' Equipment used by PlayersPublic Enum Equipment ```This will be the order in which your eq is displayed in the char window to do it as the picture above **make it look like this**:``` ' Equipment used by PlayersPublic Enum Equipment Enchant = 1 Helmet Ring Weapon Armor Shield Glove Legs Boots ' Make sure Equipment_Count is below everything else Equipment_CountEnd Enum ```After that Go to **modPlayer** First: **Find**:``` Function GetPlayerProtection(ByVal Index As Long) As Long ```Make it look something like this anything new added will be labeled as 'New:``` Function GetPlayerProtection(ByVal Index As Long) As Long Dim Armor As Long Dim Helm As Long Dim Legs As Long ' New Dim Boots As Long ' New Dim Glove As Long ' New Dim Ring As Long ' New Dim Enchant As Long ' New GetPlayerProtection = 0 ' Check for subscript out of range If IsPlaying(Index) = False Or Index Player_HighIndex Then Exit Function End If Armor = GetPlayerEquipment(Index, Armor) Helm = GetPlayerEquipment(Index, Helmet) Legs = GetPlayerEquipment(Index, Legs) ' New Boots = GetPlayerEquipment(Index, Boots) ' New Glove = GetPlayerEquipment(Index, Glove) ' New Ring = GetPlayerEquipment(Index, Ring) ' New Enchant = GetPlayerEquipment(Index, Enchant) ' New GetPlayerProtection = (GetPlayerStat(Index, Stats.Endurance) \ 5) If Armor > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Armor).Data2 End If If Helm > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Helm).Data2 End If ' New If Legs > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Legs).Data2 End If If Boots > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Boots).Data2 End If If Glove > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Glove).Data2 End If If Ring > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Ring).Data2 End If If Enchant > 0 Then GetPlayerProtection = GetPlayerProtection + Item(Enchant).Data2 End If ' /NewEnd Function ```Second(modPlayer):**Find**:``` Sub CheckEquippedItems(ByVal Index As Long) ```Where it has the 'Select Case i' make yours to look like this noting that the **new items are under helmet and above shield**``` Select Case i Case Equipment.Weapon If Item(ItemNum).Type ITEM_TYPE_WEAPON Then SetPlayerEquipment Index, 0, i Case Equipment.Armor If Item(ItemNum).Type ITEM_TYPE_ARMOR Then SetPlayerEquipment Index, 0, i 'NEW Case Equipment.Helmet If Item(ItemNum).Type ITEM_TYPE_HELMET Then SetPlayerEquipment Index, 0, i Case Equipment.Legs If Item(ItemNum).Type ITEM_TYPE_LEGS Then SetPlayerEquipment Index, 0, i Case Equipment.Boots If Item(ItemNum).Type ITEM_TYPE_BOOTS Then SetPlayerEquipment Index, 0, i Case Equipment.Glove If Item(ItemNum).Type ITEM_TYPE_GLOVE Then SetPlayerEquipment Index, 0, i Case Equipment.Ring If Item(ItemNum).Type ITEM_TYPE_RING Then SetPlayerEquipment Index, 0, i Case Equipment.Enchant If Item(ItemNum).Type ITEM_TYPE_ENCHANT Then SetPlayerEquipment Index, 0, i ' /New Case Equipment.Shield If Item(ItemNum).Type ITEM_TYPE_SHIELD Then SetPlayerEquipment Index, 0, i End Select ```Third(modPlayer):**Find** in **Public Sub UseItem** : **Under this**:``` Case ITEM_TYPE_HELMET ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Helmet) > 0 Then tempItem = GetPlayerEquipment(Index, Helmet) End If SetPlayerEquipment Index, ItemNum, Helmet PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum ```**Add**This:``` Case ITEM_TYPE_LEGS ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Legs) > 0 Then tempItem = GetPlayerEquipment(Index, Legs) End If SetPlayerEquipment Index, ItemNum, Legs PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum Case ITEM_TYPE_BOOTS ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Boots) > 0 Then tempItem = GetPlayerEquipment(Index, Boots) End If SetPlayerEquipment Index, ItemNum, Boots PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum Case ITEM_TYPE_GLOVE ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Glove) > 0 Then tempItem = GetPlayerEquipment(Index, Glove) End If SetPlayerEquipment Index, ItemNum, Glove PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum Case ITEM_TYPE_RING ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Ring) > 0 Then tempItem = GetPlayerEquipment(Index, Ring) End If SetPlayerEquipment Index, ItemNum, Ring PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum Case ITEM_TYPE_ENCHANT ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, Enchant) > 0 Then tempItem = GetPlayerEquipment(Index, Enchant) End If SetPlayerEquipment Index, ItemNum, Enchant PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum ```**Or** you can just add this piece of code for every new item you are adding making sure you place it below Helmet and ABOVE Shield Case and changing '####' to the name of the item: >! ``` Case ITEM_TYPE_#### ' stat requirements For i = 1 To Stats.Stat_Count - 1 If GetPlayerRawStat(Index, i) < Item(ItemNum).Stat_Req(i) Then PlayerMsg Index, "You do not meet the stat requirements to equip this item.", BrightRed Exit Sub End If Next ' level requirement If GetPlayerLevel(Index) < Item(ItemNum).LevelReq Then PlayerMsg Index, "You do not meet the level requirement to equip this item.", BrightRed Exit Sub End If ' class requirement If Item(ItemNum).ClassReq > 0 Then If Not GetPlayerClass(Index) = Item(ItemNum).ClassReq Then PlayerMsg Index, "You do not meet the class requirement to equip this item.", BrightRed Exit Sub End If End If ' access requirement If Not GetPlayerAccess(Index) >= Item(ItemNum).AccessReq Then PlayerMsg Index, "You do not meet the access requirement to equip this item.", BrightRed Exit Sub End If If GetPlayerEquipment(Index, #####) > 0 Then tempItem = GetPlayerEquipment(Index, ####) End If SetPlayerEquipment Index, ItemNum, #### PlayerMsg Index, "You equip " & CheckGrammar(Item(ItemNum).Name), BrightGreen TakeInvItem Index, ItemNum, 1 If tempItem > 0 Then GiveInvItem Index, tempItem, 0 ' give back the stored item tempItem = 0 End If Call SendWornEquipment(Index) Call SendMapEquipment(Index) ' send vitals Call SendVital(Index, Vitals.HP) Call SendVital(Index, Vitals.MP) ' send vitals to party if in one If TempPlayer(Index).inParty > 0 Then SendPartyVitals TempPlayer(Index).inParty, Index ' send the sound SendPlayerSound Index, GetPlayerX(Index), GetPlayerY(Index), SoundEntity.seItem, ItemNum ```Then move over to **modServerTCP**First Find : **Sub SendWornEquipment(ByVal Index As Long)** And Make it look like this taking note the **new items are below Helmet and above shield**:``` Sub SendWornEquipment(ByVal Index As Long) Dim packet As String Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SPlayerWornEq Buffer.WriteLong GetPlayerEquipment(Index, Armor) Buffer.WriteLong GetPlayerEquipment(Index, Weapon) Buffer.WriteLong GetPlayerEquipment(Index, Helmet) Buffer.WriteLong GetPlayerEquipment(Index, Legs) ' New Buffer.WriteLong GetPlayerEquipment(Index, Boots) ' New Buffer.WriteLong GetPlayerEquipment(Index, Glove) ' New Buffer.WriteLong GetPlayerEquipment(Index, Ring) ' New Buffer.WriteLong GetPlayerEquipment(Index, Enchant) ' New Buffer.WriteLong GetPlayerEquipment(Index, Shield) SendDataTo Index, Buffer.ToArray() Set Buffer = NothingEnd Sub ```Second(modServerTCP):Right under that sub you will see : **Sub SendMapEquipment** Make it look like this :``` Sub SendMapEquipment(ByVal Index As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SMapWornEq Buffer.WriteLong Index Buffer.WriteLong GetPlayerEquipment(Index, Armor) Buffer.WriteLong GetPlayerEquipment(Index, Weapon) Buffer.WriteLong GetPlayerEquipment(Index, Helmet) Buffer.WriteLong GetPlayerEquipment(Index, Legs) Buffer.WriteLong GetPlayerEquipment(Index, Boots) Buffer.WriteLong GetPlayerEquipment(Index, Glove) Buffer.WriteLong GetPlayerEquipment(Index, Ring) Buffer.WriteLong GetPlayerEquipment(Index, Enchant) Buffer.WriteLong GetPlayerEquipment(Index, Shield) SendDataToMap GetPlayerMap(Index), Buffer.ToArray() Set Buffer = NothingEnd Sub ```Third(modServerTCP): Find right under that sub: **Sub SendMapEquipmentTo** and **just like before** make it look like this making sure the **new equipment is below helmet and above shield**:``` Sub SendMapEquipmentTo(ByVal PlayerNum As Long, ByVal Index As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SMapWornEq Buffer.WriteLong PlayerNum Buffer.WriteLong GetPlayerEquipment(PlayerNum, Armor) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Weapon) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Helmet) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Legs) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Boots) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Glove) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Ring) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Enchant) Buffer.WriteLong GetPlayerEquipment(PlayerNum, Shield) SendDataTo Index, Buffer.ToArray() Set Buffer = NothingEnd Sub ```That should be all for the Server Side.Client SideFirst go to **modConstants** and make your 'item constants look the same as your server``` ' Item constantsPublic Const ITEM_TYPE_NONE As Byte = 0Public Const ITEM_TYPE_WEAPON As Byte = 1Public Const ITEM_TYPE_ARMOR As Byte = 2Public Const ITEM_TYPE_HELMET As Byte = 3Public Const ITEM_TYPE_LEGS As Byte = 4Public Const ITEM_TYPE_BOOTS As Byte = 5Public Const ITEM_TYPE_GLOVE As Byte = 6Public Const ITEM_TYPE_RING As Byte = 7Public Const ITEM_TYPE_ENCHANT As Byte = 8Public Const ITEM_TYPE_SHIELD As Byte = 9Public Const ITEM_TYPE_CONSUME As Byte = 10Public Const ITEM_TYPE_KEY As Byte = 11Public Const ITEM_TYPE_CURRENCY As Byte = 12Public Const ITEM_TYPE_SPELL As Byte = 13 ```Second(modConstants): Find **' Character consts** Now this is where your equipment will be drawn on the character window change it to fit your char window and your eq for the picture above i used these settings``` ' Character constsPublic Const EqTop As Long = 164Public Const EqLeft As Long = 43Public Const EqOffsetX As Long = 3Public Const EqOffsetY As Long = 4Public Const EqColumns As Long = 3 ```Next go to **modGeneral****Find** in **Public Sub Main()**:``` ' set the paperdoll order ```And make it look something like this keeping **shield on the bottom**:``` ' set the paperdoll order ReDim PaperdollOrder(1 To Equipment.Equipment_Count - 1) As Long PaperdollOrder(1) = Equipment.Armor PaperdollOrder(2) = Equipment.Helmet PaperdollOrder(3) = Equipment.Legs PaperdollOrder(4) = Equipment.Boots PaperdollOrder(5) = Equipment.Glove PaperdollOrder(6) = Equipment.Ring PaperdollOrder(7) = Equipment.Enchant PaperdollOrder(8) = Equipment.Shield PaperdollOrder(9) = Equipment.Weapon ```After that go to **modEnumerations** and do the same thing you did for the server:**Find:**``` ' Equipment used by Players ```and make it look like this and the same as you did for the server``` ' Equipment used by PlayersPublic Enum Equipment Enchant = 1 Helmet Ring Weapon Armor Shield Glove Legs Boots ' Make sure Equipment_Count is below everything else Equipment_CountEnd Enum ```Now go to **modHandleData**First:**Find: **Sub HandlePlayerWornEq(ByVal Index As Long, ByRef Data()** and **make the sub look like this** keeping the **new items above the shield**:``` Sub HandlePlayerWornEq(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)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.WriteBytes Data() Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Armor) Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Weapon) Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Helmet) Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Legs) ' New Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Boots) ' NEw Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Glove) ' New Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Ring) ' New Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Enchant) ' New Call SetPlayerEquipment(MyIndex, Buffer.ReadLong, Shield) ' changes to inventory, need to clear any drop menu frmMain.picCurrency.Visible = False frmMain.txtCurrency.text = vbNullString tmpCurrencyItem = 0 CurrencyMenu = 0 ' clear BltInventory BltEquipment Set Buffer = Nothing ' Error handler Exit Suberrorhandler: HandleError "HandlePlayerWornEq", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit SubEnd Sub ```Second(modHandleData):**right under that sub find**:``` Sub HandleMapWornEq(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) ```and **change** it to look like this making sure **shield is on bottom**:``` Sub HandleMapWornEq(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)Dim Buffer As clsBufferDim playerNum As Long ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Set Buffer = New clsBuffer Buffer.WriteBytes Data() playerNum = Buffer.ReadLong Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Armor) Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Weapon) Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Helmet) Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Legs) ' New Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Boots) ' New Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Glove) ' New Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Ring) ' New Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Enchant) ' New Call SetPlayerEquipment(playerNum, Buffer.ReadLong, Shield) Set Buffer = Nothing ' Error handler Exit Suberrorhandler: HandleError "HandleMapWornEq", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit SubEnd Sub ```Next go to **modDirectDraw7****Find** in **Sub BltEquipment()**:``` With rec_pos .top = EqTop .Bottom = .top + PIC_Y .Left = EqLeft + ((EqOffsetX + 32) * (((i - 1) Mod EqColumns))) .Right = .Left + PIC_X End With ```and **change** to``` With rec_pos .top = EqTop + ((EqOffsetY + 32) * ((i - 1) \ EqColumns)) .Bottom = .top + PIC_Y .Left = EqLeft + ((EqOffsetX + 32) * (((i - 1) Mod EqColumns))) .Right = .Left + PIC_X End With ```Now open up **frmEditor_Item**Right-click 'cmbType' and click properties: ![]([url]http://www.freemmorp...94534b22f0e.bmp[/url]) [http://www.freemmorp…a705ea8fb13.bmp](http://www.freemmorpgmaker.com/files/imagehost/pics/dcf756c612d15388204bda705ea8fb13.bmp) Then find the 'List' and add the new items ![]([url]http://www.freemmorp...6345c64ae27.bmp[/url])EDIT: Make sure in **frmMain** Find in **Private Function IsEqItem**:``` .Top = EqTop ```And Change to:``` .Top = EqTop + ((EqOffsetY + 32) * ((i - 1) \ EqColumns)) ```and that should be it to add new equipment slots.. All credits to Murdock for showing us how to do this.. **Note your character window will not look like mine just move the picCharacter stuff around alittle to make it fit your needs and edit your character.jpg to fit your equipment slots if neededHere are a couple of character windows if you want them:**
  21. :cheesy: Yes its in modplayer thats where it goes, and if your getting a varible not defined error then you must not have put this in mod constants Public Const ITEM_TYPE_RECIPE As Byte = 14 'or your next number in list
  22. Justn

    Help please

    Did you change the paperdoll scrollbar to your new image when u created the new weapon? And is the new image a .bmp?
  23. Justn

    Target [EO]

    Learned something new today thanks for the info i never even thought about it before.
  24. @93Beanie: > Who set it himself? The router? The router is an "it", not a "he"… > Look for it, you'll find it sooner or later. @Tahnner: > No it means my step dad changed the router password meaning i can't portforward. read before u bash the guy no matter how annoying he is…. jk tahnner
  25. Everything looks good… I know this sounds dumb but are you sure you added this to modDatabase under the sub setplayerexp? >! Function GetPlayerSwordsExp(ByVal Index As Long) As Long ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler If Index > MAX_PLAYERS Then Exit Function GetPlayerSwordsExp = Player(Index).SwordsExp ' Error handler Exit Function errorhandler: HandleError "GetPlayerSwordsExp", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Function End Function Sub SetPlayerSwordsExp(ByVal Index As Long, ByVal SwordsExp As Long) ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler If Index > MAX_PLAYERS Then Exit Sub Player(Index).SwordsExp = SwordsExp ' Error handler Exit Sub errorhandler: HandleError "SetPlayerSwordsExp", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub
×
×
  • Create New...