mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-26 06:50:06 +00:00
Allow permanent vehicles
This commit is contained in:
parent
5f82658c8d
commit
f28c643b48
@ -1304,7 +1304,7 @@ void Database::removeExpiredVehicles(Player* player) {
|
|||||||
|
|
||||||
// if there are expired vehicles in bank just remove them silently
|
// if there are expired vehicles in bank just remove them silently
|
||||||
for (int i = 0; i < ABANK_COUNT; i++) {
|
for (int i = 0; i < ABANK_COUNT; i++) {
|
||||||
if (player->Bank[i].iType == 10 && player->Bank[i].iTimeLimit < currentTime) {
|
if (player->Bank[i].iType == 10 && player->Bank[i].iTimeLimit < currentTime && player->Bank[i].iTimeLimit != 0) {
|
||||||
memset(&player->Bank[i], 0, sizeof(sItemBase));
|
memset(&player->Bank[i], 0, sizeof(sItemBase));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1313,14 +1313,14 @@ void Database::removeExpiredVehicles(Player* player) {
|
|||||||
std::vector<sItemBase*> toRemove;
|
std::vector<sItemBase*> toRemove;
|
||||||
|
|
||||||
// equipped vehicle
|
// equipped vehicle
|
||||||
if (player->Equip[8].iOpt > 0 && player->Equip[8].iTimeLimit < currentTime) {
|
if (player->Equip[8].iOpt > 0 && player->Equip[8].iTimeLimit < currentTime && player->Equip[8].iTimeLimit != 0) {
|
||||||
toRemove.push_back(&player->Equip[8]);
|
toRemove.push_back(&player->Equip[8]);
|
||||||
player->toRemoveVehicle.eIL = 0;
|
player->toRemoveVehicle.eIL = 0;
|
||||||
player->toRemoveVehicle.iSlotNum = 8;
|
player->toRemoveVehicle.iSlotNum = 8;
|
||||||
}
|
}
|
||||||
// inventory
|
// inventory
|
||||||
for (int i = 0; i < AINVEN_COUNT; i++) {
|
for (int i = 0; i < AINVEN_COUNT; i++) {
|
||||||
if (player->Inven[i].iType == 10 && player->Inven[i].iTimeLimit < currentTime) {
|
if (player->Inven[i].iType == 10 && player->Inven[i].iTimeLimit < currentTime && player->Inven[i].iTimeLimit != 0) {
|
||||||
toRemove.push_back(&player->Inven[i]);
|
toRemove.push_back(&player->Inven[i]);
|
||||||
player->toRemoveVehicle.eIL = 1;
|
player->toRemoveVehicle.eIL = 1;
|
||||||
player->toRemoveVehicle.iSlotNum = i;
|
player->toRemoveVehicle.iSlotNum = i;
|
||||||
|
@ -839,7 +839,9 @@ void PlayerManager::revivePlayer(CNSocket* sock, CNPacketData* data) {
|
|||||||
void PlayerManager::enterPlayerVehicle(CNSocket* sock, CNPacketData* data) {
|
void PlayerManager::enterPlayerVehicle(CNSocket* sock, CNPacketData* data) {
|
||||||
Player* plr = getPlayer(sock);
|
Player* plr = getPlayer(sock);
|
||||||
|
|
||||||
if (plr->Equip[8].iID > 0 && plr->Equip[8].iTimeLimit>getTimestamp()) {
|
bool expired = plr->Equip[8].iTimeLimit < getTimestamp() && plr->Equip[8].iTimeLimit != 0;
|
||||||
|
|
||||||
|
if (plr->Equip[8].iID > 0 && !expired) {
|
||||||
INITSTRUCT(sP_FE2CL_PC_VEHICLE_ON_SUCC, response);
|
INITSTRUCT(sP_FE2CL_PC_VEHICLE_ON_SUCC, response);
|
||||||
sock->sendPacket((void*)&response, P_FE2CL_PC_VEHICLE_ON_SUCC, sizeof(sP_FE2CL_PC_VEHICLE_ON_SUCC));
|
sock->sendPacket((void*)&response, P_FE2CL_PC_VEHICLE_ON_SUCC, sizeof(sP_FE2CL_PC_VEHICLE_ON_SUCC));
|
||||||
|
|
||||||
@ -855,7 +857,7 @@ void PlayerManager::enterPlayerVehicle(CNSocket* sock, CNPacketData* data) {
|
|||||||
sock->sendPacket((void*)&response, P_FE2CL_PC_VEHICLE_ON_FAIL, sizeof(sP_FE2CL_PC_VEHICLE_ON_FAIL));
|
sock->sendPacket((void*)&response, P_FE2CL_PC_VEHICLE_ON_FAIL, sizeof(sP_FE2CL_PC_VEHICLE_ON_FAIL));
|
||||||
|
|
||||||
// check if vehicle didn't expire
|
// check if vehicle didn't expire
|
||||||
if (plr->Equip[8].iTimeLimit < getTimestamp()) {
|
if (expired) {
|
||||||
plr->toRemoveVehicle.eIL = 0;
|
plr->toRemoveVehicle.eIL = 0;
|
||||||
plr->toRemoveVehicle.iSlotNum = 8;
|
plr->toRemoveVehicle.iSlotNum = 8;
|
||||||
ItemManager::checkItemExpire(sock, plr);
|
ItemManager::checkItemExpire(sock, plr);
|
||||||
|
Loading…
Reference in New Issue
Block a user