Skocz do zawartości

Jastrząb

Stały użytkownik
  • Postów

    57
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Jastrząb

  1. ASP.NET jest odpowiedzialne za tworzenie strony po stronie serwera więc technologia ta nie będzie tutaj zbytnio pomocna. Aby uzyskać powyższy efekt należy napisać skrypty JS które będą uruchamiane podczas ruchu myszy oraz kliknięcia.

  2. Na 90% oba sposoby (w tym konkretny przypadku) po skompilowaniu będą wyglądały w ten sam sposób (mam na myśli wynikowy kod maszynowy) - a to z prostego względu, tablice w sposobie 1 będą zajmowały ciągły obszar pamięci (stos) - tak samo jak w sposobie 2.

     

    Napisałeś że to program w c++, a jedyne z czego skorzystałes to strumienie i deklaracja zmiennych w środku funkcji.

     

    Osobiści wole "garbate" nazwy funkcji i zmiennych (podkreślniki używam w innych przypadkach np. w nazwach stałych),

    czyli napisałbym np. void WprowadzMacierz(int**, int, int);

    i z tego co obserwuje to jest to bardziej popularna praktyka - ale każdy pisze tak jak lubi (no chyba że pracuje w zespole :) ) - chciałem pokazać tylko inny sposób nazewnictwa

     

    Macierze mają stały rozmiar, przez co ograniczasz użytkownika do macierzy maksymalnie 10 x 10, użyłbym alokacji dynamicznej (new [] i delete [])

     

    (kmac) && (wmac) - miałeś chyba na myśli (kmac > 0) && (wmac > 0) - (kmac) zwróci true dla każdej wartości różnej od 0 (dla ujemnych również)

     

    Parametr int macierz[][10] zamieniłbym na int** macierz

     

    macC jest niepotrzebnie zerowana

     

    Jeżeli nie zależy Ci na zwróconej wartości podczas inkrementacji/dekrementacji "++"/"--", a jedynie dbasz o zmiane wartości zmiennej to zalecałbym stosowanie symbolu przed nazwa zmiennej (++zmienna), będzie szybcie (tutaj nie będzie widać różnicy, ale przy dużych obiektach i wielu operacjach da się to odczuć) - ! pamiętaj że zwrócone wartości się różnią i nie wszędzie da się to zastosować

     

    Działanie na macierzach napisałbym w formie klasy - jest to dużo czytelniejsza i wygodniejsza(pod każdym względem) forma

  3. jastrząb: jeszcze mu napisz jak zrobić wstrzyk do kernela albo hook's_hooka - polska szkoła hackerów czy co?

    Jeżeli na tym polega "hakierstwo" to 80% programistów "hakierami" jest.... c (ddk nie wspiera c++) i asm'a x86 większość programistów zna, więc napisanie programu trybu jądra nie powinno stanowić większego problemu, a hook? - jeden call lub dwa skoki z przywróceniem paru instrukcji - "hakierstwo na światową skale"
  4. Zależy na jakim etapie chcesz to monitorować i czy chcesz/możesz dokonywać modyfikacji plików tej gry.

    Tak na szybko co mi przychodzi do głowy to:

    Loader - sprawdzenie hasha i upewnienie się że gra odpala się przez loader

    Filtrowanie modułów procesu

    Filtrowanie wątków procesu

    Podpięcie swojego procesu jako debugger - /edit/ jedynie jeżeli chcesz komuś utrudnić "rozpracowywanie gry"

    Hook na OpenProcess i/lub WriteProcessMemory

     

    Oczywiście nie ma możliwości 100% ochrony, pozostaje jedynie kwestia pewnego utrudnienia/zniechęcenia lub przeciwnie zachęcenia jeżei ktoś lubi się w to bawić.

     

    Aha zakładam że mówimy o środowisku windows.

  5. 1. opis poszczegolnych wierszy jest zlaczeniem 2 kolumn z bazy - imie + nazwisko do 1 kolumny wiec sprawdzanie odpada bo nic nie znajdzie (chyba ze ktos ma pomysl zeby zrobic zeby bral np pare pierwszych znakow jednak w gruncie rzeczy takie rozwiazanie odpada).

    Nie jestem pewien czy dobrze zrozumialem ale masz w bazie 2 kolumny (Imie, Nazwisko) a w programi masz je polaczone (1 kolumna - "Imie i Nazwisko")

    Jezeli tak to spokojnie mozesz wysylac zapytania do bazy

    SELECT count(*) FROM(SELECT RTRIM(Imie) + ' ' + RTRIM(Nazwisko) AS 'ImieNazwisko' FROM tabela)QWHERE Q.ImieNazwisko = 'Jan Kowalski'
  6. po pobraniu porcji danych sprawdzaj stan strumienia przy uzyciu cin.good() lub cin.fail() (sa tez inne metody, ale te sa tutaj na miejscu), pierwsza z nich zwraca true gdy wszystko jest ok, druga gdy ustawiony jest bit bad lub fail. Po obsluzeniu bledu uzyj cin.clear() w celu zresetowania bitów stanu

     

    //...cin >> zmienna;if (!cin.good()) {printf("\nBlad");cin.clear();}//...
  7. Polska scena lezy - ok 5 aktywnych klanow

    Scena swiatowa sie trzyma dobrze, spokojnie mozna zagrac klanowki 5v5 po 19, pozatym ostatnio wzroslo zainteresowania z powodu turnieju na esl'u

     

    Linki do listy druzyn bioracych w nich udzial zamieszczam ponizej

     

    http://www.esl.eu/eu/wic/wc/5on5/pro_signu...base/members/*/

    http://www.esl.eu/eu/wic/wc/5on5/fun_signu...base/members/*/

     

    Jezeli interesuje Cie gra tylko na publicu (nie polecam) to tez nie ma problemu z serwerami, problem za to jest z poziomem gry na nich

     

    Spolecznosc jest dobrze nastawiona - nie ma chamstwa znanego z publicow CoD4 i CoHa (widzialem pare demek z nieciakawymi komentarzami) - wyjatki oczywiscie sie zdarzaja

     

    Btw ilosc rozgrywanych meczy dziennie mozna sledzic na stronie http://wictracker.com/24/ - notowane sa tutaj tylko mecze rankingowe, ok drugie tyle rozgrywane jest jako nierankingowe mecze na serwerach prywatnych lub tzw match mode

     

    btw

    w przeciagu miesiaca wychodzi dodatek i bedzie mozliwosc kupna podstawki z dodatkiem w zestawie

     

    btw2

    jezeli chcesz pograc duzo klanowek to z polskich klanow polecam klan g3686, wczesniej znany jako mushroomhead - obecnie graja tam gracze z mush i 2a

  8. Jedyne polskie forum WiCa ktore jeszcze istnieje to wic.gram.pl, ale chyba nikt tam nie zaglada

     

    Jezeli chodzi o jakas gre, to pisze sie na 4v4 i 5v5 :) - moj nick to Jastrzab lub obecnie czesciej uzywany °Hawk°

  9. Mam mała prosbe o 2 klucze trial, chcialbym wciagnac pare osob na multi ale potrzebuje dla nich zachety :)

    Jezeli ktos takowe posiada to prosilbym o PM

    Dziekuje

     

    Btw Massive zostalo wykupione przez Ubisoft razem z prawami do World in Conflict wiec dodatek powinien wyjsc na poczatku przyszlego roku

  10. Witam

     

    Mam takie pytanko, aby powyzszy kod quick sorta zmienic na quick sorta przez element losowy to wystarczy tylko zmienic podzial:= tab_sort[(Lewy + Prawy)div 2]; na Podzial:= tab_sort(random(lewy + prawy))?? bo dziala mi to dla tablicy do 5tys puzniej posortowanie trwa wieki. Musze posortowac tym tablice 250tys, a gdy ja zapuscilem to po 2 godzinach nadal program sortowal.

    jezeli dasz random(lewy+prawy) to zosatnie wylosowana liczba z zakresu od 0 do (lewy+prawy-1), wiec jezeli lewy wynosi 5 to moze trafic na liczbe x ktora nie spelnia warunku lewy<x<prawy

     

    btw

    jezeli stosujesz funkcje random to w programie musisz takze zastosowac procedure randomize (najlepiej ja dac w onCreate formy)

  11. sciagne sobie Delphi Personal to sprawdze ten algorytm co dalem, lecz niestety przy moim laczu zdaze chyba dopiero na poniedzialek/wtorek. Ponizej zamieszczam kod do genereacji ciag rowniez pisany z glowy

     

    for i:=0 to (ilosc_el div 2) do	   Tab[i]:=i;	   Tab[ilosc_el] := (ilosc_el div 2)+1;	   for j:=ilosc_el-1 downto (ilosc_el div 2)+1 do	   Tab[j]:=Tab[j+1]+1;
  12. a w ktorej linijce jest blad?

    Blad moze byc w pobraniu zmiennej przez funckej bo juz nie jestm pewny jak przekazywalo sie tablice w delphi

     

    ---edit---

    nie jestem pewny ale tablica ktora przekazujesz musi byc zmienna globalna, a jak nie to pokaz cale zrodlo

     

    ---edit2---

    poprawilem kod gdyz mial pare bledow, przekopij go jeszzce raz

  13. na szybko napialem funkcje, wiec moze zawierac bledy. Nie mam jej jak przetestowac bo narazie nie dysonuje srodowiskiem. Wszytsko pisane z glowy.

     

    function sortuj(var tabliczka : array of integer):boolean;	//tabliczka to tablica do wysortowaniavar  temp : array of integer;  i, k : integer;  pozycja : integer;begin  pozycja:= 0;  SetLength(temp, 1);  for i:= Low(tabliczka) to High(tabliczka) do	//sporzadzenie pomocniczej tablicy  begin	if Length(temp) < tabliczka[i]+1 then	begin	  SetLength(temp, tabliczka[i]+1);	  tabliczka[i] := 1;	end	else	Inc(temp[tabliczka[i]]);  end;  for i :=0 to High(temp) do			//wysortowanie  begin	if temp[i] > 0 then	for k:= 1 to temp[i] do	begin	  tabliczka[Low(tabliczka) + pozycja] := temp[i];	  Inc(pozycja);	end;  end;  if pozycja+1 = length(tabliczka) then		//True jezeli sie wszystko wysortowalo	Result:=True  else	Resul:=False;end;
  14. nie mam teraz zbytnio czasu na szczegoly ale takie szybkie pytania

    co to jest ilosc_el

     

    a z timerme to zorb tak ze ustaw interval na 500

    pod przycisk daj uruchomienie procedury sortujacej, oraz uruchomienie timera

    w prcedurze sortujacej daj jakas zmienna boolean ktora informuje o tym ze sortowanie sie skonczylo

    a w ontimer

    if koniec then Timer.Active:= false; //koniec to zmienna informujaca o koncu sortowania

     

    aha w ontimer musisz dac jeszcze zmienna integer ktora zlizca wystapienie tej procedury i na koniec mnozysz ilosc wystapien przez interval, dzielisz przez 1000 i masz czas w sekundach

     

    ps

    dlugo nic nie pialem to moga byc bledy a pisalem to z glowy

×
×
  • Dodaj nową pozycję...