from otree.api import * c = cu doc = '' class C(BaseConstants): NAME_IN_URL = 'Payments' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): totalnumparticipants = models.IntegerField() first_third_end = models.IntegerField() second_third_start = models.IntegerField() second_third_end = models.IntegerField() first_third_start = models.IntegerField() def set_total_payoff(group: Group): session = group.session subsession = group.subsession for p in subsession.get_players(): p.payoff1 = p.participant.vars['BG_payoff'] p.payoff2 = p.participant.vars['DG_payoff'] - p.participant.vars['BG_payoff'] p.payoff3 = p.participant.vars['CRT_payoff'] - p.participant.vars['DG_payoff'] #p.total_payoff_ego = p.payoff1 + p.payoff2 p.total_payoff_ego = p.payoff1 + p.payoff2 + p.payoff3 p.participant.vars['total_payoff_ego'] = p.total_payoff_ego #p.payment = (p.total_payoff_ego * 0.03) + 3 + (p.payoff3 * 0.2) p.payment = (p.total_payoff_ego * 0.03) + 3 p.paymenteur = int(p.payment) Group.set_total_payoff = set_total_payoff class Player(BasePlayer): total_payoff_ego = models.CurrencyField() payoff1 = models.CurrencyField() payoff2 = models.CurrencyField() total = models.CurrencyField() rankpos = models.IntegerField() numpart = models.IntegerField() payment = models.CurrencyField() paymenteur = models.IntegerField() payoff3 = models.CurrencyField() class MyWaitPage(WaitPage): after_all_players_arrive = set_total_payoff class Risultati(Page): form_model = 'player' page_sequence = [MyWaitPage, Risultati]