Jump to content

xhunterx

Uživatel
  • Příspěvků

    154
  • Registrován

  • Aktivní

  • Vítězných dnů

    13

Příspěvky posted by xhunterx

  1. Graf nieje prilis podstatny. Dolezitejsie je asi optimalizovat SQL. Ale este pred tym nez zacnes by si mohol pozriet nie len na % ale aj na average a worst time. To je cas, kolko trva vykonat tu funkciu. Ak sa ti server lagne raz za cas, moze to byt tym, ze sa nejaka funkcia vola malokedy (cize ma male %) ale trva dlho.

    Ak potrebujes optimalizovat SQL, tak skus vytvorit indexy, ak ich este nemas. Taktiez ak robis velke mnozstvo INSERT/UPDATE, tak pouzi transakciu. Ak vyhladavas, snaz sa vyhladavat podla veci, ktore su indexovane. To iste zoradovanie. (index v SQL je akysi zoradeny zoznam. Cize ak napriklad vytvoris index na tabulke hracov podla mena, tak sa ulozia abecedne zoradeny podla mena. Vdaka tomu sa v nich rychlejsie vyhladava hrac s urcitim menom a nieje nutne rucne zoradovat. To vyrazne zrychli vykonavanie db_query).

    PS: ale neprezen to s prilis vela indexmi, indexy zaberaju miesto a trochu spomaluju insert a update.

  2. Do pawna nic davat nemusis. Musis zapisat plugin do configu a pridat do configu nieco ako

     

    profile_gamemode 1
    profile_format html
    call_graph 0
    

    alebo

    profile_gamemode 0
    profile_filterscripts unit
    profile_format html
    call_graph 0
    

    Samozrejme "unit" nahrad za meno tvojho FS, ktory chces zmerat.

     

    Potom restartujes server, aby sa nacital plugin. Nechas server nejaku dobu bezat kym plugin ziskava data a potom ho musis vypnut normalnym sposobm (napriklad rcon exit), NIE TVRDO STLACENIM KRIZIKU!

    Ked server vypnes, v zlozke filterscripts resp gamemode sa ti objavi dalsi subor, ktory sa bude volat meno_scriptu.html   

     

    Tento subor otvor vo svojom internetovom prehliadaci a v nom su vsetky data, ktore plugin ziska.

  3. Problem je, ze listitem je typu _ a up_safe je typu propInfo. Tieto dva typy sa nedaju scitat. Staci pretypovat listitem.

     

    if (properties[players[playerid][current]][up_safe + propInfo:listitem] >= MAX_UPGRADE_VIP)
    

    Vdaka tomu sa daju scitat.

     

    Druha moznost je pretypovat up_safe na _.

    if (properties[players[playerid][current]][_:up_safe + listitem] >= MAX_UPGRADE_VIP)
    

    Tak ci tak musia byt rovnakeho typu.

    • Líbí se mi to! (+1) 1
  4. Nevšiml jsem si že jsi to tam napsal. Vtipný je že jsem udělal přesně to samý mezitim co jsem tu nebyl  až na to že v tom timeru nemám switch, je to tak, že když použiju switch timer se spustí pouze pro tento konkrétní case když player seberepickup?  A jak moc je důležitý rozdíl mezi SetTimer a SetTimerEx v tomto případě? Hádám že to souvisí s caseováním těch pickupů v timeru že? Hned jsem zpět.. 

     

     

    Rozdiel medzi SetTimer a SetTimerEx je, ze SetTimerEx ti da do publicu parametre. Cize do Ex som pridal 2 veci, prva je "i", coz oznacuje, ze ide o jeden ciselny parameter (i = integer = cele cislo). Napriklad "sii" by bol string a 2 cisla.

    Druha vec, ktoru som pridal je id pickupu, ktory hrac zobral, aby si v danom pickupe potom mal toto cislo pickupu a mohol vytvorit len ten jeden pickup. (aby sa nevytvorili vsetky naraz) Cize to cislo v tom SetTimerEx je ta premenna "id" v tom publicu timeru

     

    Nakoniec switch funguje rovnako ako if() else, cize

     

    switch(id) {

        case 1:

       case 2: 

       case 3:

    }

     

    je to iste ako

     

    if(id == 1)

    else if(id == 2)

    else if(id == 3)

     

    Iba je to rychlejsie (menej narocne na CPU, mensia casova zlozitost) a prehladnejsie.

  5. Okej dost bolo, teraz realne opraveny kod.

     

    new pPickup[4];
    
    forward mytimer(id);
    public mytimer(id) {
    	switch(id) {
    		case 1: if(pPickup[1] == -1) pPickup[1] = CreatePickup(1274,19,1492.1907,-1767.8684,18.7958,-1);
    		case 2: if(pPickup[2] == -1) pPickup[2] = CreatePickup(1212,19,1312.3002,-1006.9481,33.8984,-1);
    		case 3: if(pPickup[3] == -1) pPickup[3] = CreatePickup(1212,19,980.9848,-1064.0038,36.0387,-1);
    	}
    	return 1;
    }
    
    public OnGameModeInit() {
    	pPickup[1] = CreatePickup(1274,19,1492.1907,-1767.8684,18.7958,-1);
    	pPickup[2] = CreatePickup(1212,19,1312.3002,-1006.9481,33.8984,-1);
    	pPickup[3] = CreatePickup(1212,19,980.9848,-1064.0038,36.0387,-1);
    	return 1;
    }
    
    public OnPlayerPickUpPickup(playerid, pickupid) {
    	if(pickupid == pPickup[1]) DestroyPickup(pPickup[1]), GivePlayerMoney(playerid, 10000), SetTimerEx("mytimer", 1800000, false, "i", 1), pPickup[1] = -1;
    	if(pickupid == pPickup[2]) DestroyPickup(pPickup[2]), GivePlayerMoney(playerid, 10000), SetTimerEx("mytimer", 1800000, false, "i", 2), pPickup[2] = -1;
    	if(pickupid == pPickup[3]) DestroyPickup(pPickup[3]), GivePlayerMoney(playerid, 10000), SetTimerEx("mytimer", 1800000, false, "i", 3), pPickup[3] = -1;
    	return 1;
    }
    

    Problem je v tom, ze pokazde ked sa ti zavolal mytimer si vymenil premenne za novy pickup, ale neznicil tie stare. Cize ti ostali na rovnakom mieste 2 pickupy a ked si jeden z nich zdvihol, ten sa znicil ale druhy zostal.


    PS:

     

     

    1. Kto ta prosím učil robiť toto ?  if(pickupid == pPickup[1]) DestroyPickup(pPickup[1]),GivePlayerMoney(playerid, 10000),SetTimer("mytimer", 1800000, false);  Popravde som si myslel, že to máš niaku funkciu keď tam máš za každým príkazom "," , aj keď neviem či sa to tak môže robiť.

    Moze. A, B, C; je v pawne zlozeny vyraz, ktory returne hodnotu C. Cize napr "return func1(), func2();" ti vykona func1(), ptom func2() a returne hodnotu vratenu funkciou func2().
     

     

    2. DestroyPickup(pPickup[1]),GivePlayerMoney(playerid, 10000) Neviem či som až tak sprostý, alebo tam nevidím ukončenie príkazu s ";"

     
    Je to zlozeny vyraz, ; tam byt nemoze.

     

     

     

    3. Keď sa snažíš šetriť riadkami, sprav si to jednoducho takto:  if(pickupid == pPickup[1]) { DestroyPickup(pPickup[1]); GivePlayerMoney(playerid, 10000); SetTimer("mytimer", 1800000, false); }

     
    Taktiez moznost, ale zbyrocna, to co pouzil je dobre + sa s tym lepsie pracuje ak treba vracat hodnotu alebo nieco podobne.
     

     

    4. Vymažeš jeden pickup a vytvoríš 3 ďalšie ? Znova si pozri čo ti robí public mytimer. 

     
    Jop, presne toto je ten problem. Konkretne, ze tie 2 pickupy uz viac niesu ulozene v ziadnej premennej a preto sa nikdy nesmazu. Velmy podobne memory leaku v inych jazykoch.

    • Líbí se mi to! (+1) 4
  6. Prave som si vybral zo skrinky -100000000. Uplne divne hlasky ked zadam nieco chybne do prikazu typu "ERROR." No to mi pomohlo teda. Nejde mi odist zo zamestnania. Velmi vela veci, ktore by mali fungovat len na tlacitko + dialog ma prikaz zbytocne. Proste vojdem do pickupu, zmagnem F, tak nech sa zobrazi dialog ne? Naco mam pisat prikaz?

     

    Uprimne, pekna mapa, ale v PAWN ste moc dorby neni. 

    Taktiez by ste sa mali zamyslet, co sa bude u vas dat robit, ked nebude na servery dozorca. Spravte si aspon nejaky skill system, nech hraci mozu trenovat alebo daco.

    A nakoniec, neviem jak moc roleplay je fakt, ze si mam kupovat celu? Wut?

  7. Este tam medzi tym nema byt ciarka.

     

    "s[25]s[128]"
    


     

    Niekde som snaď čítal, že do SA-MPu sa aj tak nepripojíš s 24 znakovým Nickom, 

    To je pravda, na pripojenie je limit 20 znakov, ale na SetPlayerName je 24. A ak niekedy v buducnosti spravi [AFK] pred meno alebo nieco a bude mu to blbnut, tak sa mu to uz bude tazko vsade hladat.
  8. Ani jedno. Pravý hacker by o tom držel hubu, pač by si byl vědom, že je jeho činnost proti zákonná a určitě by se tím nikde nechlubil. 

    To je absolutne proti definicii gray hat. Precitaj si aspom ten link na wiki co som tam dal nes trepnes takuto sprostost a aj vela black hatov bere za hacky zodpovednost pod pseudonymom.

     

     

     

    BTW spíš by mě zajímalo co je "hackerské" na tom nahrávat data na poskytnuté FTP.

    Nic, ale boli tam aj DOSi aj cross-site scripty. To uz sa za hack povazovat da v urcitom slovazmysle.

     

     

    Upřímně spíš začneme něco dělat s "prezentacemi" nedodělků. Protože celé fungování takovýchto hostingů a podobných je celé pochybné. 80% data která by ti měli podle zákona předat ti nedají. Všechno se řeší. Jsme tu teprve 3 dny...    Upřímně kdyby toto dělal třeba wedos nebo jiné hostingy tak se na ně každej vykašle. Já chápu touhu mít vlastní [dopln co chces mít vlastní]. Taky jsem jeden čas měl vlastní samp hosting do kterého jsme vráželi peníze. Ale neměli jsme dostatek zkušeností jak s provozem tak s právními věcmi. To samé pop-corn.cz který jsem tu nedávno představoval. Bohužel jsem nebyl schopen uvést projekt do "legálního" provozu a tak jsme ho ukončili. Je super něco sám tvořit a snažit se vyřešit nějaký problém.    Ale je hloupost s nulovými zkušenostmi rozjíždět projekt rovnou v produkci a všechno řešit rovnou v produkci.      Kdyby celé to téma bylo pojaté jako betatest tak bych já a věřím že i tady Krudol poskytl debug informace a informace o chybá které jsme našli. Jako jsem pomáhal jednomu podobnému hostingu asi před měsícem.  Ale když každá odpověd u produkčního hostingu je "ještě to nemáme jsme tu 3 dny".....

    Uprimne suhlasim, netusil som, ze je hosting v tak zlom stave ked som k nemu prisiel. Znovu hovorim, s technickym fungovanim tam nemam nic.

     

     

    Ale sme trosku od temy. Nejde mi tu o to riesit konkretne IGHost ale skorej ma zaujima, co si myslite o "moralite" takychto "hackov". Je to dobre, pretoze zabrania tomu aby sa na tom napalili zakaznici, alebo to nieje prijatelne, pretoze sposobuju financnu skodu hostingu? Mali by taketo "prakticke ukazky" robit, alebo by mali len zodpovedne nahlasit problem?

  9. Přeji příjemný večer,

     

    Každý mi píše jaký z tebe mají respekt a podobně, ale tímhle co jsi právě zde dal jsi mě spíše rozesmál klidek.gif

     

    Nikdo bohužel nemůže za to, že si neumíte něco zabezpečit a když to uděláte, tak to obejde každý. 

     

    Přeji pěkný zbytek večera. boss.gif

     

    Prijemny vecer tiez, sorry za nedorozumenie ale toto nieje vobec staznost na tvoju osobu, tu by som smeroval priamo adminom, nie sem. Zaujima ma, aky maju ludia nazor na tento typ hackovania, ked ide viacmenej o ukazku, ale tato ukazka ma nicive dosledky pre napadnuty system.

     

    Co sa tyka IGhostu, som iba sucast podpory (tickety), nemam pristup k VPS, zdrojaku webu ani k nicomu podobnemu a nepovazujem sam seba za niekoho, kdo by za bezpecnost hostingu bol zodpovedny. Ani by som hosting v sucasnom stave nikomu nedoporucil. Prosim nehodnot moje schopnosti podla prace inych.

  10. Casove pasmo je proste pripocitanie x hodin. Bratislava je casove pasmo UTC+1 takze pripocitas jednu hodinu. Ked je letny cas, tak sme UTC+2, takze pripocitas 2 hodiny. A ano, zimny a letny cas su katastrofa...

    A spravu ti asi nepise preto, ze je prilis dlha. SendClientMessahe nemoze odoslat viac ako 144 znakov. Tam kde mas nove riadky \n miesto toho sprav novu spravu SCM.

×
×
  • Create New...