Someone please help me!

GunnuX
10 Feb 2022, 00:41

Someone please help me! My programming knowledge is beginner, I know the logic is right but they are running as I imagined.

I created a one called quarto, it has a desk container (named: biro), which contains a box (named: depositoplastico), inside the box has 2 items: maquinadeimpressaodecartaomagnetico, cabousb.
In another room, locked with a password, there is the object: pacotecomcartoesmagneticosvirgens.
On the desk (I named it: biro) there is the computer object. Computer i named it: computador.

Problem is in the interaction of these 4 elements: 1)maquinadeimpressaodecartaomagnetico; 2)cabousb; 3)pacotecomcartoesmagneticosvirgens; 4)computador

I created a verb for the "maquinadeimpressaodecartaomagnetico" object called "colocar" which has the following programming:
msg ("Você colocou a máquina de impressão de cartão magnético sobre o birô.")
MoveObject (maquinadeimpressaodecartaomagnetico, biro)

I created a verb for the "cabousb" object called "plugar" which has the following programming:
if (Contains (biro,maquinadeimpressaodecartaomagnetico)) {
cabousb.valor = true
MoveObject (cabousb, biro)
msg ("Você plugou com sucesso o cabo usb no PC e na máquina de impressão de cartão magnético.")
}
else {
msg ("A máquina de impressão de cartão magnético precisa está no birô.")
}

I created a verb for the "pacotecomcartoesmagneticosvirgens" object called "colocar" which has the following programming:
if (game.pov.parent = quarto) {
if (cabousb.valor = true) {
msg ("Você colocou um cartão magnético virgem na máquina de impressões de cartões magnéticos.")
pacotecomcartoesmagneticosvirgens.valor = true
}
else {
msg ("Falta plugar o cabo usb.")
}
}
else {
msg ("Eu não vejo a máquina de impressão de cartão magnético por perto.")
}

I created a verb for the "computador" object called "acionar" which has the following programming:

if (cabousb.valor = true) {
if (pacotecomcartoesmagneticosvirgens.valor = true) {
msg ("Plugado o cabo use e colocado o cartão magnético virgem na máquina de impressão de cartão magnético, você encontra o software para gravação do mesmo e olhando na opção de histórico de trabalhos, você encontra o último trabalho nomeado como: Chave Reserva. Você seleciona essa opção e preciona o botão de gravar... após 5 minutos, a máquina apita e você obtém um cartão magnético impresso chamado de Chave Reserva.")
MakeObjectVisible (chavereserva)
AddToInventory (chavereserva)
}
else {
msg ("Você não está com o pacote de cartões magnéticos virgens.")
}
}
else {
msg ("O cabo usb não esta plugado.")
}

Looking at the code of the verb "acionar", of the object "computador" , the game shows this result:
msg("Você não está com o pacote de cartões magnéticos virgens.")
for this to happen, the line of code "cabousb.valor = false", but that doesn't make sense!Because I already used the verb of "cabousb" before!

When I'm going to use the object verb "pacotecomcartoesmagneticosvirgens" this message is displayed: msg ("Eu não vejo a máquina de impressão de cartão magnético por perto.") let's look at the verb code associated with this object:
if (game.pov.parent = quarto) {
if (cabousb.valor = true) {
msg ("Você colocou um cartão magnético virgem na máquina de impressões de cartões magnéticos.")
pacotecomcartoesmagneticosvirgens.valor = true
}
else {
msg ("Falta plugar o cabo usb.")
}
}
else {
msg ("Eu não vejo a máquina de impressão de cartão magnético por perto.")
}
It makes no sense to return this message since I am in the room called quarto!!

My logic is right, I just don't understand what's wrong?! We just need to resolve this relationship between these objects to finish the development of this little adventure.


Deckrect
18 Feb 2022, 21:16

Está um pouquinho confuso, mas tem alguns detalhes aí que já dão algumas pistas.

Parece que o problema do cabo USB é que você está colocando a boolean dentro da condicional. Quando o jogador usar o verbo para conectar - contando que ele está no quarto - você tem que dar um set.cabousb = True. Aí sim a boolean se torna uma verdade.

Eu não entendi muito bem o segundo problema, mas talvez as coisas estejam acontecendo por causa das condicionais. Por exemplo, tem uma manha para colocar um IF dentro de outro. Se eles só vierem em sequência, a linguagem do Quest pára de testar as condições assim que uma delas é verdade. Logo, se você depende que duas condições sejam verdade, você precisa colocar um teste dentro de outro.

Eu estou vendo que você está fazendo um malabarismo com booleans e condicionais. E não tem nada de errado nisso. Prém, o Quest vem de fabrica com uns recursos de você poder usar um objeto em outro, o que pode te economizar algum código. Acho que vale a pena dar uma olhada nisso.


mrangel
18 Feb 2022, 23:58

I have previously responded to this exact question.

I suspect that this is a spambot reposting old questions; either that or the user decided to post the question again instead of looking at the answers they got last time.


Deckrect
19 Feb 2022, 09:28

Really?

I bet on the second hipotesys. I cannot understand why using a bot for this.

Thank you anyway.


mrangel
19 Feb 2022, 11:57

I cannot understand why using a bot for this.

We get a lot of them. There's a bot that creates accounts and reposts topics from a couple of weeks earlier. Once they have got replies and dropped off the front page, the post is edited to include links to some scam website. Moderators don't see it because it's an old post.

It's the same as posts that just say "Hi I'm new here" and one of the spaces is a link to some other site. Google gives the spammers' site a higher pagerank because a popular site contains links to them; so they want to drop links without people noticing.


mrangel
19 Feb 2022, 11:59

I can't actually find the earlier post of this one; but I remember it because I spent a lot of time with Google Translate, trying to understand what their code was supposed to do.


Cryophile
19 Feb 2022, 15:20

It's possible that the previous post was also a spam post and your reply was deleted alongside it. I don't like to do it, but if the bot changes the post after and there's no context for the response I sometimes just nuke the whole thing to keep the forums cleaner.

It's quite frustrating. I delete 5-10 spam posts almost every day, and sometimes they still get through. I guess the best you can do is ask for clarification from the OP if a post is suspicious before you put in the work.


Deckrect
20 Feb 2022, 10:48

It's weird, because the whole thing actually made sense.

The game's problem was about connecting componentes inside a specific room, so the player could print a copy of a security card.