У Вас отключён javascript.
В данном режиме, отображение ресурса
браузером не поддерживается
10%
forum name
тест, реал, сша

test ams

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » test ams » Тестовый форум » Общее


Общее

Сообщений 1 страница 10 из 10

1

ariana greenblatt — лэндон герлфренд
arón piper — лэндон
ben barnes — мамми
benjamin wadsworth — кико
bill skarsgård — иваня
charlie hunnam (Abraham Pierce) — иваня
christopher briney (Liam …) — дейка
christian yu — адриан
damian hardung (Christopher Robin Hartwell) — лето
deva cassel — лето
diana pozharskaya — иваня
dove cameron — нина
eiza gonzález — мамми
emily alyn lind — мамми
emma myers — иваня
gabriel guevara — нина бф
herman tomeraas — адри
ivan yankovsky — иваня
jenna ortega — кико
jessica alexander (Maeve Talbot) — иваня
josh heuston (Ethan Rivers) —  лето
kristine froseth — кико
lucy boynton — крис
nicholas hoult — иваня
noah sebastian — кико бф
sadie sink (Celeste Brooks) — дейка
theo james — дейка

abraham
celeste
christopher
ethan
liam
maeve


brooks
hartwell
pierce
rivers
talbot

paul mescal
daisy edgar-jones
Lee Know
Hwang Hyun-jin

Мамми потом поправит

Отредактировано ams (2025-11-15 20:16:57)

0

2

Банк
переработать

банк

На чем заработать:
◘ заполнение хронологии и отношений — 15 cr;
— за ведение данного раздела (после выяснения отношений / создания эпизода заполнили блок с краткой информацией) 5 cr;
◘ приглашение друга на форум — 50 cr (после его первого поста);
◘ написание заявки на нужного персонажа — 20 cr;
◘ забрать персонажа из темы "хочу к вам" (после первого поста) — 50 cr;
◘ попадание на доску почета месяца (в любой категории, начисляются автоматически) — 30 cr;
◘ создание нового личного эпизода (каждому участнику) — 20 cr (после написания поста в эпизоде);
◘ создание нового сюжетного эпизода (каждому участнику) — 25 cr (после написания поста в эпизоде);
◘ закрытый личный эпизод до 10 постов (каждому участнику) — 30 cr;
◘ закрытый личный эпизод от 10 постов (каждому участнику) — 50 cr;
◘ закрытый сюжетный эпизод от 5 постов (каждому участнику) — 60 cr;

◘ посты:
— до 4000 символов / пост в альтернативу — 20 cr;
— от 4000 до 7000 символов — 30 cr;
— от 7000 и выше — 40 cr;

◘ графика для игроков:
— аватар / гиф — 20 cr;
— комплект — 30 cr;
— парный комплект — 70 cr;
— реклама / эпиграф для форума — 90 cr;

◘ голосование в топах ежедневно в течение недели — 30 cr;
◘ первые 500 сообщений — 20 cr;
◘ последующие 500 сообщений — 10 cr;
◘ участие в квесте — 5 cr за каждый пост, плюс по завершению квеста, при условии, что доиграл до конца +30 cr;
◘ каждые 30 реклам форума — 5 cr;


На что потратить:
◘ смена внешности персонажа после начала игры — 500 cr;
◘ выкуп внешности для заявки на три недели (при условии наличия заявки) — 250 cr;
◘ выкуп внешности для твинка на 2 недели (нельзя выкупать более 3х раз подряд) — 300 cr;
◘ третий и последующие персонажи — 900 cr;
◘ заказ рекламы с нужным персонажем на 2 недели — 250 cr;
◘ реклама нужного персонажа в гостевой / футоре на 2 недели — 150 cr;
◘ выкуп ингредиента или трав — 150 cr;
◘ выкуп зелья — 650 cr;
◘ подарки — 60 cr;
◘ персональные подарки — 100 cr;

Ознакомиться и приобрести подарки / ингредиенты / зелья вы можете в этой теме.


