Add us on facebook! - Download Xtremeworlds from CNET - Xtremeworlds Active Server List

XW 1.0.3 Released

General Announcements from the admins of MMORPGMaker.org

XW 1.0.3 Released

Postby Bradyok » Thu Nov 19, 2009 2:58 am

It has been brought to my attention that players have been duping on Xtremeworlds. Players have been duping due to a bug in one of the systems on Xtremeworlds. The latest 1.0.3 release fixes that issue, and should be applied immediately. As always, it's good to back up your server before doing an upgrade. This upgrade required you to run the upgrade tool to convert your data, so having a backup is a VERY GOOD IDEA in case anything goes wrong.


***NEW 1-10-2010**** -- If you upgraded before 1-10-2010, make sure you do this fix..

REPLACE

Code: Select all
Call SetPlayerHelmetSlotDur(Victim, GetPlayerArmorSlotDur(Victim) + 1)


WITH

Code: Select all
Call SetPlayerHelmetSlotDur(Victim, GetPlayerHelmetSlotDur(Victim) + 1)



1.0.3
Added optional support for special characters in chat, allowing for use of other languages.
Added ability to disable autoloot via server.
Added damage tile required item to attribute lookup information.
Added additional log information showing exactly which attributes were modified on items and npcs.
Added map moral options: "Can't attack player" and "Can't cast spells".
Added level requirement and class requirement to shops for buying items.
Added option to disable guild chat for specific guild ranks.
Added CanPlayerBlockHit to scripting.
Added item bonuses to item guide generator.
Fixed duping bug.
Fixed poison spells crashing client.
Fixed damage tile not preventing damage when wearing specified item.
Fixed mutation percentage not working properly.
Fixed stun spells poping up message box.
Fixed class editor sprite scrollbar not being set to total sprites.

http://MMORPGMaker.org/XW103Update.zip


In the server-side settings.ini add: (of course you can change the values if you want to add special characters (support for other languages) or if you want to disable the autoloot)
SpecialCharacters = 0
AutoLoot = 1


Change
Code: Select all
Sub NpcAttackPlayer(Victim, MapNpcNum, Damage)

   NPCNum = GetNpcNumber(GetPlayerMap(Victim), MapNpcNum)
   
    If Damage > 0 Then
        If Damage >= GetPlayerHP(Victim) Then       
            Call PlayerMsg(Victim, "A " & GetNpcName(NpcNum) & " hit you for " & Damage & " hit points.", C_GREY)   
            Call GlobalMsg(GetPlayerName(Victim) & " has been killed by a " & GetNpcName(NpcNum) & ".", C_BRIGHTRED)
            Call SetNpcTarget(GetPlayerMap(Victim), MapNpcNum, 0)             
            Call OnDeath(Victim, "npc")               
        Else
            Call SetPlayerHP(Victim, GetPlayerHP(Victim) - Damage)
            Call SendHP(Victim)
            Call PlayerMsg(Victim, "A " & GetNpcName(NpcNum) & " hit you for " & Damage & " hit points.", C_BRIGHTRED)
        End If
    Else
        Call PlayerMsg(Victim, "The " & GetNpcName(NpcNum) & "'s hit didn't even phase you!", C_BRIGHTBLUE)
    End If

End Sub


To

