Перейти к содержимому


save suiseiseki v1.0


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 47

#41 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 28 June 2015 - 17:24

Просмотр сообщенияJamsMor (28 June 2015 - 16:47) писал:

if(href_list["ready"])
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME) // Make sure we don't ready up after the round has started
ready = text2num(href_list["ready"])
else
ready = 0

Соответственно, любой кто правильно сделает бьёндоссылку уровня byond://ip;действие может сделать себе декларчик. Или не себе.

И я так на грине делал, да.
Чтобы не себя декларить, надо знать "номер" другого пользователя.
Скрытый текст

#42 JamsMor

JamsMor

    Заслуженный космонавт

  • Employee
  • 616 сообщений
  • Byond:JamsMor
  • Discord:JamsMor#1622
  

Отправлено 28 June 2015 - 17:29

Просмотр сообщенияtizit (28 June 2015 - 17:24) писал:

Чтобы не себя декларить, надо знать "номер" другого пользователя.

Этот номер достаточно легко узнать.

#43 Name

Name

    2D-космонавтик

  • Employee
  • 66 сообщений

Отправлено 28 June 2015 - 18:30

сейчас главная проблема это то, что у демонов нет анимации спокойствия, они всегда бегут, а еще по хорошему нужно выпилить возможность обсерватся в начале игры.

#44 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 28 June 2015 - 18:41

Просмотр сообщенияName (28 June 2015 - 18:30) писал:

сейчас главная проблема это то, что у демонов нет анимации спокойствия, они всегда бегут, а еще по хорошему нужно выпилить возможность обсерватся в начале игры.
Фикс обсерва:

Перемести
output += "<p><a href='byond://?src=\ref[src];observe=1'>Observe</A></p>"
в else, чтобы было
 
/mob/new_player/proc/new_player_panel()

		var/output = "<center><p><a href='byond://?src=\ref[src];show_preferences=1'>Setup Character</A></p>"

		if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
				if(ready)
						output += "<p>\[ <b>Ready</b> | <a href='byond://?src=\ref[src];ready=0'>Not Ready</a> \]</p>"
				else
						output += "<p>\[ <a href='byond://?src=\ref[src];ready=1'>Ready</a> | <b>Not Ready</b> \]</p>"

		else
				output += "<p><a href='byond://?src=\ref[src];manifest=1'>View the Crew Manifest</A></p>"
				output += "<p><a href='byond://?src=\ref[src];late_join=1'>Join Game!</A></p>"
				output += "<p><a href='byond://?src=\ref[src];observe=1'>Observe</A></p>"


Скрытый текст

#45 Name

Name

    2D-космонавтик

  • Employee
  • 66 сообщений

Отправлено 28 June 2015 - 19:09

щас подниму, баг поймал один уже фикснул

#46 tizit

tizit

    /\_/\

  • Employee
  • 3244 сообщений

Отправлено 28 June 2015 - 19:20

Я немного объясню, чтобы было понятно, как оно работает. Сматри.

Есть var/output, туда записывается то, что будет показываться в том мальком окошке.

Окошко запиливается через html. Тег <center> значит, что надписи будут центрироваться в окошке. Тег <p> определяет элемент, внутри которого может что-то находится: ссылки, картинки, текст и т.д. Все эти надписи обернуты в <p>, чтобы тег <center> работал с элементами, а не с надписями.

Каждый элемент представляет из себя ссылку <a>. href= - адрес ссылки, в данном случает адрес выглядит как byond://[тут уникальный номер игрока]:[переменная]. То что находится между <a> и </a> отображается как надпись, по которой можно кликнуть, чтобы перейти по ссылке. Сама ссылка находится в открывающем теге <a>, и как я уже написал, ссылка находится в href='ссылка'.

Когда ты заходишь на сервер первый раз за раунд, для тебя построчно выполнятся код, который находится по адресу
/mob/new_player/proc/new_player_panel()

Сначала в окошко добавляется надпись
Setup Character
Со ссылкой
href='byond://?src=\ref[src];show_preferences=1'
Потом выполнение останавливается на if
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
Я точно не знаю что тут за переменные, но суть в том, что если раунд ещё не начался, то выполняется код который идёт сразу после if, если раунд уже идёт, то выполняется код, который идёт после else.

Давай посмотрим, что будет, если раунд ещё не начался, т.е. начинает выполнятся код, который идёт сразу после if.
if(ready)
output += "<p>\[ <b>Ready</b> | <a href='byond://?src=\ref[src];ready=0'>Not Ready</a> \]</p>"
else
output += "<p>\[ <a href='byond://?src=\ref[src];ready=1'>Ready</a> | <b>Not Ready</b> \]</p>"
Тут есть проверка if. Ready - переменая в которой хранится 0 или 1. Изначально там 0, т.к. ты зашел первый раз за раунд. Т.е. будет выполнятся код после else.
Если ты нажмешь ссылку Ready, то на на сервур будет отправлено ready=1, что ты типо готов. Если нажать на Not ready, то на сервур отправится ready=0, ты уже не готов.

Потом начнет выполняться следующая часть кода.
output += "<p><a href='byond://?src=\ref[src];observe=1'>Observe</A></p>"
Она добавляется в окошко ссылку Observe.

Нооо. Если ты зашел после начала раунда, то при первой проверке код перейдет к else и в твоё окошко не будут добавлены ссылки ready и not ready, зато будет выполнен следующий код.
output += "<p><a href='byond://?src=\ref[src];manifest=1'>View the Crew Manifest</A></p>"
output += "<p><a href='byond://?src=\ref[src];late_join=1'>Join Game!</A></p>"
Он добавит тебе в окошко ссылки View the Crew Manifest и Join Game!
И потом, опять же, будет выполнен код
output += "<p><a href='byond://?src=\ref[src];observe=1'>Observe</A></p>"

Чтобы кнопка обсерв была только тогда, когда раунд уже начался, нужно добавить её в блок else проверки на начало раунда.
Скрытый текст

#47 Name

Name

    2D-космонавтик

  • Employee
  • 66 сообщений

Отправлено 29 June 2015 - 05:01

Спасибо, на самом деле лучше удалить саму кнопку, что я и сделал.

#48 MasterOfDmx

MasterOfDmx

    Power Flame

  • Employee
  • 1542 сообщений
  • Byond:MasterOfDmx
  • Discord:discord.gg/Xtpqk5W
  • ГородКоторого Нет.
     

Отправлено 02 July 2015 - 10:50

Просмотр сообщенияName (29 June 2015 - 05:01) писал:


Сегодня поднимешь?


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных