﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Fri, 01 May 2026 05:23:12 GMT</lastBuildDate><ttl>20</ttl><item><title>Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35663.aspx</link><description>Hello,&lt;br/&gt;&lt;br/&gt;I hope this message finds you well. We are currently working on a research project at our university involving "Cyberball 5," and we are looking to create three Cyberball tasks for this study.&lt;br/&gt;&lt;br/&gt;To use fMRI in our research, we need to transition from mouse-click-based controls to keyboard controls entirely. However, we have encountered an issue when setting "validresponse=("4","9")" and "inputdevice=keyboard" in the "trial" section. It seems that when Player 2 throws the ball, it goes in the opposite direction and does not function correctly. (We want to configure it so that pressing the 4 key throws to Player 1, and pressing the 9 key throws to Player 3.)&lt;br/&gt;&lt;br/&gt;By the way, when we set the key for throwing to Player 3 as "validresponse=("E","I")," the ball is thrown correctly only to Player 3, and it works as expected. Any key other than "I" does not work correctly.&lt;br/&gt;&lt;br/&gt;Currently, the program looks like this:&lt;br/&gt;&lt;br/&gt;&amp;lt;trial npctrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = values.throw_to;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = (values.ball_at == 1) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = (values.ball_at == 2) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = (values.ball_at == 3) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = (values.ball_at == 4) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = (values.ball_at == 5) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = (values.ball_at == 6) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = (values.ball_at == 7) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = (values.ball_at == 8) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = (values.ball_at == 9) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 0){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.npcs.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = round(rand(1, 4)) * 1000;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.throw_to == values.ball_at){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.deprecated +=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = values.delay&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// handles the human player&lt;br/&gt;&amp;lt;trial player2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//catch&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 1;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ validresponse = ("4", "9", player4, player5, player6, player7, player8, player9)&lt;br/&gt;/ responsemessage = ("4", player1click, 100)&lt;br/&gt;/ responsemessage = ("9", player3click, 100)&lt;br/&gt;/ responsemessage = (player4, player4click, 100)&lt;br/&gt;/ responsemessage = (player5, player5click, 100)&lt;br/&gt;/ responsemessage = (player6, player6click, 100)&lt;br/&gt;/ responsemessage = (player7, player7click, 100)&lt;br/&gt;/ responsemessage = (player8, player8click, 100)&lt;br/&gt;/ responsemessage = (player9, player9click, 100)&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;if (trial.player2.response == 5)&amp;nbsp;&lt;br/&gt;  values.throw_to == 1&lt;br/&gt;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp; if (trial.player2.response == 10) /&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to == 3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// implements the throw animation&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = expressions.skip_player4pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = expressions.skip_player5pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = expressions.skip_player6pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = expressions.skip_player7pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = expressions.skip_player8pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = expressions.skip_player9pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow0, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow1, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow2, stats;  &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;700=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow3, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;800=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;We are running out of time and are in quite a predicament. Any help you can provide would be greatly appreciated. Thank you in advance.</description><pubDate>Tue, 10 Oct 2023 04:49:38 GMT</pubDate><dc:creator>periperiperika555</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35694.aspx</link><description>Dear Dave,&lt;br/&gt;&lt;br/&gt;Thank you for your prompt response! It seems I had misunderstood, and after understanding and making the necessary corrections, the program now works perfectly as intended. I sincerely appreciate you guiding me with the correct code. Thanks to you, we have successfully completed the program we wanted to create. I cannot express my gratitude enough. Thank you very much.&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;Saito</description><pubDate>Tue, 10 Oct 2023 04:49:38 GMT</pubDate><dc:creator>periperiperika555</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35693.aspx</link><description>&lt;blockquote data-id="35692" class="if-quote-wrapper" unselectable="on" data-guid="1696852200108" contenteditable="false" id="if_insertedNode_1696852199551"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35692" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35692" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35692" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 10/9/2023&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35692"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="35691" class="if-quote-wrapper" unselectable="on" data-guid="1696852200108" contenteditable="false" id="if_insertedNode_1696849417527"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35691" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35691" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35691" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;periperiperika555 - 10/7/2023&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35691"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello Dave,&lt;br/&gt;&lt;br/&gt;I hope you're well. I wanted to thank you for your advice yesterday. I tried implementing your suggestions, but now the game seems to go on forever and doesn't stop after one set. I've included the changes I made below. Could you please let me know if I've made the corrections correctly? I apologize for the multiple inquiries, and thank you for your assistance.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial npctrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = values.throw_to;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = (values.ball_at == 1) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = (values.ball_at == 2) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = (values.ball_at == 3) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = (values.ball_at == 4) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = (values.ball_at == 5) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = (values.ball_at == 6) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = (values.ball_at == 7) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = (values.ball_at == 8) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = (values.ball_at == 9) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 0){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.npcs.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = round(rand(1, 4)) * 1000;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.throw_to == values.ball_at){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.deprecated +=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = values.delay&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// handles the human player&lt;br/&gt;&amp;lt;trial player2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//catch&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ validresponse = ("4", "2", player4, player5, player6, player7, player8, player9)&lt;br/&gt;/ responsemessage = ("4", player1click, 100)&lt;br/&gt;/ responsemessage = ("2", player3click, 100)&lt;br/&gt;/ responsemessage = (player4, player4click, 100)&lt;br/&gt;/ responsemessage = (player5, player5click, 100)&lt;br/&gt;/ responsemessage = (player6, player6click, 100)&lt;br/&gt;/ responsemessage = (player7, player7click, 100)&lt;br/&gt;/ responsemessage = (player8, player8click, 100)&lt;br/&gt;/ responsemessage = (player9, player9click, 100)&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;if (trial.player2.response == 5) &lt;br/&gt;  values.throw_to = 1;&lt;br/&gt;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp; if (trial.player2.response == 3) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// implements the throw animation&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = expressions.skip_player4pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = expressions.skip_player5pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = expressions.skip_player6pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = expressions.skip_player7pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = expressions.skip_player8pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = expressions.skip_player9pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow0, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow1, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow2, stats;  &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;700=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow3, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;800=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BLOCKS&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions2&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions2&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball2&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block end&amp;gt;&lt;br/&gt;/ trials = [1=thankyou]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXPERIMENT &lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;// runs a game with the default parameter settings at the top of the script&lt;br/&gt;&amp;lt;expt default&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_sizes_and_positions;&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=generateschedule; 2=instructions; 3=cyberball; 4=instructions2; 5=cyberball; 6=end]&lt;br/&gt;/ groups = (1 of 5)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I appreciate your help and apologize again for any inconvenience.&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;Saito&lt;a class="if-quote-goto quote-link" href="#" data-id="35691"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Nowhere in that code do you include where you set values.stop back to false and values.throwcount back to 0, which are the relevant changes.&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="35692"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;The big mistake in the code you posted is that you do not ever increase the throwcount anymore, so the block has no way of knowing when to stop. You really need to fix that.&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;    values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;    values.throwcount += 0; // this is wrong; throwcount needs to be increased by 1 on every throw&lt;br/&gt;    if (values.ball_at == 2) {&lt;br/&gt;        values.player2thrown += 1;&lt;br/&gt;    };&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;[code]/ ontrialend = [&lt;br/&gt;    values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;    values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;    values.player2thrown += 1;&lt;br/&gt;    values.throwcount += 0; // this is wrong; throwcount needs to be increased by 1 on every throw&lt;br/&gt;]&lt;br/&gt;[/code]</description><pubDate>Mon, 09 Oct 2023 11:54:06 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35692.aspx</link><description>&lt;blockquote data-id="35691" class="if-quote-wrapper" unselectable="on" data-guid="1696849418458" contenteditable="false" id="if_insertedNode_1696849417527"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35691" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35691" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35691" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;periperiperika555 - 10/7/2023&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35691"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello Dave,&lt;br/&gt;&lt;br/&gt;I hope you're well. I wanted to thank you for your advice yesterday. I tried implementing your suggestions, but now the game seems to go on forever and doesn't stop after one set. I've included the changes I made below. Could you please let me know if I've made the corrections correctly? I apologize for the multiple inquiries, and thank you for your assistance.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial npctrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = values.throw_to;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = (values.ball_at == 1) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = (values.ball_at == 2) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = (values.ball_at == 3) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = (values.ball_at == 4) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = (values.ball_at == 5) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = (values.ball_at == 6) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = (values.ball_at == 7) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = (values.ball_at == 8) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = (values.ball_at == 9) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 0){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.npcs.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = round(rand(1, 4)) * 1000;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.throw_to == values.ball_at){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.deprecated +=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = values.delay&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// handles the human player&lt;br/&gt;&amp;lt;trial player2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//catch&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ validresponse = ("4", "2", player4, player5, player6, player7, player8, player9)&lt;br/&gt;/ responsemessage = ("4", player1click, 100)&lt;br/&gt;/ responsemessage = ("2", player3click, 100)&lt;br/&gt;/ responsemessage = (player4, player4click, 100)&lt;br/&gt;/ responsemessage = (player5, player5click, 100)&lt;br/&gt;/ responsemessage = (player6, player6click, 100)&lt;br/&gt;/ responsemessage = (player7, player7click, 100)&lt;br/&gt;/ responsemessage = (player8, player8click, 100)&lt;br/&gt;/ responsemessage = (player9, player9click, 100)&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;if (trial.player2.response == 5) &lt;br/&gt;  values.throw_to = 1;&lt;br/&gt;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp; if (trial.player2.response == 3) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// implements the throw animation&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = expressions.skip_player4pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = expressions.skip_player5pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = expressions.skip_player6pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = expressions.skip_player7pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = expressions.skip_player8pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = expressions.skip_player9pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow0, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow1, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow2, stats;  &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;700=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow3, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;800=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BLOCKS&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions2&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions2&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball2&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block end&amp;gt;&lt;br/&gt;/ trials = [1=thankyou]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXPERIMENT &lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;// runs a game with the default parameter settings at the top of the script&lt;br/&gt;&amp;lt;expt default&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_sizes_and_positions;&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=generateschedule; 2=instructions; 3=cyberball; 4=instructions2; 5=cyberball; 6=end]&lt;br/&gt;/ groups = (1 of 5)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I appreciate your help and apologize again for any inconvenience.&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;Saito&lt;a class="if-quote-goto quote-link" href="#" data-id="35691"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Nowhere in that code do you include where you set values.stop back to false and values.throwcount back to 0, which are the relevant changes.&lt;br/&gt;</description><pubDate>Mon, 09 Oct 2023 11:05:14 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35691.aspx</link><description>Hello Dave,&lt;br/&gt;&lt;br/&gt;I hope you're well. I wanted to thank you for your advice yesterday. I tried implementing your suggestions, but now the game seems to go on forever and doesn't stop after one set. I've included the changes I made below. Could you please let me know if I've made the corrections correctly? I apologize for the multiple inquiries, and thank you for your assistance.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial npctrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = values.throw_to;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = (values.ball_at == 1) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = (values.ball_at == 2) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = (values.ball_at == 3) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = (values.ball_at == 4) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = (values.ball_at == 5) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = (values.ball_at == 6) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = (values.ball_at == 7) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = (values.ball_at == 8) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = (values.ball_at == 9) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 0){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.npcs.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = round(rand(1, 4)) * 1000;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.throw_to == values.ball_at){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.deprecated +=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = values.delay&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// handles the human player&lt;br/&gt;&amp;lt;trial player2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//catch&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 0;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ validresponse = ("4", "2", player4, player5, player6, player7, player8, player9)&lt;br/&gt;/ responsemessage = ("4", player1click, 100)&lt;br/&gt;/ responsemessage = ("2", player3click, 100)&lt;br/&gt;/ responsemessage = (player4, player4click, 100)&lt;br/&gt;/ responsemessage = (player5, player5click, 100)&lt;br/&gt;/ responsemessage = (player6, player6click, 100)&lt;br/&gt;/ responsemessage = (player7, player7click, 100)&lt;br/&gt;/ responsemessage = (player8, player8click, 100)&lt;br/&gt;/ responsemessage = (player9, player9click, 100)&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;if (trial.player2.response == 5) &lt;br/&gt;  values.throw_to = 1;&lt;br/&gt;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp; if (trial.player2.response == 3) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// implements the throw animation&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = expressions.skip_player4pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = expressions.skip_player5pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = expressions.skip_player6pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = expressions.skip_player7pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = expressions.skip_player8pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = expressions.skip_player9pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow0, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow1, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow2, stats;  &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;700=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow3, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;800=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BLOCKS&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block instructions2&amp;gt;&lt;br/&gt;/trials = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1=instructions2&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball2&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block end&amp;gt;&lt;br/&gt;/ trials = [1=thankyou]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXPERIMENT &lt;br/&gt;**************************************************************************************************************&lt;br/&gt;**************************************************************************************************************&lt;br/&gt;// runs a game with the default parameter settings at the top of the script&lt;br/&gt;&amp;lt;expt default&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_sizes_and_positions;&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=generateschedule; 2=instructions; 3=cyberball; 4=instructions2; 5=cyberball; 6=end]&lt;br/&gt;/ groups = (1 of 5)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I appreciate your help and apologize again for any inconvenience.&lt;br/&gt;&lt;br/&gt;Best regards,&lt;br/&gt;Saito</description><pubDate>Sat, 07 Oct 2023 07:53:51 GMT</pubDate><dc:creator>periperiperika555</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35685.aspx</link><description>&lt;blockquote data-id="35684" class="if-quote-wrapper" unselectable="on" data-guid="1696592552248" contenteditable="false" id="if_insertedNode_1696592551912"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35684" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35684" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35684" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;periperiperika555 - 10/6/2023&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35684"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;br/&gt;Hello, Dave. &lt;br/&gt;&lt;br/&gt;May I ask another question? &lt;br/&gt;We are looking to program a Cyberball game with 30 throws in 4 sets, automatically repeating. However, currently, after one set, it goes to "trial.end," and we can't seem to run the 4 sets consecutively. &lt;br/&gt;We would like to have it in a pattern like &lt;br/&gt;&lt;br/&gt;"Cyberball game -&amp;gt; 10-second break -&amp;gt; Cyberball game -&amp;gt; 10-second break...". &lt;br/&gt;&lt;br/&gt;If we can achieve this, our experiment will be complete. Could you please assist us with this?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, pla……&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;……900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=instructions; 2=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball2&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=instructions2; 2=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block end&amp;gt;&lt;br/&gt;/ trials = [1=thankyou]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt default&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_sizes_and_positions;&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=generateschedule; 2=cyberball; 3=generateschedule; 4=cyberball2; 5=end]&lt;br/&gt;/ groups = (1 of 5)&lt;br/&gt;&amp;lt;/expt&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="35684"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;You need to set values.stop back to false and values.throwcount back to 0 between sets, e,g, /onblockbegin in &amp;lt;block generateschedule&amp;gt;,</description><pubDate>Fri, 06 Oct 2023 11:50:17 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35684.aspx</link><description>&lt;br/&gt;Hello, Dave. &lt;br/&gt;&lt;br/&gt;May I ask another question? &lt;br/&gt;We are looking to program a Cyberball game with 30 throws in 4 sets, automatically repeating. However, currently, after one set, it goes to "trial.end," and we can't seem to run the 4 sets consecutively. &lt;br/&gt;We would like to have it in a pattern like &lt;br/&gt;&lt;br/&gt;"Cyberball game -&amp;gt; 10-second break -&amp;gt; Cyberball game -&amp;gt; 10-second break...". &lt;br/&gt;&lt;br/&gt;If we can achieve this, our experiment will be complete. Could you please assist us with this?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, pla……&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;……900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=instructions; 2=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block cyberball2&amp;gt;&lt;br/&gt;/ stop = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop;&lt;br/&gt;]&lt;br/&gt;/ trials = [1=instructions2; 2=start]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block end&amp;gt;&lt;br/&gt;/ trials = [1=thankyou]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;expt default&amp;gt;&lt;br/&gt;/ onexptbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_sizes_and_positions;&lt;br/&gt;]&lt;br/&gt;/ blocks = [1=generateschedule; 2=cyberball; 3=generateschedule; 4=cyberball2; 5=end]&lt;br/&gt;/ groups = (1 of 5)&lt;br/&gt;&amp;lt;/expt&amp;gt;</description><pubDate>Fri, 06 Oct 2023 10:55:05 GMT</pubDate><dc:creator>periperiperika555</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35681.aspx</link><description>&lt;br/&gt;Dear Dave,&lt;br/&gt;&lt;br/&gt;Thank you so much for your guidance. Following your advice, I was able to rewrite it, and now it's working perfectly! It looks like my experiment is on track to succeed. I genuinely appreciate your help.</description><pubDate>Fri, 06 Oct 2023 06:50:03 GMT</pubDate><dc:creator>periperiperika555</dc:creator></item><item><title>RE: Cyberball 5 Keyboard Control Issue - Urgent Help Needed</title><link>https://forums.millisecond.com/Topic35666.aspx</link><description>&lt;blockquote data-id="35663" class="if-quote-wrapper" unselectable="on" data-guid="1696245694397" contenteditable="false" id="if_insertedNode_1696245693507"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35663" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35663" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35663" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;periperiperika555 - 9/30/2023&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35663"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello,&lt;br/&gt;&lt;br/&gt;I hope this message finds you well. We are currently working on a research project at our university involving "Cyberball 5," and we are looking to create three Cyberball tasks for this study.&lt;br/&gt;&lt;br/&gt;To use fMRI in our research, we need to transition from mouse-click-based controls to keyboard controls entirely. However, we have encountered an issue when setting "validresponse=("4","9")" and "inputdevice=keyboard" in the "trial" section. It seems that when Player 2 throws the ball, it goes in the opposite direction and does not function correctly. (We want to configure it so that pressing the 4 key throws to Player 1, and pressing the 9 key throws to Player 3.)&lt;br/&gt;&lt;br/&gt;By the way, when we set the key for throwing to Player 3 as "validresponse=("E","I")," the ball is thrown correctly only to Player 3, and it works as expected. Any key other than "I" does not work correctly.&lt;br/&gt;&lt;br/&gt;Currently, the program looks like this:&lt;br/&gt;&lt;br/&gt;&amp;lt;trial npctrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = values.throw_to;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = (values.ball_at == 1) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = (values.ball_at == 2) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = (values.ball_at == 3) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = (values.ball_at == 4) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = (values.ball_at == 5) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = (values.ball_at == 6) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = (values.ball_at == 7) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = (values.ball_at == 8) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = (values.ball_at == 9) + 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 0){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.npcs.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = round(rand(1, 4)) * 1000;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (values.throw_to == values.ball_at){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.deprecated +=1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.ball_at == 2) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = values.delay&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// handles the human player&lt;br/&gt;&amp;lt;trial player2&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.received_from = values.ball_at;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_offsets;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2received += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player1state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//catch&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2state = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player3state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player4state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player5state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player6state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player7state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player8state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player9state = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_at = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = substring(trial.player2.response, length(trial.player2.response)-1, 1);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.player2thrown += 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwcount += 1;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stats]&lt;br/&gt;&lt;br/&gt;/ validresponse = ("4", "9", player4, player5, player6, player7, player8, player9)&lt;br/&gt;/ responsemessage = ("4", player1click, 100)&lt;br/&gt;/ responsemessage = ("9", player3click, 100)&lt;br/&gt;/ responsemessage = (player4, player4click, 100)&lt;br/&gt;/ responsemessage = (player5, player5click, 100)&lt;br/&gt;/ responsemessage = (player6, player6click, 100)&lt;br/&gt;/ responsemessage = (player7, player7click, 100)&lt;br/&gt;/ responsemessage = (player8, player8click, 100)&lt;br/&gt;/ responsemessage = (player9, player9click, 100)&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;if (trial.player2.response == 5)&amp;nbsp;&lt;br/&gt;  values.throw_to == 1&lt;br/&gt;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp; if (trial.player2.response == 10) /&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to == 3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.throw;&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// implements the throw animation&lt;br/&gt;&amp;lt;trial throw&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = expressions.skip_player1pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = expressions.skip_player2pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = expressions.skip_player3pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = expressions.skip_player4pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = expressions.skip_player5pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = expressions.skip_player6pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = expressions.skip_player7pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = expressions.skip_player8pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = expressions.skip_player9pic;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_x = list.player_x.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throwingplayer_y = list.player_y.item(values.ball_at);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_x = list.player_x.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.receivingplayer_y = list.player_y.item(values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = values.receivingplayer_x;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expressions.set_throwoffset;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throwcount &amp;gt;= parameters.nthrows){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.stop = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player1.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player2.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player3.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player4.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player5.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player6.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player7.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player8.skip = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;picture.player9.skip = false;&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/ stimulustimes = [0=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow0, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;500=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow1, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;600=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow2, stats;  &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;700=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow3, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;800=clearscreen, player1, player2, player3, player4, player5, player6, player7, player8, player9, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1label, player2label, player3label, player4label, player5label, player6label, player7label, player8label, player9label, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player1avatar, player2avatar, player3avatar, player4avatar, player5avatar, player6avatar, player7avatar, player8avatar, player9avatar,&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;playerthrow4, stats; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;900=ball_to]&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ showmousecursor = false&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = 900 + expressions.throwduration&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the welcome message / instructions / game cover story&lt;br/&gt;&amp;lt;trial instructions&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, banner, logo, instructions, play]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial instructions2&amp;gt;&lt;br/&gt;/ stimulusframes = [1=getReady]&lt;br/&gt;/ trialduration = parameters.readyDuration&lt;br/&gt;/ beginresponsetime = parameters.readyDuration&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// displays the "Connecting to other players..." message and animation&lt;br/&gt;&amp;lt;trial start&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.npcs.reset();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.throw_to = list.throwschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.delay = list.delayschedule.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.realizedThrowSchedule = concat(values.realizedThrowSchedule, values.throw_to);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.ball_x = list.player_x.item(values.throw_to);&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearscreen, connectingmessage, connectinganimation]&lt;br/&gt;/ inputdevice = keyboard&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ trialduration = replace(5000,6000,7000)&lt;br/&gt;/ branch = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.throw_to == 2 &amp;amp;&amp;amp; !parameters.spectate){&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.player2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trial.npctrial;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;]&lt;br/&gt;/ recorddata = false&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;// end screen with exit button&lt;br/&gt;&amp;lt;trial thankyou&amp;gt;&lt;br/&gt;/ stimulusframes = [1=clearscreen, thankyoumessage, exit]&lt;br/&gt;/ validresponse = (lbuttondblclk)&lt;br/&gt;/ recorddata = false&lt;br/&gt;/ inputdevice = mousekey&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;We are running out of time and are in quite a predicament. Any help you can provide would be greatly appreciated. Thank you in advance.&lt;a class="if-quote-goto quote-link" href="#" data-id="35663"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;font face="Arial"&gt;&lt;br/&gt;&lt;/font&gt;[code]/ branch = [&lt;br/&gt; if (trial.player2.response == 5) &lt;br/&gt;values.throw_to == 1 // issue 1: wrong operator; issue 2: missing statement separator&lt;br/&gt; return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;  if (trial.player2.response == 10) /&lt;br/&gt;    values.throw_to == 3 // issue 1: wrong operator; issue 2: missing statement separator&lt;br/&gt;return trial.throw;&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;Your /branch logic in &amp;lt;trial player2&amp;gt; is wrong and broken.&lt;br/&gt;&lt;br/&gt;FIrst, == is the wrong operator; it's a comparison operator, not the assignment operator. If you want to set values.throw_to based on the player's response, you need =.&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/expressions/operators.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/expressions/operators.htm&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Second, you're missing the statement separator after setting values.throw_to.&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/current/html/language/expressions/operators.htm"&gt;https://www.millisecond.com/support/docs/current/html/language/expressions/operators.htm&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Expressed correctly, those branches ought to read&lt;br/&gt;&lt;br/&gt;[code]/ branch = [&lt;br/&gt;if (trial.player2.response == 5)&lt;br/&gt;values.throw_to = 1; // use assignment operator, separate statements properly&lt;br/&gt;return trial.throw;&lt;br/&gt;]&lt;br/&gt;/ branch = [&lt;br/&gt;if (trial.player2.response == 10) /&lt;br/&gt;values.throw_to = 3; // use assignment operator, separate statements properly&lt;br/&gt;return trial.throw;&lt;br/&gt;][/code]&lt;br/&gt;&lt;br/&gt;</description><pubDate>Mon, 02 Oct 2023 11:34:00 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>