XIV Dev Wiki
  • Welcome
  • Community Projects
  • Game Data
    • Visual Effects
      • AVFX Files
      • Global Parameters
      • Schedulers
      • Particles
      • Emitters
      • Timelines
      • Effectors
      • Binders
      • Object Life
    • File Formats
      • Excel
    • Character Data Files
      • Character Creator Preset
      • Character data folder
        • Chat Log (.log)
  • Data Files
    • ZiPatch
      • SQPK
    • SqPack
  • Network
    • Packet Structure
    • Channels
    • Ping
  • Game Internals
    • Actions
      • Animation Lock
    • World
      • Coordinate System
      • Weather
    • RSV
    • RSF
  • SqexArg
Powered by GitBook
On this page
  • Pseudocode
  • Links

Was this helpful?

Edit on GitHub
Export as PDF
  1. Game Internals

RSV

RSV is a placeholder value used for masking the actual value until the player is actually zoned in.

The packet sent from the server upon entering the instance is as follows:

// sent for each rsv string
struct RsvPkt {
  UInt32 value_size;    // len(without_nul_char(value))
  char key_str[32];     // null terminated
  char value_str[1024]; // null terminated
}

Pseudocode

void OnRsvPktreceived(RsvPkt pkt) {
  // e.g.) "_rsv_29752_-1_1_C0_0Action"
  var key = ReadCString(pkt.key_str);
  // e.g.) "Alternative End"
  var val = ReadCString(pkt.value_str);

  rsvMap[key] = val;
}

string GetActionName(int row) {
  var val = table[row, col];

  if (rsvMap.Contains(val)) {
    var key = val;
    return rsvMap[key];
  } else {
    return val;
  }
}

Links

PreviousWeatherNextRSF

Last updated 2 years ago

Was this helpful?

https://github.com/NotAdam/Lumina/blob/0530a97d21/src/Lumina/Excel/RSV/RsvProvider.cs