-
-
Notifications
You must be signed in to change notification settings - Fork 423
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Фикс блюспейс рюкзака и пересмотренное возвращение механики неисправности интерфейса #13724
base: master
Are you sure you want to change the base?
Conversation
Changelog status: ❌ Empty changelog (check markdown correctness) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
у тебя довольно странный нейминг функций (да и переменных, но бог с ними). Пиши лучше так, как написано в коде рядом, а рядом снейк кейс, соблюдай похожесть кода.
return | ||
|
||
return ..() | ||
/obj/item/weapon/storage/backpack/holding/proc/Make_Anomaly(delay_time, current_anomaly) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Функцию бы вызывать асинхронно, так как есть слип. А я не очень хочу, чтобы attackby и handle_item_insertion останавливались
@@ -49,17 +52,46 @@ | |||
max_w_class = SIZE_NORMAL | |||
max_storage_space = 56 | |||
|
|||
var/global/IsHoldingMalfunction = FALSE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не оч похоже на глобал
QDEL_NULL(warp) | ||
return ..() | ||
|
||
/obj/effect/anomaly/grav/process() // Спасибо ДаркВотеру |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У нас принято писать комменты на инглише
@@ -28,6 +28,9 @@ | |||
S.opened = !S.opened | |||
|
|||
/obj/item/weapon/storage/backpack/attackby(obj/item/I, mob/user, params) | |||
if(I == src) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это как
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, NoUpdate = FALSE) | ||
. = ..() | ||
if(W == src) | ||
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У нас принято писать комменты на инглише
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, NoUpdate = FALSE) | ||
. = ..() | ||
if(W == src) | ||
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хотя бы честно. А теперь разберись или пробуй без этого костыля
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Как вообще можно вставить свой же рюкзак в рюкзак?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
баг причиной которого и стал пр, если Е прожать с открытым блюспейс рюкзаком и занятым слотом спины рюкзак исчезнет, а экшен меню с которым можно взаимодействовать останется
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Крч, вестимо нужно не ЭТО делать, а тыкнуть куда-то проверку в /mob/living/carbon/human/verb/quick_equip(), чтобы нельзя было положить себя в себя
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его | ||
to_chat(usr, "<span class='red'>Рюкзак засасывается сам в себя и исчезает.</span>") | ||
return | ||
if(istype(W, /obj/item/weapon/storage/backpack/holding/) && !IsHoldingMalfunction && !(W == src)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if(istype(W, /obj/item/weapon/storage/backpack/holding/) && !IsHoldingMalfunction && !(W == src)) | |
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !IsHoldingMalfunction && !(W == src)) |
var/obj/effect/anomaly/anomaly = new current_anomaly(targloc) | ||
IsHoldingMalfunction = TRUE | ||
sleep(delay_time) | ||
anomaly.Destroy() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
anomaly.Destroy() | |
qdel(anomaly) |
Для любого удаления чего-то используй qdel()
/obj/item/weapon/storage/backpack/holding/proc/Adjust_Malfunction_Global_Timer() | ||
var/timer = 30 MINUTES | ||
for(timer) | ||
timer -= 1 SECOND | ||
if(!timer) | ||
IsHoldingMalfunction = FALSE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?????????????????????????????????
Ты в курсе, что оно сработает практически мгновенно?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Что это и зачем? Если хочешь IsHoldingMalfunction = FALSE сетать, то просто перенесни к тому слипу в Make_Anomaly
return | ||
|
||
return ..() | ||
/obj/item/weapon/storage/backpack/holding/proc/Make_Anomaly(delay_time, current_anomaly) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А еще, грав аномалия как-то скучно, надо бы че-то пожосче
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, NoUpdate = FALSE) | ||
. = ..() | ||
if(W == src) | ||
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его | ||
to_chat(usr, "<span class='red'>Рюкзак засасывается сам в себя и исчезает.</span>") | ||
return | ||
if(istype(W, /obj/item/weapon/storage/backpack/holding/) && !IsHoldingMalfunction && !(W == src)) | ||
to_chat(usr, "<span class='red'>The Bluespace interfaces of the two devices conflict and malfunction.</span>") | ||
Make_Anomaly(150 SECONDS, /obj/effect/anomaly/grav) | ||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, NoUpdate = FALSE) | |
. = ..() | |
if(W == src) | |
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его | |
to_chat(usr, "<span class='red'>Рюкзак засасывается сам в себя и исчезает.</span>") | |
return | |
if(istype(W, /obj/item/weapon/storage/backpack/holding/) && !IsHoldingMalfunction && !(W == src)) | |
to_chat(usr, "<span class='red'>The Bluespace interfaces of the two devices conflict and malfunction.</span>") | |
Make_Anomaly(150 SECONDS, /obj/effect/anomaly/grav) | |
return | |
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, NoUpdate = FALSE) | |
. = ..() | |
if(W == src) | |
Destroy() // каким-то образом удаляет экшен меню при попытке воспроизвести баг и фиксит его | |
to_chat(usr, "<span class='red'>Рюкзак засасывается сам в себя и исчезает.</span>") | |
return FALSE | |
if(istype(W, /obj/item/weapon/storage/backpack/holding/) && !IsHoldingMalfunction && !(W == src)) | |
to_chat(usr, "<span class='red'>The Bluespace interfaces of the two devices conflict and malfunction.</span>") | |
Make_Anomaly(150 SECONDS, /obj/effect/anomaly/grav) | |
return FALSE | |
return TRUE |
Описание изменений
fix #13547 Помимо простого и неочевидного фикса бага с невидимым блюспейс рюкзаком теперь создает аномалию при засовывании блюспейс рюкзака в рюкзак. Также во время попыток создать рабочую аномалию пофикшен баг при котором свойства аномалии проявляются лишь раз при спавне, а не каждый тик
Почему и что этот ПР улучшит
Исправляет баги и возвращает старую механику в менее грифозном виде
Авторство
hyda, danistans
Чеинжлог
🆑 HyDa, Danistans