Code: Select all
Sub NpcAttackPlayer(Victim, MapNpcNum, Damage)

   NPCNum = GetNpcNumber(GetPlayerMap(Victim), MapNpcNum)

    If CanPlayerBlockHit(Victim) = True Then                       
        Call PlayerMessage(Victim, "You have blocked the " & GetNpcName(GetNpcNumber(GetPlayerMap(Victim), MapNpcNum)) & "'s attack.", C_BRIGHTCYAN)
        Call SetPlayerArmorSlotDur(Victim, GetPlayerArmorSlotDur(Victim) + 1)
        Call SetPlayerHelmetSlotDur(Victim, GetPlayerHelmetSlotDur(Victim) + 1)
        Call SendWornEquipment(Victim)
    Else


    If Damage > 0 Then
        If Damage >= GetPlayerHP(Victim) Then       
            Call PlayerMsg(Victim, "A " & GetNpcName(NpcNum) & " hit you for " & Damage & " hit points.", C_GREY)   
            Call GlobalMsg(GetPlayerName(Victim) & " has been killed by a " & GetNpcName(NpcNum) & ".", C_BRIGHTRED)
            Call SetNpcTarget(GetPlayerMap(Victim), MapNpcNum, 0)             
            Call OnDeath(Victim, "npc")               
        Else
            Call SetPlayerHP(Victim, GetPlayerHP(Victim) - Damage)
            Call SendHP(Victim)
            Call PlayerMsg(Victim, "A " & GetNpcName(NpcNum) & " hit you for " & Damage & " hit points.", C_BRIGHTRED)
        End If
    Else
        Call PlayerMsg(Victim, "The " & GetNpcName(NpcNum) & "'s hit didn't even phase you!", C_BRIGHTBLUE)
    End If

    End If
End Sub



In

Code: Select all
Sub PlayerAttack(Attacker, Victim, Damage, SpellNum)


Change

Code: Select all
If Not CanPlayerCriticalHit(Attacker) Then
                Damage = GetPlayerDamage(Attacker) - Protection
            Else
              N = GetPlayerDamage(Attacker)
              Damage = N + Int(Rnd * Int(N / 2)) + 1 - Protection
            End If


To

Code: Select all
If Not CanPlayerBlockHit(Victim) Then
            If Not CanPlayerCriticalHit(Attacker) Then
                Damage = GetPlayerDamage(Attacker) - Protection
            Else
              N = GetPlayerDamage(Attacker)
              Damage = N + Int(Rnd * Int(N / 2)) + 1 - Protection
            End If
        Else
            Call PlayerMessage(Victim, "You have blocked " & GetPlayerName(Attacker) & "'s attack.", C_BRIGHTCYAN)
            Call PlayerMessage(Attacker, GetPlayerName(Victim) & " has blocked your attack.", C_BRIGHTCYAN)
            Call SetPlayerArmorSlotDur(Victim, GetPlayerArmorSlotDur(Victim) + 1)
            Call SetPlayerHelmetSlotDur(Victim, GetPlayerHelmetSlotDur(Victim) + 1)
            Call SendWornEquipment(Victim)   
            exit sub
        End If


In Sub NPCDeath

Replace

Code: Select all
Call PlayerMsg(Attacker, "You have gained " & Exp & " experience points.", C_BRIGHTBLUE)


With

Code: Select all
If IsPlayerInParty(Attacker) = False Then
        Call PlayerMsg(Attacker, "You have gained " & Exp & " experience points.", C_BRIGHTBLUE)
        Call SetPlayerExp(Attacker, GetPlayerExp(Attacker) + Exp)             
    Else
        Exp = Exp / 2         
        Exp = Int(Exp)
       
        If Exp <= 0 Then
            Exp = 1
        End If
       
        Call SetPlayerExp(Attacker, GetPlayerExp(Attacker) + Exp)
        Call PlayerMsg(Attacker, "You have gained " & Exp & " party experience points.", C_BRIGHTBLUE)
       
        n = GetPlayerPartyMember(Attacker)
        If n > 0 Then
            Call SetPlayerExp(n, GetPlayerExp(n) + Exp)
            Call PlayerMsg(n, "You have gained " & Exp & " party experience points.", C_BRIGHTBLUE)
        End If
    End If   





Extract it, overwrite all the files with the new ones, run the upgrade.exe tool.

I will be posting the scripting changes here soon, I just wanted to get this thing out ASAP. I'll be uploading the full 1.0.3 download later today as well.
Bradyok
Site Admin
 
Posts: 158
Joined: Sun Apr 26, 2009 4:49 pm

Re: XW 1.0.3 Released

Postby EVIL » Thu Nov 19, 2009 3:20 am

well that solves everyones house mapping problems lol
*is doing freelance scripting for people if asked if you want it to be a unique script add me on msn or aim*
EVIL
 