Штрафы:
◘ долг (не написанный пост) в личный эпизод свыше 25 дней — 150 cr;
*по истечении срока в 25 дней с момента последнего поста игроку будет отправлено предупреждение, после которого у него есть возможность исправить ситуацию в течение недели. при условии исправления данная сумма кастар списана с его счета не будет. в ином случае:
— каждый последующий день просрочки будет стоить — 20 cr;
◘ долг в сюжетный личный эпизод свыше 35 дней — 200 cr;
*по истечении срока в 35 дней с момента последнего поста игроку будет отправлено предупреждение, после которого у него есть возможность исправить ситуацию в течение недели. при условии исправления данная сумма кастар списана с его счета не будет. в ином случае:
— каждый последующий день просрочки будет стоить — 30 cr;
◘ долг в квестовый эпизод свыше установленного очередностью срока при условии, что являетесь одной из центровых фигур — 200 cr + пропуск своей очереди в цепочке;
◘ за незаполненные отношения / хронологию в течение 30 дней — 100 cr;
*после создания эпизода необходимо обновить хронологию и отношения с персонажем в течение 30 дней. по истечении данного срока игроку, который не произвел обновления, будет отправлено предупреждение, после которого у него есть возможность исправить ситуацию в течение недели. в таком случае данная сумма кастар списана с его счета не будет. в ином случае:
— каждый последующий день просрочки будет стоить — 5 cr;

ВНИМАНИЕ:
— перевод денежных средств между твинками производится без налога.
— при переводе другому игроку взимается налог в размере 10% от суммы перевода (но не менее 20 cr); минимальная сумма для перевода дс 150 cr.


забрать cr.:


Код:
[b]за что:[/b] указываем ссылки
[b]сумма:[/b] (указываем сколько было и стало)

отдать cr.:


Код:
[b]за что:[/b] (указываем что приобретаете и ссылки на изображения при необходимости)
[b]общая стоимость:[/b] (указываем стоимость, сколько было и стало)

перевести cr.:


Код:
[b]кому:[/b] ссылка на профиль
[b]сколько:[/b] (указываем сумму перевода, сколько было и стало)

0

3

Магазин

0

4

Правила + фак

правила:
готовое

фак:
готовое

0

5

Система личной страницы

0

6

Путеводитель

по Англии

по Ирландии

0

7

название форума champagne
тематика / локация форума - реал-лайф; Англия + Ирландия

дизайн тест
дизайн основа
банковская система основа + магазин
— банковская система тест
правила + фак
твинки и чьи они (система учета) для амс
оформление анкет - иваня шаблоны (на доработку)
оформление тем нужные и ко - иваня шаблоны (на доработку)
оформление для новостей
оформление гостевой
оформление банка / магазина
— конкурсы (кп 30 дней) - иваня, но если будут идеи - накидывайте
придумать плюшки для профиля
— вступительные взносы (стартерпак) + система адаптации (дейка)
— структура (скелет) форума (ну вот все эти разделы с гостевой, организацией и пр.) + названия к ним (для теста и основы)
*категории на английском, названия подфорумов на русском. описания к ним можно на английском, можно на русском лето

смайлы / стикосы для общения (дейка)
оформление рекламы для теста
оформление рекламы для основы
орг аватары для теста
орг аватары для основы
оформление первых соо
личная страница
— текст для гостевой тест + основа лето
шаблоны для нужников, анкеты и ко - иваня шаблоны (на доработку)
путеводитель по странам и универам (матчасть по городу можно сделать типа «запрос в гугл: где я?»)
— акция "братство Тринити" (?)
шаблон эпизода на основу - иваня шаблоны (на доработку)
— занятость + учет персонажей по городам и странам
— краткое описание ко всем темам - лето
шаблон личного звания на основу - иваня шаблоны (на доработку)
социальная сеть
шаблон принятия
— графика для магазина - иваня
список достижений
оформление достижений
— зарегать топ
— внести в банк пункт про "это интересно"

