Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

2/1/2010 - Xuri (0.98-4.0g)

	Fixed an issue with open doors in player houses that could cause them to decay if they were open during decay-check
	Fixed an issue with locked down items decaying (despite being inside houses)
	A system message should now be displayed when locking down items, showing how many lockdowns remain
	Added JS Item property: multi - A read-only Object-reference to the multi a specific item is inside
	Items of objType OT_SPAWNER with amount set higher than 1 should no longer be duped when picked up off the ground
	Added movable=2 and weight=50000 to Base_spawner-definition to make it impossible for players to steal them
  • Loading branch information...
commit 2b5e21834b41841375c59153e3c7df5d4c72d036 1 parent 4844e64
xuridabur authored
View
3  dfns/items/gmmenu/spawners.dfn
@@ -1,10 +1,11 @@
[base_spawner]
{
get=base_item
-weight=500
+weight=50000
interval=1 5
visible=1
decay=0
+movable=2
}
[orcspawn]
View
8 source/Changelog.txt
@@ -1,3 +1,11 @@
+2/1/2010 - Xuri (0.98-4.0g)
+ Fixed an issue with open doors in player houses that could cause them to decay if they were open during decay-check
+ Fixed an issue with locked down items decaying (despite being inside houses)
+ A system message should now be displayed when locking down items, showing how many lockdowns remain
+ Added JS Item property: multi - A read-only Object-reference to the multi a specific item is inside
+ Items of objType OT_SPAWNER with amount set higher than 1 should no longer be duped when picked up off the ground
+ Added movable=2 and weight=50000 to Base_spawner-definition to make it impossible for players to steal them
+
2/1/2010 - Xuri (0.98-4.0f)
Added script for Dice and Cup-item, which lets players use said item to...(drumroll, please)...roll dice!
Fixed an issue where NPCs could spawn at Z -128
View
1  source/UOXJSPropertyEnums.h
@@ -309,6 +309,7 @@ enum CI_Properties
CIP_ISCONTTYPE,
CIP_CARVESECTION,
CIP_SPEED,
+ CIP_MULTI,
CIP_COUNT
};
View
13 source/UOXJSPropertyFuncs.cpp
@@ -324,6 +324,19 @@ namespace UOX
if( gPriv->GetObjType() == OT_SPAWNER )
*vp = INT_TO_JSVAL( ((CSpawnItem *)gPriv)->GetInterval( 1 ) );
break;
+ case CIP_MULTI:
+ CMultiObj *multi;
+ multi = gPriv->GetMultiObj();
+
+ if( !ValidateObject( multi ) )
+ *vp = JSVAL_NULL;
+ else
+ {
+ // Otherwise Acquire an object
+ JSObject *myObj = JSEngine->AcquireObject( IUE_ITEM, multi, JSEngine->FindActiveRuntime( JS_GetRuntime( cx ) ) );
+ *vp = OBJECT_TO_JSVAL( myObj );
+ }
+ break;
default:
break;
}
View
1  source/UOXJSPropertySpecs.h
@@ -325,6 +325,7 @@ static JSPropertySpec CItemProps[] =
{ "mininterval", CIP_MININTERVAL, JSPROP_ENUMANDPERM },
{ "maxinterval", CIP_MAXINTERVAL, JSPROP_ENUMANDPERM },
{ "speed", CIP_SPEED, JSPROP_ENUMANDPERM },
+ { "multi", CIP_MULTI, JSPROP_ENUMANDPERM },
{ NULL, (SI08)NULL, (UI08)0}
};
View
2  source/cPlayerAction.cpp
@@ -340,7 +340,7 @@ bool CPIGetItem::Handle( void )
}
Effects->PlaySound( tSock, 0x0057, true );
- if( i->GetAmount() > 1 )
+ if( i->GetAmount() > 1 && i->GetObjType() != OT_SPAWNER )
{
UI16 amount = tSock->GetWord( 5 );
if( amount > i->GetAmount() )
View
2  source/cVersionClass.cpp
@@ -21,7 +21,7 @@ namespace UOX
// product info
//o---------------------------------------------------------------------------o
const std::string VER = "0.98-4";
-const std::string BUILD = "0f";
+const std::string BUILD = "0g";
const std::string REALBUILD = "0";
const std::string SVER = "2.0";
const std::string CVER = "2.0";
View
2  source/items.cpp
@@ -526,7 +526,7 @@ bool DecayItem( CItem& toDecay, const UI32 nextDecayItems )
// Multis
if( !toDecay.IsFieldSpell() && !isCorpse ) // Gives fieldspells a chance to decay in multis
{
- if( ValidateObject( toDecay.GetMultiObj() ) )
+ if( toDecay.IsLockedDown() || toDecay.isDoorOpen() || ValidateObject( toDecay.GetMultiObj() ) )
{
toDecay.SetDecayTime( nextDecayItems );
return false;
View
8 source/targeting.cpp
@@ -1238,7 +1238,9 @@ void HouseLockdown( CSocket *s ) // Abaddon
if( multi->GetLockDownCount() < multi->GetMaxLockDowns() )
{
multi->LockDownItem( itemToLock );
- s->sysmessage( 1786 );
+ UI16 lockDownsLeft = multi->GetMaxLockDowns() - multi->GetLockDownCount();
+ s->sysmessage( 1786 ); //You lock down the targeted item
+ s->sysmessage( 1788, lockDownsLeft ); //%i lockdowns remaining
}
else
s->sysmessage( "You have too many locked down items" );
@@ -1278,7 +1280,9 @@ void HouseRelease( CSocket *s ) // Abaddon
if( multi->GetLockDownCount() > 0 )
{
multi->RemoveLockDown( itemToLock ); // Default as stored by the client, perhaps we should keep a backup?
- s->sysmessage( 1787 );
+ UI16 lockDownsLeft = multi->GetMaxLockDowns() - multi->GetLockDownCount();
+ s->sysmessage( 1787 ); //You lock down the targeted item
+ s->sysmessage( 1788, lockDownsLeft ); //%i lockdowns remaining
}
return;
}

0 comments on commit 2b5e218

Please sign in to comment.
Something went wrong with that request. Please try again.