Compare commits
14 Commits
sv-1.8.9.8
...
sv-1.8.9.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5040275969 | ||
|
|
1daccf40ee | ||
|
|
4fd302286b | ||
|
|
18f9f19e61 | ||
|
|
1de6d4461a | ||
|
|
4198f47ab6 | ||
|
|
d9049ba342 | ||
|
|
f75ac3e4c2 | ||
|
|
06698deaca | ||
|
|
445eb29bd3 | ||
|
|
cc034f6841 | ||
|
|
3c368651f1 | ||
|
|
321730e384 | ||
|
|
c2fd88670f |
@@ -410,11 +410,11 @@
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>4614b29cc98021cf1770a8290171602b</string>
|
||||
<string>a96fda7ad5cee967823f5c94390ba35b</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>https://pkg.alchemyviewer.org/repository/autobuild-external/crashpad/windows/crashpad-ce32d093.7-windows-7.tar.bz2</string>
|
||||
<string>https://pkg.alchemyviewer.org/repository/autobuild-external/crashpad/windows/crashpad-c6d76a90.194-windows-194.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
@@ -424,18 +424,18 @@
|
||||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>d801461b7a6a40fffab828aa1e01e3e6</string>
|
||||
<string>5ff95ca1007ed2dc300b59de17453201</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>https://pkg.alchemyviewer.org/repository/autobuild-external/crashpad/windows64/crashpad-ce32d093.7-windows64-7.tar.bz2</string>
|
||||
<string>https://pkg.alchemyviewer.org/repository/autobuild-external/crashpad/windows64/crashpad-c6d76a90.194-windows64-194.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>version</key>
|
||||
<string>ce32d093.7</string>
|
||||
<string>c6d76a90.194</string>
|
||||
</map>
|
||||
<key>curl</key>
|
||||
<map>
|
||||
|
||||
@@ -270,6 +270,8 @@ if (NOT VIEWER_CHANNEL_GRK)
|
||||
set(VIEWER_CHANNEL_GRK "\\u03B1") # "α"
|
||||
elseif (VIEWER_CHANNEL_TYPE MATCHES "Beta")
|
||||
set(VIEWER_CHANNEL_GRK "\\u03B2") # "β"
|
||||
else()
|
||||
set(VIEWER_CHANNEL_GRK "")
|
||||
endif ()
|
||||
endif (NOT VIEWER_CHANNEL_GRK)
|
||||
|
||||
|
||||
@@ -353,10 +353,10 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;
|
||||
|
||||
// NEW Macros for debugging, allow the passing of a string tag
|
||||
|
||||
#if SHOW_DEBUG
|
||||
#define DO_DEBUG_LOG if(true)
|
||||
#ifdef SHOW_DEBUG
|
||||
#define DO_DEBUG_LOG
|
||||
#else
|
||||
#define DO_DEBUG_LOG if(false)
|
||||
#define DO_DEBUG_LOG if (false)
|
||||
#endif
|
||||
|
||||
// Pass comma separated list of tags (currently only supports up to 0, 1, or 2)
|
||||
|
||||
@@ -960,4 +960,5 @@ P(webProfileResponders);
|
||||
P(wholeModelFeeResponder);
|
||||
P(wholeModelUploadResponder);
|
||||
P2(XMLRPCResponder, connect_40s);
|
||||
P(getUpdateInfoResponder);
|
||||
P(getUpdateInfoResponder);
|
||||
P2(AISAPIResponder, connect_60s);
|
||||
@@ -207,6 +207,7 @@ void LLPrefsAscentSys::refreshValues()
|
||||
mDisplayScriptJumps = gSavedSettings.getBOOL("AscentDisplayTotalScriptJumps");
|
||||
mNumScriptDiff = gSavedSettings.getF32("Ascentnumscriptdiff");
|
||||
mReplaceLinks = gSavedSettings.getBOOL("SinguReplaceLinks");
|
||||
mEmergencySeconds = gSavedPerAccountSettings.getU32("EmergencyTeleportSeconds");
|
||||
mLandmark = gSavedPerAccountSettings.getString("EmergencyTeleportLandmark");
|
||||
mLandmarkBackup = gSavedPerAccountSettings.getString("EmergencyTeleportLandmarkBackup");
|
||||
|
||||
@@ -353,6 +354,7 @@ void LLPrefsAscentSys::cancel()
|
||||
gSavedSettings.setBOOL("AscentDisplayTotalScriptJumps", mDisplayScriptJumps);
|
||||
gSavedSettings.setF32("Ascentnumscriptdiff", mNumScriptDiff);
|
||||
gSavedSettings.setBOOL("SinguReplaceLinks", mReplaceLinks);
|
||||
gSavedPerAccountSettings.setU32("EmergencyTeleportSeconds", mEmergencySeconds);
|
||||
gSavedPerAccountSettings.setString("EmergencyTeleportLandmark", mLandmark);
|
||||
gSavedPerAccountSettings.setString("EmergencyTeleportLandmarkBackup", mLandmarkBackup);
|
||||
|
||||
|
||||
@@ -118,6 +118,7 @@ private:
|
||||
bool mDisplayScriptJumps;
|
||||
bool mReplaceLinks;
|
||||
F32 mNumScriptDiff;
|
||||
U32 mEmergencySeconds;
|
||||
std::string mLandmark;
|
||||
std::string mLandmarkBackup;
|
||||
|
||||
|
||||
@@ -40,11 +40,21 @@
|
||||
/// Classes for AISv3 support.
|
||||
///----------------------------------------------------------------------------
|
||||
|
||||
extern AIHTTPTimeoutPolicy AISAPIResponder_timeout;
|
||||
|
||||
class AISCommand final : public LLHTTPClient::ResponderWithCompleted
|
||||
{
|
||||
public:
|
||||
typedef boost::function<void()> command_func_type;
|
||||
// AISCommand - base class for retry-able HTTP requests using the AISv3 cap.
|
||||
|
||||
// Limit max in flight requests to 2. Server was aggressively throttling otherwise.
|
||||
constexpr static U8 sMaxActiveAISCommands = 4;
|
||||
static U8 sActiveAISCommands;
|
||||
static std::queue< boost::intrusive_ptr< AISCommand > > sPendingAISCommands;
|
||||
|
||||
virtual AIHTTPTimeoutPolicy const& getHTTPTimeoutPolicy(void) const { return AISAPIResponder_timeout; }
|
||||
|
||||
AISCommand(AISAPI::COMMAND_TYPE type, const char* name, const LLUUID& targetId, AISAPI::completion_t callback) :
|
||||
mCommandFunc(NULL),
|
||||
mRetryPolicy(new LLAdaptiveRetryPolicy(1.0, 32.0, 2.0, 10)),
|
||||
@@ -53,10 +63,30 @@ public:
|
||||
mName(name),
|
||||
mType(type)
|
||||
{}
|
||||
|
||||
virtual ~AISCommand()
|
||||
{
|
||||
if (mActive)
|
||||
{
|
||||
--sActiveAISCommands;
|
||||
while (sActiveAISCommands < sMaxActiveAISCommands && !sPendingAISCommands.empty())
|
||||
{
|
||||
sPendingAISCommands.front()->dispatch();
|
||||
sPendingAISCommands.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void run( command_func_type func )
|
||||
{
|
||||
(mCommandFunc = func)();
|
||||
mCommandFunc = func;
|
||||
if (sActiveAISCommands >= sMaxActiveAISCommands)
|
||||
{
|
||||
sPendingAISCommands.push(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
char const* getName(void) const override
|
||||
@@ -64,6 +94,17 @@ public:
|
||||
return mName;
|
||||
}
|
||||
|
||||
private:
|
||||
void dispatch()
|
||||
{
|
||||
if (LLApp::isQuitting())
|
||||
{
|
||||
return;
|
||||
}
|
||||
++sActiveAISCommands;
|
||||
mActive = true;
|
||||
(mCommandFunc)();
|
||||
}
|
||||
void markComplete()
|
||||
{
|
||||
// Command func holds a reference to self, need to release it
|
||||
@@ -72,42 +113,56 @@ public:
|
||||
mRetryPolicy->onSuccess();
|
||||
}
|
||||
|
||||
void malformedResponse() { mStatus = HTTP_INTERNAL_ERROR_OTHER; mReason = llformat("Malformed response contents (original code: %d)", mStatus); }
|
||||
|
||||
bool onFailure()
|
||||
{
|
||||
bool retry = mStatus != HTTP_INTERNAL_ERROR_OTHER && mStatus != 410; // We handle these and stop
|
||||
LL_WARNS("Inventory") << "Inventory error: " << dumpResponse() << LL_ENDL;
|
||||
if (retry) mRetryPolicy->onFailure(mStatus, getResponseHeaders());
|
||||
mRetryPolicy->onFailure(mStatus, getResponseHeaders());
|
||||
F32 seconds_to_wait;
|
||||
if (retry && mRetryPolicy->shouldRetry(seconds_to_wait))
|
||||
if (mRetryPolicy->shouldRetry(seconds_to_wait))
|
||||
{
|
||||
if (mStatus == 503)
|
||||
{
|
||||
// Pad delay a bit more since we're getting throttled.
|
||||
seconds_to_wait += 10.f + ll_frand(4.f);
|
||||
}
|
||||
LL_WARNS("Inventory") << "Retrying in " << seconds_to_wait << "seconds due to inventory error for " << getName() <<": " << dumpResponse() << LL_ENDL;
|
||||
doAfterInterval(mCommandFunc,seconds_to_wait);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Command func holds a reference to self, need to release it
|
||||
// after a success or final failure.
|
||||
// *TODO: Notify user? This seems bad.
|
||||
LL_WARNS("Inventory") << "Abort due to inventory error for " << getName() <<": " << dumpResponse() << LL_ENDL;
|
||||
mCommandFunc = no_op;
|
||||
return false;
|
||||
}
|
||||
return retry;
|
||||
}
|
||||
|
||||
protected:
|
||||
void httpCompleted() override
|
||||
{
|
||||
AISAPI::InvokeAISCommandCoro(this, getURL(), mTargetId, getContent(), mCompletionFunc, (AISAPI::COMMAND_TYPE)mType);
|
||||
// Continue through if successful or longer retrying,
|
||||
if (isGoodStatus(mStatus) || !onFailure())
|
||||
{
|
||||
markComplete();
|
||||
AISAPI::InvokeAISCommandCoro(this, getURL(), mTargetId, getContent(), mCompletionFunc, (AISAPI::COMMAND_TYPE)mType);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
command_func_type mCommandFunc;
|
||||
LLPointer<LLHTTPRetryPolicy> mRetryPolicy;
|
||||
AISAPI::completion_t mCompletionFunc;
|
||||
const LLUUID mTargetId;
|
||||
const char* mName;
|
||||
bool mActive = false;
|
||||
AISAPI::COMMAND_TYPE mType;
|
||||
};
|
||||
|
||||
U8 AISCommand::sActiveAISCommands = 0;
|
||||
std::queue< boost::intrusive_ptr< AISCommand > > AISCommand::sPendingAISCommands;
|
||||
|
||||
//=========================================================================
|
||||
const std::string AISAPI::INVENTORY_CAP_NAME("InventoryAPIv3");
|
||||
const std::string AISAPI::LIBRARY_CAP_NAME("LibraryAPIv3");
|
||||
@@ -312,21 +367,18 @@ void AISAPI::UpdateItem(const LLUUID &itemId, const LLSD &updates, completion_t
|
||||
boost::intrusive_ptr< AISCommand > responder = new AISCommand(UPDATEITEM, "UpdateItem",itemId, callback);
|
||||
responder->run(boost::bind(&LLHTTPClient::patch, url, updates, responder/*,*/ DEBUG_CURLIO_PARAM(debug_off), keep_alive, (AIStateMachine*)NULL, 0));
|
||||
}
|
||||
void AISAPI::InvokeAISCommandCoro(AISCommand* responder,
|
||||
void AISAPI::InvokeAISCommandCoro(LLHTTPClient::ResponderWithCompleted* responder,
|
||||
std::string url,
|
||||
LLUUID targetId, LLSD result, completion_t callback, COMMAND_TYPE type)
|
||||
{
|
||||
LL_DEBUGS("Inventory") << "url: " << url << LL_ENDL;
|
||||
|
||||
auto status = responder->getStatus();
|
||||
auto status = responder->getStatus();
|
||||
|
||||
if (!responder->isGoodStatus(status) || !result.isMap())
|
||||
{
|
||||
if (!result.isMap())
|
||||
{
|
||||
responder->malformedResponse();
|
||||
}
|
||||
else if (status == 410) //GONE
|
||||
{
|
||||
LL_WARNS("Inventory") << "Inventory error: " << status << ": " << responder->getReason() << LL_ENDL;
|
||||
if (status == 410) //GONE
|
||||
{
|
||||
// Item does not exist or was already deleted from server.
|
||||
// parent folder is out of sync
|
||||
@@ -360,11 +412,12 @@ void AISAPI::InvokeAISCommandCoro(AISCommand* responder,
|
||||
}
|
||||
}
|
||||
}
|
||||
// Keep these statuses accounted for in the responder too
|
||||
if (responder->onFailure()) // If we're retrying, exit early.
|
||||
return;
|
||||
if (!result.isMap())
|
||||
{
|
||||
LL_WARNS("Inventory") << "Inventory error: Malformed response contents" << LL_ENDL;
|
||||
}
|
||||
LL_WARNS("Inventory") << ll_pretty_print_sd(result) << LL_ENDL;
|
||||
}
|
||||
else responder->markComplete();
|
||||
|
||||
gInventory.onAISUpdateReceived("AISCommand", result);
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ private:
|
||||
static std::string getInvCap();
|
||||
static std::string getLibCap();
|
||||
|
||||
static void InvokeAISCommandCoro(class AISCommand* responder,
|
||||
static void InvokeAISCommandCoro(LLHTTPClient::ResponderWithCompleted* responder,
|
||||
std::string url, LLUUID targetId, LLSD body,
|
||||
completion_t callback, COMMAND_TYPE type);
|
||||
};
|
||||
|
||||
@@ -2010,7 +2010,7 @@ void LLFolderView::scrollToShowSelection()
|
||||
// However we allow scrolling for folder views with mAutoSelectOverride
|
||||
// (used in Places SP) as an exception because the selection in them
|
||||
// is not reset during items filtering. See STORM-133.
|
||||
if ( (!LLInventoryModelBackgroundFetch::instance().folderFetchActive() || mAutoSelectOverride)
|
||||
if ( (LLInventoryModelBackgroundFetch::instance().isEverythingFetched() || mAutoSelectOverride)
|
||||
&& mSelectedItems.size() )
|
||||
{
|
||||
mNeedsScroll = TRUE;
|
||||
|
||||
@@ -872,7 +872,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
|
||||
mCacheReadCount(0U),
|
||||
mCacheWriteCount(0U)
|
||||
{
|
||||
mCanUseNET = mUrl.empty() ;
|
||||
mCanUseNET = mUrl.empty() && !gHippoGridManager->getConnectedGrid()->isSecondLife();
|
||||
|
||||
if (!mCanUseNET)
|
||||
{
|
||||
@@ -1236,9 +1236,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
||||
if (mState == LOAD_FROM_NETWORK)
|
||||
{
|
||||
static LLCachedControl<bool> use_http(gSavedSettings,"ImagePipelineUseHTTP");
|
||||
bool is_sl = gHippoGridManager->getConnectedGrid()->isSecondLife();
|
||||
|
||||
// if (mHost != LLHost::invalid) use_http = false;
|
||||
if (use_http && mCanUseHTTP && mUrl.empty()) // get http url.
|
||||
if ((is_sl || use_http) && mCanUseHTTP && mUrl.empty()) // get http url.
|
||||
{
|
||||
LLViewerRegion* region = NULL;
|
||||
if (mHost == LLHost::invalid)
|
||||
@@ -1280,6 +1281,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
||||
mWriteToCacheState = CAN_WRITE;
|
||||
}
|
||||
if (!mUrl.empty() && SGHostBlackList::isBlacklisted(mUrl)){
|
||||
LL_DEBUGS("Texture") << mID << "Blacklisted" << LL_ENDL;
|
||||
mCanUseHTTP = false;
|
||||
}
|
||||
if (mCanUseHTTP && !mUrl.empty())
|
||||
@@ -1292,7 +1294,12 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
||||
}
|
||||
// don't return, fall through to next state
|
||||
}
|
||||
else if (mSentRequest == UNSENT && mCanUseNET)
|
||||
else if (!mCanUseNET)
|
||||
{
|
||||
LL_WARNS(LOG_TXT) << mID << "Unable to retrieve texture via HTTP and UDP unavailable (probable 404): " << mUrl << LL_ENDL;
|
||||
return true;
|
||||
}
|
||||
else if (mSentRequest == UNSENT)
|
||||
{
|
||||
LL_DEBUGS("Texture") << mID << " moving to UDP fetch. mSentRequest=" << mSentRequest << " mCanUseNET = " << mCanUseNET << LL_ENDL;
|
||||
setState(SEND_UDP_REQ);
|
||||
@@ -1821,6 +1828,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
|
||||
S32 discard = mHaveAllData ? 0 : mLoadedDiscard;
|
||||
U32 image_priority = LLWorkerThread::PRIORITY_NORMAL | mWorkPriority;
|
||||
mDecoded = FALSE;
|
||||
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
|
||||
setState(DECODE_IMAGE_UPDATE);
|
||||
LL_DEBUGS(LOG_TXT) << mID << ": Decoding. Bytes: " << mFormattedImage->getDataSize() << " Discard: " << discard
|
||||
<< " All Data: " << mHaveAllData << LL_ENDL;
|
||||
|
||||
@@ -9950,7 +9950,7 @@ You cannot copy your selection because the object '[OBJ_NAME]' is not transferra
|
||||
name="NoPermsNoRemoval"
|
||||
type="notify">
|
||||
<tag>fail</tag>
|
||||
Removal of the object '[OBJ_NAME]' from the simulator is disallowed by the permissions system.
|
||||
Removal of the object '[OBJ_NAME]' from the region is disallowed by the permissions system.
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
@@ -10221,7 +10221,7 @@ Unable to add script!
|
||||
name="AssetServerTimeoutObjReturn"
|
||||
type="notify">
|
||||
<tag>fail</tag>
|
||||
Asset server didn't respond in a timely fashion. Object returned to sim.
|
||||
Asset server didn't respond in a timely fashion. Object returned to region.
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
@@ -11694,7 +11694,7 @@ Media/audio URL blocked for [DOMAIN]
|
||||
name="RadarChatKeysRequest"
|
||||
type="alertmodal">
|
||||
An object owned by you has requested keys from your radar.
|
||||
Would you like to enable announcing keys to objects in the sim?
|
||||
Would you like to enable announcing keys to objects in the region?
|
||||
<usetemplate
|
||||
name="yesnocancelbuttons"
|
||||
yestext="Yes"
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
<button bottom_delta="0" left="146" height="16" width="16" follows="left|bottom" image_overlay="inv_folder_trash.tga" scale_image="true" label="" tool_tip="Delete the currently selected remembered login info, if any." name="remove_login"/>
|
||||
<check_box bottom_delta="0" left="173" control_name="RememberPassword" follows="left|bottom" height="16" label="Save password" name="remember_check" width="158"/>
|
||||
|
||||
<text name="fmod_text" value="Powered By" bottom="42" height="16" left="-425" width="84" follows="right|bottom" font="SansSerif" font_style="BOLD" font_size="Large"/>
|
||||
<icon name="fmod_logo" bottom_delta="-32" height="40" left_delta="84" width="152" follows="right|bottom" image_name="FMOD_Logo"/>
|
||||
<icon name="fmod_logo" bottom="10" height="40" left="-341" width="152" follows="right|bottom" image_name="FMOD_Logo"/>
|
||||
<text name="fmod_text" value="Powered By" bottom_delta="40" height="16" left_delta="36" width="84" follows="right|bottom" font="SansSerif" font_style="BOLD" font_size="Large"/>
|
||||
|
||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="45" drop_shadow_visible="true" follows="right|bottom"
|
||||
|
||||
@@ -115,8 +115,9 @@
|
||||
<spinner bottom_delta="0" decimal_digits="0" follows="top" height="16" increment="1" left_delta="210" max_val="9999" min_val="1" name="ScriptJumpCount" width="50" control_name="Ascentnumscriptdiff" tool_tip="Threshold for the script jump message [Default: 100]"/>
|
||||
<check_box bottom_delta="-20" left="10" follows="top" label="Restrained Love API Support (RLVa)" name="RestrainedLove" control_name="RestrainedLove" tool_tip="Allows scripts to take greater control of the viewer, if you wear compliant objects."/>
|
||||
<check_box bottom_delta="-20" follows="top" label="Replace slurls and formatted links with labels" name="SinguReplaceLinks" control_name="SinguReplaceLinks" tool_tip="While you can right click to see where they really lead by copying them, this does allow links to be misleading at first glance."/>
|
||||
<text name="EmergencyTeleportDesc" left="14" bottom_delta="-12" follows="top">Drop a landmark below to autoteleport there in the last 20 seconds before region restarts</text>
|
||||
<drop_target control_name="EmergencyTeleportLandmark" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_drop" width="430"/>
|
||||
<text name="EmergencyTeleportDesc" left="14" bottom_delta="-12" follows="top">Drop a landmark below to autoteleport to before region restarts</text>
|
||||
<spinner name="EmergencyTeleportSeconds" label="Seconds before restart to begin teleport attempts" label_width="380" width="432" control_name="EmergencyTeleportSeconds" bottom_delta="-26" decimal_digits="0" max_val="3600" min_val="0" follows="left|top" height="18" increment="1"/>
|
||||
<drop_target control_name="EmergencyTeleportLandmark" bottom_delta="-4" left="15" height="17" name="emergency_teleport_landmark_drop" width="430"/>
|
||||
<text name="EmergencyTeleportBackupDesc" halign="center" width="432" left="14" bottom_delta="-26" follows="top">Drop a backup landmark to autoteleport to below, should you already be at above</text>
|
||||
<drop_target control_name="EmergencyTeleportLandmarkBackup" bottom_delta="-8" left="15" height="17" name="emergency_teleport_landmark_backup_drop" width="430"/>
|
||||
</panel>
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
<column name="Owner" label="Propietario" tool_tip="Haz doble click en cualquier resultado para marcar su posición"/>
|
||||
<column name="Group" label="Grupo" tool_tip="Haz doble click en cualquier resultado para marcar su posición"/>
|
||||
</scroll_list>
|
||||
<button name="TP" label="TP"/>
|
||||
<button name="Look" label="Ver"/>
|
||||
<text name="counter">
|
||||
Listados/Pendientes/Total
|
||||
</text>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<menu label="Grupos" name="groups_menu">
|
||||
<menu_item_call label="Mostrar Perfil" name="show_group"/>
|
||||
<menu_item_call label="Mostrar Información del Grupo" name="show_group"/>
|
||||
<menu_item_call label="Abrir chat del grupo" name="im_group"/>
|
||||
<menu_item_call label="LLamar en el grupo" name="call_group"/>
|
||||
<menu_item_call label="Abrir chat del Grupo" name="call_group"/>
|
||||
<menu_item_call label="Activar Grupo" name="activate_group"/>
|
||||
<menu_item_call label="Hisotiral de chat" name="Chat History"/>
|
||||
<menu_item_call label="Historial de chat" name="Chat History"/>
|
||||
<menu_item_call label="Unirse al Grupo" name="join_group"/>
|
||||
<menu_item_call label="Abandonar el Grupo" name="leave_group"/>
|
||||
<menu_item_call label="Copiar Nombre" name="copy_name"/>
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<menu label="Propietario" name="Object Owner Submenu">
|
||||
<menu_item_call label="Perfil" name="Profile"/>
|
||||
<menu name="Acciones" label="Actions"/>
|
||||
<menu_item_call label="Pagar" name="Pay"/>
|
||||
<menu_item_call label="Mensaje Instantáneo" name="Instant Message"/>
|
||||
<menu_item_call label="Conferencia" name="Conference Chat"/>
|
||||
<menu_item_call label="Llamar" name="Call"/>
|
||||
<menu_item_call label="Llamar Conferencia" name="Conference Call"/>
|
||||
<menu_item_call label="Ofrecer Amistad" name="Add Friend"/>
|
||||
<menu_item_call label="Quitar Amistad" name="Remove Friend"/>
|
||||
<menu_item_call label="Invitar a un Grupo" name="Invite To Group"/>
|
||||
<menu_item_call label="Seguir" name="Follow"/>
|
||||
<menu_item_call label="Movea A" name="Move To"/>
|
||||
<menu_item_call label="Ofrecer Teleporte" name="Offer Teleport"/>
|
||||
<menu_item_call label="Teleportar A" name="Teleport To"/>
|
||||
<menu_item_call label="Solicitar Teleporte" name="Request Teleport"/>
|
||||
<menu_item_call label="Encontrar en el Mapa" name="Find on Map"/>
|
||||
<menu_item_call label="Compartir" name="Share"/>
|
||||
<menu_item_call label="Historial de Chat" name="Chat History"/>
|
||||
<menu_item_call label="Rastrear/No Rastrear" name="Track/Untrack"/>
|
||||
<menu name="Copiar" label="Copy"/>
|
||||
<menu_item_call label="Nombre" name="Copy Name"/>
|
||||
<menu_item_call label="SLURL" name="Copy SLURL"/>
|
||||
<menu name="Actions" label="Acciones">
|
||||
<menu_item_call label="Perfil Web" name="Web Profile"/>
|
||||
<menu_item_call label="Pagar" name="Pay"/>
|
||||
<menu_item_call label="Mensaje Instantáneo" name="Instant Message"/>
|
||||
<menu_item_call label="Conferencia" name="Conference Chat"/>
|
||||
<menu_item_call label="Llamar" name="Call"/>
|
||||
<menu_item_call label="Llamar Conferencia" name="Conference Call"/>
|
||||
<menu_item_call label="Ofrecer Amistad" name="Add Friend"/>
|
||||
<menu_item_call label="Quitar Amistad" name="Remove Friend"/>
|
||||
<menu_item_call label="Invitar a un Grupo" name="Invite To Group"/>
|
||||
<menu_item_call label="Seguir" name="Follow"/>
|
||||
<menu_item_call label="Mover A" name="Move To"/>
|
||||
<menu_item_call label="Ofrecer Teleporte" name="Offer Teleport"/>
|
||||
<menu_item_call label="Teleportar A" name="Teleport To"/>
|
||||
<menu_item_call label="Solicitar Teleporte" name="Request Teleport"/>
|
||||
<menu_item_call label="Encontrar en el Mapa" name="Find on Map"/>
|
||||
<menu_item_call label="Compartir" name="Share"/>
|
||||
<menu_item_call label="Historial de Chat" name="Chat History"/>
|
||||
<menu_item_call label="Rastrear/No Rastrear" name="Track/Untrack"/>
|
||||
</menu>
|
||||
<menu name="Copy" label="Copiar">
|
||||
<menu_item_call label="UUID" name="Copy Key"/>
|
||||
<menu_item_call label="Nombre" name="Copy Name"/>
|
||||
<menu_item_call label="SLURL" name="Copy SLURL"/>
|
||||
</menu>
|
||||
<menu_item_call label="Enfocar" name="Focus"/>
|
||||
<menu label="Moderación" name="Moderation" create_jump_keys="">
|
||||
<menu_item_call label="Silenciar" name="Mute"/>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<context_menu name="Url Popup">
|
||||
<context_menu label="Grupo" name="Url Popup">
|
||||
<menu_item_call label="Mostrar la información del grupo" name="show_group"/>
|
||||
<menu_item_call label="Abrir chat del grupo" name="im_group"/>
|
||||
<menu_item_call label="Llamar en el grupo" name="call_group"/>
|
||||
<menu_item_call label="Activar Grupo" name="activate_group"/>
|
||||
<menu_item_call label="Historial de Chat" name="Chat History"/>
|
||||
<menu_item_call label="Unirse al Grupo" name="join_group"/>
|
||||
<menu_item_call label="Abandonar el Grupo" name="leave_group"/>
|
||||
<menu_item_call label="Copiar el grupo al portapapeles" name="url_copy_label"/>
|
||||
<menu_item_call label="Copiar SLurl al portapapeles" name="url_copy"/>
|
||||
<menu_item_call label="Copiar Key al portapapeles" name="key_copy"/>
|
||||
<menu_item_call label="Copiar UUID al portapapeles" name="key_copy"/>
|
||||
<menu_item_call label="Seleccionar Todo" name="Select All"/>
|
||||
</context_menu>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<context_menu label="Propietario" name="Object Owner Submenu">
|
||||
<menu_item_call label="Enviar MI..." name="send_im"/>
|
||||
<menu name="Acciones" label="Actions">
|
||||
<menu name="Actions" label="Acciones">
|
||||
<menu_item_call label="Perfil" name="Profile"/>
|
||||
<menu_item_call label="Perfil Web" name="Web Profile"/>
|
||||
<menu_item_call label="Pagar" name="Pay"/>
|
||||
|
||||
@@ -135,7 +135,8 @@
|
||||
<spinner left_delta="270" name="ScriptJumpCount" tool_tip="Umbral para el mensaje de salto de scripts [Predeterminado: 100]"/>
|
||||
<check_box label="Soporte API Restrained Love (RLVa)" name="RestrainedLove" tool_tip="Permite a los scripts tomar control del visor, si tienes vestido un objeto compatible con RLVa."/>
|
||||
<check_box label="Reemplazar slurls y enlaces con etiquetas" name="SinguReplaceLinks" tool_tip="Si bien puedes hacer clic con el botón derecho para ver a dónde conducen realmente al copiarlos, esto puede hacer que los enlaces sean confusos a primera vista."/>
|
||||
<text name="EmergencyTeleportDesc" bottom_delta="-20" >Arrastra un hito para autoteleportarte en los últimos 20 segundos previos al reinicio de región</text>
|
||||
<text name="EmergencyTeleportDesc" bottom_delta="-20" >Arrastra un hito debajo para autoteleportarte antes del reinicio de la región</text>
|
||||
<spinner name="EmergencyTeleportSeconds" label="Comenzar intentos de teleporte antes del reinicio, en segundos"/>
|
||||
<drop_target name="emergency_teleport_landmark_drop" bottom_delta="-15" width="450"/>
|
||||
<text name="EmergencyTeleportBackupDesc" width="440" bottom_delta="-30" >
|
||||
Suelta aquí un hito de resguardo para autoteleportarte, si ya tienes uno en el ítem anterior</text>
|
||||
|
||||
Reference in New Issue
Block a user