Posts: 98
Joined: Sun Apr 26, 2009 6:01 pm

Re: XW 1.0.3 Released

Postby Moiras » Thu Nov 19, 2009 3:24 am

Bradyok wrote:I'll be uploading the full 1.0.3 download later today as well.

I'll be waiting for that, since i dont know how to add all those script things :p
Image
User avatar
Moiras
 
Posts: 68
Joined: Thu Jul 16, 2009 3:50 am

Re: XW 1.0.3 Released

Postby Bradyok » Thu Nov 19, 2009 3:32 am

lol alright. it'll be like after work. it's 2:32am right now, just wanted to get this thing out asap so the major games can get secure.
Bradyok
Site Admin
 
Posts: 158
Joined: Sun Apr 26, 2009 4:49 pm

Re: XW 1.0.3 Released

Postby Scythe » Thu Nov 19, 2009 3:38 am

Thanks for the update Brady, appreciate it.

-Scythe
Image
User avatar
Scythe
 
Posts: 41
Joined: Mon Apr 27, 2009 3:02 pm
Location: East Coast, United States

Re: XW 1.0.3 Released

Postby Shock » Thu Nov 19, 2009 3:47 am

Cool, plenty of great additions in there. Thanks for your hard work Brady.

Edit: Awesome, the stuns work legit now in pvp! No more ghetto scripting in movement restrictions!
Shock
 
Posts: 156
Joined: Thu Sep 03, 2009 3:56 am

Re: XW 1.0.3 Released

Postby Arcterious » Thu Nov 19, 2009 3:55 am

Brady, I am very glad for the update. Just the few updates I seen in this 1.0.3 I liked. I just really hope you put a couple of these in there:

SetPlayerTempStr(Index)
SetPlayerTempDef(Index)
SetPlayerTempSpeed(Index)
SetPlayerTempHp(Index)
SetPlayerTempMp(Index)
SetPlayerTempWeaponDura(Index)
SetPlayerTempWeaponPower(Index)
SetPlayerTempWeaponName(Index) (Not numbers, but I think it can be done.)
SetPlayerTempArmorDura(Index)
SetPlayerTempArmorDefense(Index)
SetPlayerTempArmorName(Index)
SetPlayerTempHelmDura(Index)
SetPlayerTempHelmDefense(Index)
SetPlayerTempHelmName(Index)
SetPlayerTempShieldDura(Index)
SetPlayerTempShieldDefense(Index)
SetPlayerTempShieldName(Index)

Even if not, at least there are going to likely be some good things in there. Also, another hopeful thing, maybe the ability to change attributes and tiles by stepping on another tile using the OnScripted section. Of course, only for that player(s).
Image
User avatar
Arcterious
 
Posts: 760
Joined: Sun Jun 07, 2009 9:10 pm

Re: XW 1.0.3 Released

Postby gangstanick » Thu Nov 19, 2009 6:39 am

Awesome, I must try it soon.
Image
gangstanick
 
Posts: 734
Joined: Thu Apr 30, 2009 8:09 am

Re: XW 1.0.3 Released

Postby Elec0 » Thu Nov 19, 2009 9:56 am

Sweet, awesome!
User avatar
Elec0
 
Posts: 2319
Joined: Fri May 08, 2009 4:48 pm

Re: XW 1.0.3 Released

Postby Jaylor » Thu Nov 19, 2009 5:53 pm

Wow, I specifically asked for at least 4 or 5 things there at one point. Awesome work, can't wait to update.

Shock wrote:Cool, plenty of great additions in there. Thanks for your hard work Brady.

Edit: Awesome, the stuns work legit now in pvp! No more ghetto scripting in movement restrictions!

This delights me greatly. :)
Image

Follow my new BLOG at http://jaylorsezzit.blogspot.com/!
User avatar
Jaylor
 
Posts: 154
Joined: Sun May 10, 2009 5:36 pm

Next

Return to Announcements

Who is online

Users browsing this forum: No registered users and 1 guest