Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Wykorzystanie JavaScript w motd na steam – lokalizacja gry , dostęp do plików


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.09.2014 11:31

*
Popularny

http://darkgl.amxx.pl/index.php/2014/09/04/wykorzystanie-javascript-w-motd-na-steam/

W jednej z aktualizacji CS 1.6 zmienione przeglądarkę używana w okienku motd ( widżet Internet Explorera ) na dużo nowocześniejszą.
Obsługującą JavaScript , daje nam to kilka ciekawych możliwości.

Sama przeglądarka posługuje się takim user agentem

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; Valve Half-Life/0; ) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/18.0.989.0 Safari/535.11
10_screenshots_2014-09-03_00010

User agent może być inny na innych komputerach.

Jednak widać ze gra korzysta tutaj z najnowszej wersji Chrome i Silnika WebKit co daje nam dostęp do JS i HTML5 ;).

Używając alert z javascript możemy uzyskać daw ciekawe efekty
Kiedy alert jest wyświetlany wraz z jakąś treścią np.
alert( 'Napis' )
10_screenshots_2014-09-03_00003

jednak użycie alert z pustym ciągiem znaków daje jeszcze ciekawszy efekt

alert( '' )
Untitled1231231312

Warto zauważyć że jest to osobne okno nie połączone z oknem cs'a które łapie focus i staje się aktywnym aktualnie oknem , w przeciwieństwie do alert z ciągiem znaków gdzie okno alertu jest wbudowane w gui gry.

I jeszcze confirm
confirm( 'test' )
10_screenshots_2014-09-03_00004

prompt nie udało mi się uruchomić

http://www.w3schools.com/js/js_popup.asp

warto zauważyć że wykorzystując alert możemy zmusić gracza do nie zamykania okna motd , po prostu trzeba wyświetlać ciągle alert za każdym razem kiedy gracz go zamknie , kiedy alert jest wyświetlany nie można zamknąć okna motd przyciskiem OK dopóki box alerta jest widoczny.

HTML5 oraz JavaScript posiada w sobie możliwości obsługi plików ( odczytywanie itp. ) tak zwany file api ( http://www.html5rocks.com/en/tutorials/file/dndfiles/ ).

Niestety mimo że JavaScript posiada w sobie obiekty

  • window.File

  • window.FileReader

  • window.FileList

  • window.Blob



To dodanie takiego kodu html


powoduje taki efekt

10_screenshots_2014-09-03_00011

dlatego nie możemy wybrać pliku do wczytania , warto zauważyć ze przy próbie wybrania pliku CS zaczynał dziwnie się zachowywać i musiałem restartować całego steam'a.

JavaScript pozwala na otwieranie nowy okien/kart poprzez window.open( http://www.w3schools.com/jsref/met_win_open.asp ) i to akurat działa co daje ciekawe efekty ;).

Kilka testowanych przeze mnie ustawień ( komentarze są specjalnie )
//var printOut = window.open("http://www.google.com","_blank", 'height=200, width=200');
			
//var printOut = window.open("http&://www.google.com","_parent", 'height=200, width=200');
			
//var printOut = window.open("http&://www.google.com","_self", 'height=200, width=200');
			
//var printOut = window.open("http&://www.google.com","_top", 'height=200, width=200');
			
//var printOut = window.open("http&:///www.google.com","asd", 'height=200, width=200');
			
//var printOut = window.open("http&://www.google.com","_blank", 'fullscreen=1');
Niestety przesuwanie itp. nie działa
printOut.moveTo(500, 100);
printOut.focus();
_blank daje ciekawy efekt w postaci nowego okna
10_screenshots_2014-09-03_00008
motd można wtedy zamknąć a okno zostaje
10_screenshots_2014-09-03_00006

10_screenshots_2014-09-03_00005

_parent , _self , _top i własna nazwa odswieża po prostu strone w standardowym miejscu w motd

10_screenshots_2014-09-03_00007

fullscreen=1
nie działało ale już ustawianie height i width tak

Wykorzystując JavaScript możemy też odczytać gdzie na dyskuj znajduje się jego folder gry poprzez
document.location
np.
2014-09-04_00001

Możemy też wysłać tą wartość do np. skryptu php przez otworzenie nowej karty sposobem wyżej( window.open ) z odpowiednimi parametrami GET.

Lub możemy użyć
<meta http-equiv="refresh" content="0;url=http://google.pl?test=1/">
lub iframe



Dzięki dostępowi JavaScript możemy też ładować JQuery
np.
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>


Niestety zapytania ajax nie działają.
Plugin którego używałem do testowania był bardzo prosty.
#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "DarkGL"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd( "say /testMotd" , "testMotd" );
}

public testMotd( id ){
	show_motd( id , "testMotdJavaScript.txt" , "Testowy motd" );
}

Wszystkie ustawienia pokazane w tym wpisie mogą dać inne efekty na innych komputerach.

  • +
  • -
  • 7

#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 04.09.2014 11:58

Dodam jeszcze jedną rzecz, silnik otwierający MOTD jest zaciągany bezpośrednio ze steama, czyli dokładnie na tym samym silniku otwierany jest sklep steam itp. Dlatego musiałeś zamknąć całego steama, aby przestał się "dziwnie" zachowywać (bo biblioteka była cały czas załadowana). A to jest potencjalnym exploitem ;)
  • +
  • -
  • 3

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 04.09.2014 12:09

Troche to wszystko działa w dziwny sposób nie do końca logiczny niektóre rzeczy są zablokowane niektóre nie a jak już są zablokowane to nie wpełni
  • +
  • -
  • 2

#4 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 01.10.2014 10:28

napisze ktoś mi cały kod html żeby tylko go wkleić do swojego pliku txt ?

 

chodzi mi o to 

10_screenshots_2014-09-03_00008-300x225.jpg


  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2014 14:23

var printOut = window.open("http://www.google.com","_blank", 'height=200, width=200');

wystarczy to w tagi script wrzucic


  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych