新手玩家

- 贡献度
- 0
- 金元
- 130
- 积分
- 13
- 精华
- 0
- 注册时间
- 2021-6-13
|
gml_Object_o_player_KeyPress_112里添加
drawText = false;
if (global.floor_counter != 0)
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~不在地面上,无法传送。", [scr_id_get_name(5376)]));
instance_destroy(o_globalmap);
exit;
}
if (scr_getAgredMobsCount() > 0)
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~在战斗中,无法传送。", [scr_id_get_name(5376)]));
instance_destroy(o_globalmap);
exit;
}
var _closest_x = -1;
var _closest_y = -1;
var _min_distance = -1;
var _mark_type = "Flag";
var _playerGX = global.playerGridX;
var _playerGY = global.playerGridY;
if (variable_global_exists("tp_mark_type") && is_string(global.tp_mark_type) && global.tp_mark_type != "0")
_mark_type = global.tp_mark_type;
if (variable_global_exists("globalmapUserMarksList") && ds_exists(global.globalmapUserMarksList, ds_type_list))
ds_list_clear(global.globalmapUserMarksList);
with (o_globalmap)
{
with (marksContainer)
{
var _childCount = guiChildrenCount;
for (var _i = 0; _i < _childCount; _i++)
{
var _childIns = ds_list_find_value(guiChildrenList, _i);
with (_childIns)
{
if (object_index == o_globalmapMarkUser)
{
var _offX = guiLayoutOffsetLeft / global.glmapScale;
var _offY = guiLayoutOffsetTop / global.glmapScale;
ds_list_add(global.globalmapUserMarksList, sprite_get_name(sprite_index), image_index, _offX, _offY);
}
}
}
}
}
var _userMarksNumberFound = 0;
var _listSize = ds_list_size(global.globalmapUserMarksList);
var _Locations = ["Osbrook", "Mannshire", "Denbrie", "RottenWillow", "Homestead", "NewOrchard", "Winery", "BrynnSuburbs", "TheDrunkenWoodsmanTavern", "RoadsideInn", "CoalBurners", "OakenGrove", "OsbrookBrewery", "KendricksHomestead", "SouthernOutpost", "BridgeCamp", "RoadsideTower"];
for (var _i = 0; _i < _listSize; _i += 4)
{
var _sprName = ds_list_find_value(global.globalmapUserMarksList, _i);
var _gridX = ds_list_find_value(global.globalmapUserMarksList, _i + 2) div 52;
var _gridY = ds_list_find_value(global.globalmapUserMarksList, _i + 3) div 52;
if (_sprName != ("s_glmap_mark_user_" + _mark_type))
continue;
_userMarksNumberFound++;
var _dist = point_distance(_gridX, _gridY, _playerGX, _playerGY);
var _isValidTp = false;
var locName = scr_globaltile_get("Location", _gridX, _gridY, "N/A");
if (scr_array_get_index(_Locations, locName) != -1)
_isValidTp = true;
var dungeonID = scr_globaltile_get("dungeon", _gridX, _gridY, -1, global.globaltile_lookup_save);
if (dungeonID != -1)
_isValidTp = true;
if (_isValidTp && (_min_distance == -1 || _dist < _min_distance))
{
_min_distance = _dist;
_closest_x = _gridX;
_closest_y = _gridY;
}
}
if (_closest_x != -1 && _closest_y != -1)
{
if (_userMarksNumberFound > 1)
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~不知道要传送到~y~$~/~标记地点中的哪一个。", [scr_id_get_name(5376), _userMarksNumberFound]));
instance_destroy(o_globalmap);
exit;
}
var _tileOpen = scr_globaltile_get("isOpen", _closest_x, _closest_y);
if (_tileOpen)
{
var _locTitle = scr_glmap_getTitle(_closest_x, _closest_y);
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~要传送到~lg~$~/~。", [scr_id_get_name(5376), _locTitle]));
}
else
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~要传送到位于地图坐标~lg~($,$)~/~的未知区域。", [scr_id_get_name(5376), string(_closest_x), string(_closest_y)]));
}
global.playerGridX = _closest_x;
global.playerGridY = _closest_y;
var _dunCheck = scr_globaltile_get("dungeon", _closest_x, _closest_y, -1, global.globaltile_lookup_save);
global.position_tag = (_dunCheck == -1) ? "fasttravel" : "dungeonExit";
var travelDist = scr_tile_distance_xy(_playerGX, _playerGY, _closest_x, _closest_y, 1);
var skip_time = ceil(travelDist * 0.25);
var _targetRoom = scr_globaltile_get_room(_closest_x, _closest_y);
var _smoothChanger = scr_smoothRoomChange(_targetRoom, [4], room_speed / 2);
var _sleepCtrl = instance_create_depth(-50, -50, 0, o_sleepController);
with (_sleepCtrl)
{
smoothChanger = _smoothChanger;
sleepType = 12;
sleepHours = skip_time;
timeUpdate = true;
actionsLog = false;
}
}
else if (_userMarksNumberFound > 0)
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~标记的地点无法传送。", [scr_id_get_name(5376)]));
}
else
{
scr_actionsLogUpdate(scr_colorTextStringPlaceholdersReplace("~w~$~/~没有标记要传送的地点。", [scr_id_get_name(5376)]));
}
instance_destroy(o_globalmap);
打开地图右键旗帜标记后按f1可传送,传送时间在skip_time里,嫌长可以把数字改小 |
|