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

dylanpilgrim

Members
  • Posts

    18
  • Joined

  • Last visited

    Never

Posts posted by dylanpilgrim

  1. @Sekaru. Hmm… But Robin has made it without memory leak. And leak is not so important, I think. In any case in my game will play few players. Though who knows...

    @Mythos. Damn, I very much would want DirectX 8! But at me it is impossible to make it... Unfortunately, I could not find a lesson. And my knowledge of VB is smallest.
  2. _Yes, yes, I used "search", have read about memory leak.
    But I saw other font in Robin's "Crystalshire"… There used the picture and some files.
    Two .dat files and two .png files, with the drawn font.
    Tell me, how I can make as?
    Very much I require it. Just Arial duck up all my game.
    In advance thanks.

    With love,
    Dylan Pilgrim._
  3. @Rainbow:

    > Cruel? You think I'm doing this to spite you personally?
    >
    > Honestly, your selfishness knows no bounds.

    My selfishness?
    You write about "Bored of your bigoted American opinions"
    I generally from Russia…
    And I wish to try and make not "half-baked Pokémon or Zelda"...
    I wished to make really good game... I have a talent as it seems to me.
    But the Eclipse site is disappear, all resources, tutorials. It is a pity. Really pity...
    And sorry for my English.
  4. i mean something like that http://nzdpvw.bay.livefilestore.com/y1plk-6BOXhfREl8CCGG0DythB6KixK6W885-dRh2owbncarj2lf9ETHLxFq7bbvi8XKENno3Ysqa3_FU-FU-Wt-aQMtEt0k6mc/mm_preview4.png?psid=1
    could you tell me any scripts?
  5. Forgot to say, after adding scripts, NPC sprites disappear:

    ![](http://i56.tinypic.com/b4dwdc.jpg)

    And sub:
    ```
    Public Sub PlayerAttackNpc(ByVal attacker As Long, ByVal mapNpcNum As Long, ByVal Damage As Long, Optional ByVal spellnum As Long, Optional ByVal overTime As Boolean = False)
        Dim Name As String
        Dim exp As Long
        Dim n As Long
        Dim i As Long
        Dim STR As Long
        Dim DEF As Long
        Dim mapNum As Long
        Dim npcNum As Long
        Dim Buffer As clsBuffer

        ' Check for subscript out of range
        If IsPlaying(attacker) = False Or mapNpcNum <= 0 Or mapNpcNum > MAX_MAP_NPCS Or Damage < 0 Then
            Exit Sub
        End If

        mapNum = GetPlayerMap(attacker)
        npcNum = MapNpc(mapNum).Npc(mapNpcNum).Num
        Name = Trim$(Npc(npcNum).Name)

        ' Check for weapon
        n = 0

        If GetPlayerEquipment(attacker, Weapon) > 0 Then
            n = GetPlayerEquipment(attacker, Weapon)
        End If

        ' set the regen timer
        TempPlayer(attacker).stopRegen = True
        TempPlayer(attacker).stopRegenTimer = GetTickCount

        If Damage >= MapNpc(mapNum).Npc(mapNpcNum).Vital(Vitals.HP) Then

            SendActionMsg GetPlayerMap(attacker), "-" & MapNpc(mapNum).Npc(mapNpcNum).Vital(Vitals.HP), BrightRed, 1, (MapNpc(mapNum).Npc(mapNpcNum).x * 32), (MapNpc(mapNum).Npc(mapNpcNum).y * 32)
            SendBlood GetPlayerMap(attacker), MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y

            ' send the sound
            If spellnum > 0 Then SendMapSound attacker, MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y, SoundEntity.seSpell, spellnum

            ' send animation
            If n > 0 Then
                If Not overTime Then
                    If spellnum = 0 Then Call SendAnimation(mapNum, Item(GetPlayerEquipment(attacker, Weapon)).Animation, MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y)
                End If
            End If

            ' Calculate exp to give attacker
            exp = Npc(npcNum).exp

            ' Make sure we dont get less then 0
            If exp < 0 Then
                exp = 1
            End If

            ' in party?
            If TempPlayer(attacker).inParty > 0 Then
                ' pass through party sharing function
                Party_ShareExp TempPlayer(attacker).inParty, exp, attacker
            Else
                ' no party - keep exp for self
                GivePlayerEXP attacker, exp
            End If

            'Drop the goods if they get it
            n = Int(Rnd * Npc(npcNum).DropChance) + 1

            If n = 1 Then
                Call SpawnItem(Npc(npcNum).DropItem, Npc(npcNum).DropItemValue, mapNum, MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y)
            End If

            ' Now set HP to 0 so we know to actually kill them in the server loop (this prevents subscript out of range)
            MapNpc(mapNum).Npc(mapNpcNum).Num = 0
            MapNpc(mapNum).Npc(mapNpcNum).SpawnWait = GetTickCount
            MapNpc(mapNum).Npc(mapNpcNum).Vital(Vitals.HP) = 0

            ' clear DoTs and HoTs
            For i = 1 To MAX_DOTS
                With MapNpc(mapNum).Npc(mapNpcNum).DoT(i)
                    .Spell = 0
                    .Timer = 0
                    .Caster = 0
                    .StartTime = 0
                    .Used = False
                End With

                With MapNpc(mapNum).Npc(mapNpcNum).HoT(i)
                    .Spell = 0
                    .Timer = 0
                    .Caster = 0
                    .StartTime = 0
                    .Used = False
                End With
            Next

            ' send death to the map
            Set Buffer = New clsBuffer
            Buffer.WriteLong SNpcDead
            Buffer.WriteLong mapNpcNum
            SendDataToMap mapNum, Buffer.ToArray()
            Set Buffer = Nothing

            'Loop through entire map and purge NPC from targets
            For i = 1 To Player_HighIndex
                If IsPlaying(i) And IsConnected(i) Then
                    If Player(i).Map = mapNum Then
                        If TempPlayer(i).targetType = TARGET_TYPE_NPC Then
                            If TempPlayer(i).target = mapNpcNum Then
                                TempPlayer(i).target = 0
                                TempPlayer(i).targetType = TARGET_TYPE_NONE
                                SendTarget i
                            End If
                        End If
                    End If
                End If
            Next
        Else
            ' NPC not dead, just do the damage
            MapNpc(mapNum).Npc(mapNpcNum).Vital(Vitals.HP) = MapNpc(mapNum).Npc(mapNpcNum).Vital(Vitals.HP) - Damage

            ' Check for a weapon and say damage
            SendActionMsg mapNum, "-" & Damage, BrightRed, 1, (MapNpc(mapNum).Npc(mapNpcNum).x * 32), (MapNpc(mapNum).Npc(mapNpcNum).y * 32)
            SendBlood GetPlayerMap(attacker), MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y

            ' send the sound
            If spellnum > 0 Then SendMapSound attacker, MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y, SoundEntity.seSpell, spellnum

            ' send animation
            If n > 0 Then
                If Not overTime Then
                    If spellnum = 0 Then Call SendAnimation(mapNum, Item(GetPlayerEquipment(attacker, Weapon)).Animation, 0, 0, TARGET_TYPE_NPC, mapNpcNum)
                End If
            End If

            ' Set the NPC target to the player
            MapNpc(mapNum).Npc(mapNpcNum).targetType = 1 ' player
            MapNpc(mapNum).Npc(mapNpcNum).target = attacker

            ' Now check for guard ai and if so have all onmap guards come after'm
            If Npc(MapNpc(mapNum).Npc(mapNpcNum).Num).Behaviour = NPC_BEHAVIOUR_GUARD Then
                For i = 1 To MAX_MAP_NPCS
                    If MapNpc(mapNum).Npc(i).Num = MapNpc(mapNum).Npc(mapNpcNum).Num Then
                        MapNpc(mapNum).Npc(i).target = attacker
                        MapNpc(mapNum).Npc(i).targetType = 1 ' player
                    End If
                Next
            End If

            ' set the regen timer
            MapNpc(mapNum).Npc(mapNpcNum).stopRegen = True
            MapNpc(mapNum).Npc(mapNpcNum).stopRegenTimer = GetTickCount

            ' if stunning spell, stun the npc
            If spellnum > 0 Then
                If Spell(spellnum).StunDuration > 0 Then StunNPC mapNpcNum, mapNum, spellnum
                ' DoT
                If Spell(spellnum).Duration > 0 Then
                    AddDoT_Npc mapNum, mapNpcNum, spellnum, attacker
                End If
            End If

            SendMapNpcVitals mapNum, mapNpcNum
        End If

        If spellnum = 0 Then
            ' Reset attack timer
            TempPlayer(attacker).AttackTimer = GetTickCount
        End If
    End Sub

    ```
    And if I change something after, then I getting an error "**Run-time error '380' Invalid property value**".
  6. Hello, could you please help me?
    For example, I made quest on this tutorial http://www.touchofdeathforums.com/smf/index.php/topic,68426.0.html
    After, I try to add **NPC Speech Box** http://www.touchofdeathforums.com/smf/index.php/topic,68317.0.html
    But in the end, nothing worked. But if done out separately, everything is ok.
    How do I solve this problem? And necessarily need to use **Vb version 6**? Or I can use another (For example, **Visual Studio 2010**)?

    And sorry for my english, I'm from another country.
    Help me **please**.
×
×
  • Create New...