Jump to content

The hidden face

Uživatel
  • Příspěvků

    810
  • Registrován

  • Aktivní

  • Vítězných dnů

    22

Příspěvky posted by The hidden face

  1. Není to třeba tím, že při každém spawnu spouštíte další timer? V průběhu hry pak bude na každého hráče x timerů, ale v proměnné budete mít jen jeden, který pak killnete.

     

    hallo.gif  to mě vůbec nenapadlo.. věnoval jsem se jen uvěznění po připojení, na to že se vykoná On..Spawn po SetPlayerPos jsem jak si nepomyslel. icon_e_wink.gif hallo.gif

  2. Opravil jsem to tím, že timer zabíjím v OnPlayerSpawn. Nedokážu pochopit proč se timer po odpojení nezabije a po dalším připojení jede po dvou sekundách (2x rychleji), dokonce se to po dalším připojení navyšuje (vždy se spustí znovu) .. což odpovídá tomu, že se Timer neukončí... zajímavé je i to, že pokud server mezitím vypnu a pak se připojím s nedokončeným odpočítáváním zase to je po 2 sekundách...

     

    Vypadá to, jako by se buď Killnul špatný timer (jiná proměnná), nebo se špatnou hodnotou id, nebo kdyby se zapínal ještě někde před OnSpawnem.. Ovšem celý kód jsem prohledal na SetTimerEx a nikde navíc tam není, stejně tak se zabíjí i správny timer s nikde nepřehranou hodnotou... :( 

  3. Spravil som to tak,ako si mi písal ale stále mi to nefunguje proste dám jail niekomu ide to úplne v pohode ale keď sa ten hráč odpojí a následne pripojí,tak ten textdraw ide po 2 sekundách napríklad to nejde 1.58,1.57 ale 1.58,1.56 a takto a keď sa mi odpyká trest tak stále píše Odpykal si si trest a stále ma to spawnuje....

     

    Jestli můžeš pošli mi ten fs, gm či co to je do pm ;) 

  4. gangzone = GangZoneCreate(zonax1, zonay1, zonax2, zonay2);
    

    Měl jsi tam špatně 3. parametr - v max X jsi měl min X, takže na ose X má 0 velikost, což nejde moc vykreslit... icon_e_wink.gif

     

    Asi bych to ještě upravil:

    new vytvaraniezony;
    new Float:zona[ 2 ][ 3 ]; // [0 = 1. hráčovi pozice, 1 = 2. hráčovi pozice] [0 = x, 1 = y, 2 = z]
    new gangzone;
    new zoneid = -1;
    #define MAX_ZONE 200
    
    //príkaz
    
    CMD:createzone(playerid, params[])
    {
        if(!IsPlayerAdmin(playerid)) return 0;
        if(zoneid == MAX_ZONE-1) return SendClientMessage(playerid,-1,"Vyčerpalo sa miesto pre zóny");
        if(vytvaraniezony == 0)
        {
        GetPlayerPos(playerid, zona[0][0],zona[0][1],zona[0][2]);
        SendClientMessage(playerid, 0xFF0000FF, "[ ! ] {FFFFFF}Teraz zadaj príkaz v opačnom rohu zóny");
        vytvaraniezony = 1;
        }
        else
        {
        GetPlayerPos(playerid, zona[1][0],zona[1][1],zona[1][2]);
        gangzone = GangZoneCreate(zona[0][0], zona[0][1], zona[1][0], zona[1][1]); //hore mám zadefinovanú premennu a tu máme, že sa ta nová zona rovná tej premennej
        zoneid++;
        GangZoneShowForAll(gangzone,0xD50000FF); tu to chce GangZoneShowForAll( ZONA, farba);, takže farba je dobre a tu zonu sme definovali vyššie, takže neviem. Ak je chyba niekde inde, tak určite ocením upozornenie
        vytvaraniezony = 0;
        new string[128];
        format(string, sizeof(string), "Vytvoril si zónu ID:%i", zoneid);
        SendClientMessage(playerid, 0xFFFFFFFF,string);
        }
        return 1;
    }
    
  5.  

    Pri odpojaní zrušíš (zabiješ) timer, potom keď sa pripojí, najlepšie keď sa spawne, tak spustíš timer a nastavíš textdraws.

     

    takže,

     

    nastavíš mu ten čas, kt. máš uložený, potom dáš funkciu, keď ten čas vo väzení je väčší než 0, tak mu spustí timer, ukáže TD a potom ho portne do väzenia.

    Rád by som ti dal nejaký pomocný kód, lenže ty to máš pomocou dini.inc čo som nikdy nepoužival.

    To posledné si nevšímaj, hneď ti sem niečo hodím na pomoc

    takže ten tvôj problém v tom, že ťa stále portuje a píše, že si si odpykal trest, tak tu máš riešenie
    public vazenie(playerid)
    {
        if(jail[playerid] > 0) // keď je menšie ako 0, čo je keď ti vyprší čas, tak keď bude 0, tak ťa portne a timer pokračuje, takže ide na -1, -2, -3 ... až neviem kam, takže, ak je čas rovný 0, tak to spravý a už ťa nebude portovať
        //takže nie if(jail[playerid] > 0), ale použi "=", že je rovný 0 ten čas if(jail[playerid] = 0)
    	{
    		 new string[128];
    		 format(string,sizeof(string),"%s",TimeConvert(jail[playerid]));
    		 jail[playerid] --;
    		 PlayerTextDrawSetString(playerid,VazenieTimer[playerid][0],string);
    	}
    	else
    	{
    		  SendClientMessage(playerid,COLOR_RED,"Odpykal si si trest");
    		  KillTimer(vazenietimer[playerid]);
    		  SetPlayerInterior(playerid,0);
    		  SetPlayerPos(playerid,1109.2490,-1796.0345,16.5938);
    		  PlayerTextDrawHide(playerid,VazenieTimer[playerid][0]);
    		  PlayerTextDrawHide(playerid,VazenieTimer[playerid][1]);
    	}
    	return 1;
    }
    	
    
    
    

     

    Za

    1.) To co píšeš už psal, že to tam dávno má... 

    2.) Vysvětluješ to špatně, tady chyba rozhodně není... Všimni jsi znaménka ( jail > 0) - větší jak 0. On potřebuje, aby se mu ten čas odečítal pokud je větší než 0, pokud není (takže se rovná 0, nebo je menší než 0), tak se vykoná else, což ho propustí... Kdyby tam dal jail = 0, tak je to prvně špatně kvůli tomu, že jsi v podmínce, takže (==) a za druhé by jsi z funkčního kódu udělal nefunkční (celé by to pracovalo obráceně - pokud by byl zatčený, tak by ho to pustilo a pokud by zatčený nebyl (==0), tak by mu to odečetlo čas (pouze jednou...)...  

    stock TimeConvert(time) {
        new minutes;
        new seconds;
        new string[128];
        if(time > 59){
            minutes = floatround(time/60);
            seconds = floatround(time - minutes*60);
            if(seconds>9)format(string,sizeof(string),"%d:%d",minutes,seconds);
            else format(string,sizeof(string),"%d:0%d",minutes,seconds);
        }
        else{
            seconds = floatround(time);
            if(seconds>9)format(string,sizeof(string),"0:%d",seconds);
            else format(string,sizeof(string),"0:0%d",seconds);
        }
        return string;
    }
    

    toto

    A zistil som ešte chybu,že keď sa mi odpyká trest tak mi stále píše Odpykal si si trest a stále ma to portuje na tú istú pozíciu.

     

     

    V tomhle chyba teda není, zkus to předělat, jak jsem ti to poslal a pak napiš, jestli to jde... icon_e_wink.gif

     

    Pokud ti to dělá tohle, tak špatně zabíjíš timer... hlídej si jestli nepracuješ se špatným id...

  6. Aha, tak to jsem tě špatně pochopil, myslel jsem, že se ti odečítají 2 sekundy v jeden moment... 

     

    Btw. nechápu proč txd s časem na uvěznění zobrazuješ adminovi, co ho uvěznil... 

     

    Rozhodně jelikož budeš mít duplicitní kód bych si udělal metodu Uvezni s parametrem pro hráčovo id, kde budeš zobrazovat txd, nastavíš pozici a interier, atd.

    forward Uvezni(playerid);
    public Uvezni(playerid)
    {
        SetPlayerInterior(playerid,3);
        SetPlayerPos(playerid,198.3796, 160.8905, 1003.03);
        PlayerTextDrawShow(playerid,VazenieTimer[playerid][0]);
        PlayerTextDrawShow(playerid,VazenieTimer[playerid][1]);
        vazenietimer[playerid] = SetTimerEx("vazenie",1000,true,"i",playerid);
    
        return 1;
    }
    

    Pak bych to už volal jen kde je třeba:

    CMD:jail(playerid,params[])
    {
        new id,dovod[225],minuty,string[128];
        if(AdminLevel[playerid] < 2)return SendClientMessage(playerid,COLOR_RED,"[!] {FFFFFF}Nemáš oprávnenie na tento príkaz");
        if(sscanf(params,"uis[225]",id,minuty,dovod))return SendClientMessage(playerid,COLOR_RED,"[!] {FFFFFF}Musíš zadat /jail [ID] [Cas v minutách] [Dôvod]");
         if(jail[id] > 0)return SendClientMessage(playerid,COLOR_RED,"[!] {FFFFFF}Tento hrác už je vo väzení");
    	
        format(string,sizeof(string),"%s{FF3300}%s(ID:%d) ťa dal do väzenia na %i minút [Dôvod: %s]",GetPlayerAdminTitle(playerid),Meno(playerid),playerid,minuty,dovod);
        SendClientMessage(id,COLOR_RED,string);
    
        jail[id] = 60*minuty;
        Uvezni(playerid);
    
        return 1;
    }
    
    //OnPlayerSpawn
    if(jail[playerid] > 0){
        Uvezni(playerid);
    }
    

    Jinak žádnou chyby v kódu co se týče času nevidím... Hoď jsem ještě tu funkci TimeConvert... icon_e_wink.gif

  7. Pokud má každý admin svoje vozidlo / více vozidel, tak si vytvoř pole s rozsahem MAX_PLAYERS nebo pole polí při čemž velikost pole v poli bude počet maximálních aut, kolik si bude moct každý admin vytvořit. Pokud chceš, aby to auto mohl používat každý, tak si vytvoř pole pouze s počtem maximálních aut (rádoby serverovou proměnnou pro admin vozidla), udělej si metodu (příkazy) na vytváření aut, kdy budeš muset zjistit volný index. A samozřejmě do toho vozidla, jehož id je uložené v poli pod nějakým indexem ho potom hodíš. ;) 

  8. Tak mám snáď zapojiť celý kolektív do pawna nech odpovedajú na vaše otázky? Ja odpovedať na všetko nestíham, ráno tu bolo 55 odpovedí teraz je 70 či koľko...

     

    Nemusíš zapojit celý kolektiv.. Stačí když mu na ně odpovíš ty, bez tak to jsou otázky, na které dokáže odpovědět spíše jen vedení... Ale je to tvoje věc, a tvůj topic.. i když ti to možná na první pohled nepřijde Ingnition se ti snaží jen pomoct a navést Vaší "korporaci" správným směrem, aby jste v budoucnu neměli zbytečné problémy... To, že s ním já v něčem nesouhlasím, nemusí nutně znamenat, že nemá pravdu a já jo, nebo obráceně, je to jen věc názorů nebo nedostatku mých informací, přeci jenom nemám asi takový přehled jako on, jen mi nějaké věci přijdou nejasné a nesrozumitelné, když se kouknu, jak na ně většina podnikatelů reaguje... icon_e_wink.gif

    • Líbí se mi to! (+1) 2
  9. Mě nejde o to aby vypisovali kde mají VPS. Vůbec jsi nepochopil co já tady řeším a o co mi jde. Dosud jsem nedostal odpověď na několik mnou podaných otázek, a zrovna jsou to jedny z těch důležitých otázek. Zkus si to možná celé všechno znova přečíst, pak třeba pochopíš o čem já píšu a o co mi jde. A nikdo, nikdo z těch pověřených daného hostingu mi na to neodpověděl. Už z tohohle principu usuzuji, že vůbec neví.

     

    Budeš se divit, ale nemusí se to vše hlásit na ČOI. Já si myslím, že kdyby se to řešilo přímo s finanční správou, řešili by to úplně jinak. Jim jde o každou korunu.

     

    Jde ti snad o to, aby neklamali spotřebitele - tj. aby uvedli sídlo své firmy, IČO, ... ale nějak si nemyslím, že vůbec nějakou firmu mají.. a zda jí mít musí, pokud jsou pouze zprostředkovatelé, respektive prodávají své služby s nulovým ziskem... takže mi to spíše přijde jako nějaký projekt za účelem toho, aby se zdokonalovali a naučili něco nového, jinak si nedokážu vysvětlit, že by to dělali zdarma...

     

    Aby se tedy vyhnuli klamání spotřebitele mělo by jim snad stačit, kdyby je při objednávce odkazem odkázali na obchodní podmínky crew.sk, pokud nemají svoje vlastní a pokud mají, přidají i ty..

     

    A fin. správa nebude řešit tvoje problémy s firmou, ale budou řešit firmu a jejich problémy s daněmi, ne jejich zákazníky... a o ty ti tu snad celou dobu jde ne?

     

    EET se týká jakýchkoliv plateb. To co říkáš je naprostá hovadina. A hotově? Takže všichni půjdou ke crew.sk a budou jim to platit osobně? Co je to za kravinu? Komu teda ty peníze chceš hotově dát? IGHostu? Ale jdi ty, oni přece peníze vůbec nepřijímají...

     

    To je zajímavé, že dost podnikatelů zrušila svoje kamenné obchůdky, aby nepřijímali hotovost a tudíž nemuseli kupovat EET pokladnu a omezili svůj prodej pouze na e-shop, kdy jim zákazník zaplatí převodem a nebo dobírkou, takže hotovost dostane doručovací firma a ta jim peníze zase převede na účet. Smysl EET je snad, aby byl doklad o prodeji zboží, výrobků a služeb a pokud přijmeš peníze na účet, tak snad doklad máš, má ho platící a mají ho banky... A výpis z BÚ musíš fin. správě poskytnout... 

     

    A ano, aby jim platili osobně je kravina, proto jsem psal NEMYSLÍM SI... icon_e_wink.gif

     

    PS: To že by ti mohli odpovědět na tvoje otázky je pravda, možná kdyby odpovídali už dávno se to tu nemusí řešit... :( 

    • Líbí se mi to! (+1) 1
  10. Prvně se vyjádřím k tvému PS. Nikoho ale opravdu nikoho nebude zajímat ani vás omlouvat to, že je to 3 dny nový web a nejsou tam všechny informace. To je vaše starost a váš problém. Mě jakožto zákazníka tohle vůbec nezajímá. Pokud jde o takovou službu, MUSÍ TAM BÝT UVEDENY VŠECHNY NUTNÉ INFORMACE od počátku spuštění. Nic ostatní vás vůbec neomlouvá a zákon na to fakt přihlížet nebude. A napsat tu, že máte problém v komunikaci taky hodně nasvědčuji v tom, jak amatérsky a na "dětském" způsobu ta vaše gigantická korporace funguje. Bože, vždyť jste k smíchu. Proč si hrajete na něco co vůbec nejste?

     

    A teď k té hlavní části. Pokud dobře vím, tvůj kolega tu psal, že peníze co pošle zákazník jde vlastně crew.sk. Jenže pak tu píšete, že máte od nich VPS na kterém to vše běží. A teď mi teda řekni, jak to teda s těma penězma funguje? Pokud vím, VPS se platí jako celej a jako celou sumu. Jak teda provádíte onu objednávku kterou tu uváděl tvůj kolega, že je schopný i zaslat fakturu od crew.sk každému jednotlivci s jeho cenou? Mimochodem, tu fakturu MUSÍTE VŽDY POSLAT. Nehledě na nově zavedený EET, který platí i pro vás když provozujete službu i pro ČR. Jen tak mimochodem icon_e_wink.gif

     

    A co se týče reklamace a jiných podmínek jsi se mi ani nedokázal vyjádřit. Fungovaní vaší KORPORACE  je čistě amatérská, kdy ani neznáte zákony, neznáte nutné náležitosti které musíte mít a splnit. Nevíte vůbec nic. Jenom si tu hrajete na firmu a korporaci, kterou vůbec nejste. A to je prosím pěkně taky klamání spotřebitele. 

     

     

    Nevím, jestli je úplně nutné toto řešit. Jak tvrdí xhunterx, snad nikde jsem neviděl, aby hosting vypisoval u koho má zakoupené VPS a případně citoval jejich obchodní podmínky. A pokud při objednávce přidají odsouhlasení obchodních podmínek s odkazem na obchodní podmínky crew.sk (pokud nebudou mít vlastní dodatek), tak si myslím, že by s tím neměl být vůbec problém, za předpokladu, že jsou nezisková společnost.

     

    Zkoušeli jste vůbec někdy kontaktovat Českou obchodní inspekci? Reklamaci jsme museli podat 3x (na každou měli ze zákona měsíc) a pak teprve podat stížnost.. a tohle všechno se strašně táhne. A ani si nemyslím, že by někde řešil nějakých 26 Kč měsíčně, který chtějí třeba za SA-MP server... Samozřejmě zákon je zákon, ale nějaký hosting, který poskytuje služby zadarmo (s tím, že veškeré peníze jdou na VPS) řešit nikdo nebude.

     

    A EET se snad týká hotovostních plateb? (když nepočítám třeba platbu kartou na pokladně). Nevím sice jaké mají způsoby plateb, ale nemyslím si, že by jim zákazníci platili hotově... ;)  

  11. To je podle mě blbost, kdyby to bylo hostingem, tak to bude dělat více klientům a pokud nikde na jejich fóru nepozoruješ podobné problémy jako máte vy, tak máte nejspíš někde špatně něco vy.

     

    BTW: Tohle je ten server, kde ti nejde rozjet mysql?

     

    Dej sem logy, jestli to je ten server s mysql, tak si zapni veškeré logování a po dalším testu jsem dej ty logy i z mysql.

     

    A odpovídej prosím na otázky, takhle se jinak k ničemu nedopracujeme...  

  12. Zdravím, nejspíš máš nějakou chybu v kódu. Dej se OnPlayerCommandText (pokud děláš příkazy normálně přes fci strcmp), pokud používáš nějaký command systém (dcmd, zcmd, ycmd, ...), tak sem dej příkazy, respektive ten, na kterým to zkoušíš. Pokud je ovšem jedno jaký příkaz zadáš, děláš nejspíš něco blbě rovnou po připojení (OnPlayerConnect, OnPlayerSpawn, ...), takže nám sem hoď kód z těchto callbacků. ;) 

  13. A jakou verzi mysql jsi měla a jakou máš? Víš o tom, že je mysql totálně překopané? Respektive názvy a tak.. v cache už ani handle nezadáváš...

     

    Změny máš TU. Pokud tomu nebudeš rozumět, doporučuji ti zůstat u staré verze, nebo požádat někoho jiného o pomoc... icon_e_wink.gif

     

    PS: Aspoň si to zálohuj, než začneš kouzlit... :) 

  14. Zdravím,

    zcela jistě máš různé verze pluginu a includu. Chce to mít stejnou verzi... takže se buď stáhni oboje nejnovější (nejspíš budeš v muset kódu přidat / odebrat parametry), nebo si někde na netu najdi nějaké starší stejné verze. ;) 

     

    PS: Příště zkus nějaký výstižnější název pro téma, tohle je opravdu nic neříkající a kdyby měl někdo podobný problém, tak to pod "Help" určitě nenajde.... :/ 

    • Líbí se mi to! (+1) 1
  15. Co si já pamatuji, tak vše co jsem LYRIcS zveřejnil, bylo rozděleno do několika odkazů na zvlášť roztříděné soubory. (includes, gamemodes, filterscripts, ... ). ;) I když je vidět, že to tam má opravdu jen tak naházené... ;)

     

    Jinak rozlišit gamemode od filtersciptu nebo od includu, můžeš podle toho jaké funkce obsahují.

     

    GM: OnGameModeInit/Exit,

    FS: OnFilterScriptInit/Exit,

    Include: obsahuje své funkce, nějaké konstanty a tak...

     

    Není to ovšem pravidlem, co si pamatuji tak LYRIcS psal, že spousta věcí v těch archívech je staženo různě z internetu, takže ty kódy můžou být různě splácané dohromady... :(

     

    Ale myslím si, že když zapojíš zdravý selský rozum a přečteš si, co v tom daném souboru je, tak poznáš o co jde. ;):d Rozhodně nečekej, že ti tu někdo udělá seznam toho, co je gm a co fs... ;)

    • Líbí se mi to! (+1) 1
×
×
  • Create New...