0

8

на тест:
1 день:
просто набираем народ, флудим + реклама
1) пазлы с рекламой теста

2 день:
1) лотерея
2) путеводитель

3 день:
1) шаблон анкеты
2) упрощенный прием (домашние анкеты)
3) сбор эмоций для стикерпака

4 день:
1) банк для теста

5 день:
1) письма в бутылке
2) игра на интуицию

6 день:
написать себе письмо в будущее. (можно будет проанализировать, чего они ожидают от проекта, мб амс, игроков)

7 день:

0

9

[html]<!-- включено по умолчанию -->
<div id="nota-lottery" class="nota-lottery" data-used="1, 5, 6, 7, 8, 11, 10, 13, 16, 18, 21, 25, 26, 30, 38, 41, 49"></div>
<script>
(() => {
  const ROOT_ID = 'nota-lottery';
  const root = document.getElementById(ROOT_ID);
  if (!root) return;

  // ==== �� Настройки (меняй под себя) ====
  const TICKET_COUNT = 75;     // общее количество билетов
  const COLUMNS = 15;          // количество колонок в ряду
  const GRID_WIDTH = '970px';  // ЖЁСТКАЯ ширина сетки (пример: '900px', '100%', 'min(100%, 920px)')

  // Полные URL изображений (можно указывать с любых хостингов)
  const variantImages = [
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif'
  ];
  const usedImage = 'https://notafiles.ru/images/lottery/x.gif';

  const T = { gridCls:'nl-grid', ticketCls:'nl-ticket', numCls:'nl-num', usedCls:'used' };

  // ==== Стили ====
  (function injectStyles(){
    if (document.getElementById('nl-core-styles')) return;
    const css = `
      #${ROOT_ID}.{grid}{
        display:grid;
        grid-template-columns:repeat(${COLUMNS},minmax(0,1fr));
        gap:8px;
        width:100%;
        max-width:${GRID_WIDTH};
      }
      #${ROOT_ID} .${T.ticketCls}{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:4px;
      }
      #${ROOT_ID} .${T.ticketCls} img{
        width:100%;
        height:auto;
        display:block;
        user-select:none;
        -webkit-user-drag:none;
        opacity:0.7;
      }
      #${ROOT_ID} .${T.numCls}{
        display:block;
        font-size:12px;
        line-height:1;
        text-align:center;
      }
      #${ROOT_ID} .${T.ticketCls}.${T.usedCls} img{
        filter:grayscale(100%);
        opacity:.5;
      }
    `.replace('{grid}', T.gridCls);
    const st = document.createElement('style');
    st.id = 'nl-core-styles';
    st.textContent = css;
    document.head.appendChild(st);
  })();

  // ==== Утилиты ====
  const parseUsed = (str) => new Set(
    (str||'').split(/[,\s]+/).map(s=>s.trim()).filter(Boolean)
      .map(x=>parseInt(x,10)).filter(n=>Number.isInteger(n)&&n>=1&&n<=TICKET_COUNT)
  );
  const serializeUsed = (set) => Array.from(set).sort((a,b)=>a-b).join(', ');

  // Детерминированный выбор варианта по номеру
  const pickVariantIndex = (n) => {
    const len = Math.max(variantImages.length, 1);
    let x = (n * 9301 + 49297) % 233280;
    return x % len;
  };

  // ==== Построение ====
  root.classList.add(T.gridCls);
  const build = () => {
    root.innerHTML = '';
    const usedSet = parseUsed(root.getAttribute('data-used')||'');
    const frag = document.createDocumentFragment();
    for (let i = 1; i <= TICKET_COUNT; i++){
      const wrap = document.createElement('div');
      wrap.className = T.ticketCls;
      wrap.dataset.id = String(i);

      const img = document.createElement('img');
      if (usedSet.has(i)){
        img.src = usedImage;
        wrap.classList.add(T.usedCls);
      } else {
        img.src = variantImages[pickVariantIndex(i)];
      }
      img.alt = `#${i}`;

      const num = document.createElement('span');
      num.className = T.numCls;
      num.textContent = `#${i}`;

      wrap.appendChild(img);
      wrap.appendChild(num);
      frag.appendChild(wrap);
    }
    root.appendChild(frag);
  };
  build();

  // ==== API ====
  const API = {
    getUsed: ()=>Array.from(parseUsed(root.getAttribute('data-used')||'')).sort((a,b)=>a-b),
    setUsed: (val)=>{
      let set;
      if (val instanceof Set) set=val;
      else if (Array.isArray(val)) set=new Set(val.map(n=>parseInt(n,10)));
      else set=parseUsed(String(val||''));

      root.setAttribute('data-used', serializeUsed(set));
      root.querySelectorAll('.'+T.ticketCls).forEach(div=>{
        const id=parseInt(div.dataset.id,10);
        const img=div.querySelector('img');
        if(!img) return;
        if(set.has(id)){ div.classList.add(T.usedCls); img.src = usedImage; }
        else{ div.classList.remove(T.usedCls); img.src = variantImages[pickVariantIndex(id)]; }
      });
      return set;
    },
    toggle:(id)=>{
      const set=new Set(API.getUsed());
      id=parseInt(id,10);
      if(!Number.isInteger(id)||id<1||id>TICKET_COUNT) return set;
      if(set.has(id)) set.delete(id); else set.add(id);
      return API.setUsed(set);
    },
    serialize:()=>serializeUsed(new Set(API.getUsed()))
  };
  window.NL = API;
})();
</script>[/html]


Код:
<!-- включено по умолчанию -->
<div id="nota-lottery" class="nota-lottery" data-used="1, 5, 6, 7, 8, 11, 10, 13, 16, 18, 21, 25, 26, 30, 38, 41, 49"></div>
<script>
(() => {
  const ROOT_ID = 'nota-lottery';
  const root = document.getElementById(ROOT_ID);
  if (!root) return;

  // ==== �� Настройки (меняй под себя) ====
  const TICKET_COUNT = 75;     // общее количество билетов
  const COLUMNS = 15;          // количество колонок в ряду
  const GRID_WIDTH = '970px';  // ЖЁСТКАЯ ширина сетки (пример: '900px', '100%', 'min(100%, 920px)')

  // Полные URL изображений (можно указывать с любых хостингов)
  const variantImages = [
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif'
  ];
  const usedImage = 'https://notafiles.ru/images/lottery/x.gif';

  const T = { gridCls:'nl-grid', ticketCls:'nl-ticket', numCls:'nl-num', usedCls:'used' };

  // ==== Стили ====
  (function injectStyles(){
    if (document.getElementById('nl-core-styles')) return;
    const css = `
      #${ROOT_ID}.{grid}{
        display:grid;
        grid-template-columns:repeat(${COLUMNS},minmax(0,1fr));
        gap:8px;
        width:100%;
        max-width:${GRID_WIDTH};
      }
      #${ROOT_ID} .${T.ticketCls}{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:4px;
      }
      #${ROOT_ID} .${T.ticketCls} img{
        width:100%;
        height:auto;
        display:block;
        user-select:none;
        -webkit-user-drag:none;
        opacity:0.7;
      }
      #${ROOT_ID} .${T.numCls}{
        display:block;
        font-size:12px;
        line-height:1;
        text-align:center;
      }
      #${ROOT_ID} .${T.ticketCls}.${T.usedCls} img{
        filter:grayscale(100%);
        opacity:.5;
      }
    `.replace('{grid}', T.gridCls);
    const st = document.createElement('style');
    st.id = 'nl-core-styles';
    st.textContent = css;
    document.head.appendChild(st);
  })();

  // ==== Утилиты ====
  const parseUsed = (str) => new Set(
    (str||'').split(/[,\s]+/).map(s=>s.trim()).filter(Boolean)
      .map(x=>parseInt(x,10)).filter(n=>Number.isInteger(n)&&n>=1&&n<=TICKET_COUNT)
  );
  const serializeUsed = (set) => Array.from(set).sort((a,b)=>a-b).join(', ');

  // Детерминированный выбор варианта по номеру
  const pickVariantIndex = (n) => {
    const len = Math.max(variantImages.length, 1);
    let x = (n * 9301 + 49297) % 233280;
    return x % len;
  };

  // ==== Построение ====
  root.classList.add(T.gridCls);
  const build = () => {
    root.innerHTML = '';
    const usedSet = parseUsed(root.getAttribute('data-used')||'');
    const frag = document.createDocumentFragment();
    for (let i = 1; i <= TICKET_COUNT; i++){
      const wrap = document.createElement('div');
      wrap.className = T.ticketCls;
      wrap.dataset.id = String(i);

      const img = document.createElement('img');
      if (usedSet.has(i)){
        img.src = usedImage;
        wrap.classList.add(T.usedCls);
      } else {
        img.src = variantImages[pickVariantIndex(i)];
      }
      img.alt = `#${i}`;

      const num = document.createElement('span');
      num.className = T.numCls;
      num.textContent = `#${i}`;

      wrap.appendChild(img);
      wrap.appendChild(num);
      frag.appendChild(wrap);
    }
    root.appendChild(frag);
  };
  build();

  // ==== API ====
  const API = {
    getUsed: ()=>Array.from(parseUsed(root.getAttribute('data-used')||'')).sort((a,b)=>a-b),
    setUsed: (val)=>{
      let set;
      if (val instanceof Set) set=val;
      else if (Array.isArray(val)) set=new Set(val.map(n=>parseInt(n,10)));
      else set=parseUsed(String(val||''));

      root.setAttribute('data-used', serializeUsed(set));
      root.querySelectorAll('.'+T.ticketCls).forEach(div=>{
        const id=parseInt(div.dataset.id,10);
        const img=div.querySelector('img');
        if(!img) return;
        if(set.has(id)){ div.classList.add(T.usedCls); img.src = usedImage; }
        else{ div.classList.remove(T.usedCls); img.src = variantImages[pickVariantIndex(id)]; }
      });
      return set;
    },
    toggle:(id)=>{
      const set=new Set(API.getUsed());
      id=parseInt(id,10);
      if(!Number.isInteger(id)||id<1||id>TICKET_COUNT) return set;
      if(set.has(id)) set.delete(id); else set.add(id);
      return API.setUsed(set);
    },
    serialize:()=>serializeUsed(new Set(API.getUsed()))
  };
  window.NL = API;
})();
</script>

» основные фичи:
нет страданий с таблицей, использованные билеты просто вставляем в строку через запятую:
data-used="1, 5, 6, 7, 8, 11, 10, 13, 16, 18, 21, 25, 26, 30, 38, 41, 49">
остальные настройки также в шапке скрипта для удобства:
  // ==== �� Настройки (меняй под себя) ====
  const TICKET_COUNT = 75;     // общее количество билетов
  const COLUMNS = 15;          // количество колонок в ряду
  const GRID_WIDTH = '970px';  // ЖЁСТКАЯ ширина сетки (пример: '900px', '100%', 'min(100%, 920px)')

» Полные URL изображений (можно указывать с любых хостингов и сколько угодно изображений)
  const variantImages = [
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif',
    'https://notafiles.ru/images/lottery/1.gif'
  ];

» сюда подставляем заюзанный билетик
  const usedImage = 'https://notafiles.ru/images/lottery/x.gif';

Вставляем в теги хтмл и пользуемся❤️

0

10

айпи катя (даркмиона) 109.229.82.226 санто стефано moondurance@gmail.com (Псков)
89.23.157.75 (волгоградская) мб любаня

0


Вы здесь » test ams » Тестовый форум » Общее


Рейтинг форумов | Создать форум бесплатно