Jump to content

ATomas

Uživatel
  • Příspěvků

    2926
  • Registrován

  • Aktivní

  • Vítězných dnů

    77

Příspěvky posted by ATomas

  1. Dovolil jsem si mensi optimalizaci :)

    #include <a_samp>
    
    enum e_info
    {
        pVodickyB,
        pVodickyC
    }
    new PlayerInfo[MAX_PLAYERS][e_info];
    new autoskolacarb;
    new autoskolab[MAX_PLAYERS];
    new autoskolac[MAX_PLAYERS];
    new PlayerText:akotskolabkonec[MAX_PLAYERS][18];
    new PlayerText:autoskolabtd[MAX_PLAYERS][12];
    new PlayerText:autoskolatd[MAX_PLAYERS][12];
    new PlayerText:preukazvlastni[MAX_PLAYERS];
    new PlayerText:preukazvlastni1[MAX_PLAYERS];
    new PlayerText:nedostatokpenazi[MAX_PLAYERS];
    new PlayerText:nedostatokpenazi1[MAX_PLAYERS];
    new autoskolacarc;
    new autoskolacarcnaves;
    
    enum
    {
        DIALOG_AUTOSKOLA
    }
    //----------------------------------------------------------------------------//
    #define CP 1
    #define CCP 16
    
    new Float:CPAutoskolaB[][] = {
    	{-2047.6212,-78.2796,34.7413,5.0},
    	{-2026.7949,-156.6074,35.3203,5.0},
    	{-2045.3695,-173.9235,37.7754,5.0},
    	{-2058.1487,-162.0910,35.3203,5.0},
    	{-2058.2043,-126.9359,35.3227,5.0},
    	{1148.3583,1376.4371,10.5468,7.0},
    	{1103.7428,1376.0496,10.5468,5.0},
    	{1007.2051,1382.1805,10.5751,7.0},
    	{1006.8726,1716.1813,10.6523,7.0},
    	{1007.9291,1810.5002,10.7037,7.0},
    	{1224.1656,1813.0670,13.6591,7.0},
    	{1272.4874,1743.7592,9.0676,7.0},
    	{1217.2009,1442.5193,6.5797,7.0},
    	{1174.1589,1376.4054,10.6933,7.0}
    };
    
    new Float:CPAutoskolaC[][] = {
    	{1142.7788,1264.6090,11.4266,5.0},
    	{1125.2251,1232.4261,11.4270,5.0},
    	{1111.6285,1258.4397,11.4275,5.0},
    	{1110.7295,1299.6412,11.4267,5.0}
    };
    
    public OnPlayerEnterCheckpoint(playerid)
    {
    	switch(autoskolab[playerid])
    	{
    		case CP .. CP + sizeof(CPAutoskolaB):
    		{
    		    if(autoskolab[playerid] >= sizeof(CPAutoskolaB))
    		    {
    		        PlayerInfo[playerid][pVodickyB]++;
    				SetPlayerVirtualWorld(playerid, 0);
    				DisablePlayerCheckpoint(playerid);
    				SetPlayerPos(playerid, 1170.7604,1353.1532,10.9219);
    				SetPlayerFacingAngle(playerid, 89.9102);
    				SetPlayerInterior(playerid, 0);
    				SetCameraBehindPlayer(playerid);
    				TogglePlayerControllable(playerid,0);
    				SetTimerEx("AntifreezeAutoSkola", 5000, false, "i", playerid);
    				SetTimerEx("TextDrawAutoskola", 5000, false, "i", playerid);
    				for(new i;i<sizeof(akotskolabkonec[]);i++) PlayerTextDrawShow(playerid, akotskolabkonec[playerid][i]);
    			}
    			else
    			{
    				SetPlayerCheckpoint(playerid,CPAutoskolaB[autoskolab[playerid]][0],CPAutoskolaB[autoskolab[playerid]][1],CPAutoskolaB[autoskolab[playerid]][2],CPAutoskolaB[autoskolab[playerid]][3]);
    		   		autoskolab[playerid]++;
    		   		if(autoskolab[playerid] == 6)
    			    {
    					LinkVehicleToInterior(autoskolacarb,0);
    					SetPlayerInterior(playerid,0);
    					SetCameraBehindPlayer(playerid);
    					SetVehicleZAngle(autoskolacarb,149.2382);
    					SetVehiclePos(autoskolacarb,1163.3914,1380.4377,10.5469);
    					TogglePlayerControllable(playerid,0);
    					SetTimerEx("AntifreezeAutoSkola", 8000, false, "i", playerid);
    					SetTimerEx("TextDrawAutoskola", 8000, false, "i", playerid);
    					for(new i;i<sizeof(autoskolabtd[]);i++) PlayerTextDrawShow(playerid, autoskolabtd[playerid][i]);
    				}
    			}
    		}
    		case CCP .. CCP + sizeof(CPAutoskolaC):
    		{
    			SetPlayerCheckpoint(playerid,CPAutoskolaC[autoskolac[playerid]][0],CPAutoskolaC[autoskolac[playerid]][1],CPAutoskolaC[autoskolac[playerid]][2],CPAutoskolaC[autoskolac[playerid]][3]);
     			autoskolac[playerid]++;
    		}
    	}
    	return 1;
    }
    
    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
    {
    	if(dialogid == DIALOG_AUTOSKOLA)
    	{
    		if(!response)
    		{
    			SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
    			return 1;
    		}
    		switch (listitem)
    		{
    			case 0:
    			{
    				if(PlayerInfo[playerid][pVodickyB] == 1)
    				{
    					SetTimerEx("preukazy", 5000, false, "i", playerid);
    					PlayerTextDrawShow(playerid, preukazvlastni1[playerid]);
    					PlayerTextDrawShow(playerid, preukazvlastni[playerid]);
    					SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
    				}
    				else if(GetPlayerMoney(playerid) < 10000)
    				{
    					SetTimerEx("Nedostatokpenazi", 5000, false, "i", playerid);
    					PlayerTextDrawShow(playerid, nedostatokpenazi[playerid]);
    					PlayerTextDrawShow(playerid, nedostatokpenazi1[playerid]);
    					SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
    				}
    				else //když splňuje podmínky
    				{
    					GivePlayerMoney(playerid,-10000); //vezmem mu peníze
    					autoskolab[playerid] = CP;
    					autoskolacarb = CreateVehicle(565, -2042.4133,-112.9670,35.2057,179.9765, random(100), random(100), 1000); //vytvoříme vozidlo (ID) a souřdnice kde se spawne
    					PutPlayerInVehicle(playerid, autoskolacarb,0);
    					SetVehicleVirtualWorld(autoskolacarb, 10);
    					SetPlayerVirtualWorld(playerid, 10);
    					SetPlayerCheckpoint(playerid,-2037.4709,-127.8062,35.2436,7.0);
    					TogglePlayerControllable(playerid,0);
    					SetTimerEx("AntifreezeAutoSkola", 8000, false, "i", playerid);
    					//textdrawsautoskolaCVICISKO
    					SetTimerEx("TextDrawAutoskola", 8000, false, "i", playerid);
    					for(new i;i<sizeof(autoskolatd[]);i++) PlayerTextDrawShow(playerid, autoskolatd[playerid][i]);
    				}
    			}
    			case 1:
    			{
    				if(PlayerInfo[playerid][pVodickyC] == 1)
    				{
    					SetTimerEx("preukazy", 5000, false, "i", playerid);
    					PlayerTextDrawShow(playerid, preukazvlastni1[playerid]);
    					PlayerTextDrawShow(playerid, preukazvlastni[playerid]);
    					SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
    				}
    				else if(GetPlayerMoney(playerid) < 9999)
    				{
    					SetTimerEx("Nedostatokpenazi", 5000, false, "i", playerid);
    					PlayerTextDrawShow(playerid, nedostatokpenazi[playerid]);
    					PlayerTextDrawShow(playerid, nedostatokpenazi1[playerid]);
    					SetPlayerPos(playerid,1170.7604,1353.1532,10.9219);
    				}
    				else //když splňuje podmínky
    				{
    					GivePlayerMoney(playerid,-10000); //vezmem mu peníze
    					autoskolac[playerid] = CCP;
    					autoskolacarc = CreateVehicle(403, 1139.6000000,1342.1000000,11.5000000,180.0000000, random(100), random(100), 1000);
    					autoskolacarcnaves = CreateVehicle(435, 1139.6000000,1351.0000000,11.5000000,180.0000000, random(100), random(100), 1000);
    					AttachTrailerToVehicle(autoskolacarcnaves, autoskolacarc);
    					PutPlayerInVehicle(playerid, autoskolacarc,0);
    					SetPlayerCheckpoint(playerid,1142.4054,1314.2500,11.4265,5.0);
    				}
    			}
    		}
    	}
    	return 1;
    }

     

    • Děkuji (+1) 2
  2. On 22. 2. 2023 at 10:56, _viTo_ said:

    Právě že žádná chybová hláška tam není  Žárný Warning žárný Error Filterscript se normálně načte

     

    V techto situacich si obvykle vyzaduji video, abych teda pripadnou chybu videl. Ale zkousel jsi treba goto na daneho npc nebo se podivat do server logu jestli se npc vubec pokusilo pripojit? A pripadne pokud se pripojilo - nebylo odpojeno? A co maxnpc v server.cfg mas ho vubec definovane a pripadne nemas tam 0 ?

    • Líbí se mi to! (+1) 1
  3. On 3. 8. 2022 at 21:33, Hip said:

    Jsem ani nevěděl, že se dají modelovat v blenderu. Každopádně, pokud se udělá jeden velkej ostrov jako jeden objekt, tak se to počítá jako jeden objekt co se limitu týče, každopádně je pochopitelně mnohem větší, to se nějak na performance projevilo? Pokud jsi teda zkoušel udělat ostrov jako jeden velkej objekt. 

    Ano zkousel, bohuzel te zastavi omezeni na vzdalenost od origin na 256 jendotek, pak prestane spravne fungovat generator kolizi (origin je ten bod kterem kolem objekt otacis). Ale i tak byla znat uspora v poctu objektu. Hlavne nenahraditeln je ot modelovani namiru. Zadne diry spatne prechody atp..

    • Děkuji (+1) 1
  4. Ja jsem v jednu dobu ze streameru uplne opustil a pouzival CreateObject. To bylo v dobach kdyz na serveru bylalo stabilce 200-250 lidi. Kdyz se totiz pouzili CreatePlayerObject (coz vyuziva CreateStreamedObject) tak se drasticky zvysila spotreba CPU. Kdyz jsem je nahradil tema "globalnima" zatez byla zlomkova. TO bylo v době, kdy jsem musel v 2014 odstranit ostrovy. Na DL jsem je vratil ze dvou důvodů, první byl zvýšený limit 2000 a pak také možnost modelovat je v blenderu.

  5. SAMP 037 ma limit objeltu 1000 (mysleno ze muzes zobrazit v jeden moment clientu jen 1000 objektu) u 03DL je to 2000.

    Tedy nemuzes pouzit CreateObject nad 1000.

    Ovsem toto omezeni jde "obejit" pouzitim strameru (ktery v praxi funguje tak, ze ti zobrazi jen objekty, cjsou k tobe blizko a ty daleko nezobrazi) tim se dostsnes pod ten limit 1000 objektu naraz zobrazenych. Jen to znacne zere vice CPU.

  6.  

    CMD:prikaz(playerid,params[])
    {
      new File:data = fopen("tvuj_soubor.txt",io_read);
      new string[4096],str[512];
      while(fread(data,str)) strcat(string,str);
      fclose(data);
      ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Header",string,"Close","");
      return 1;
    }

    Neprohanel jsem to kompilatorem, ale verim ze pripadne preklepy si uz dokazes opravit :)

    • Líbí se mi to! (+1) 2
  7. vehicleid ti nikdy sedet nebudou. vehicleid se vzdy vytvori uple nove (prvni volne) pri CreateVehicle. Tj nesmis si fixovat vehicleid na serveru s id v databazove tabulce. To je cely problem

    Citace

    Jako v MySQL se moc nevyznám, ale v databázi se pohybuju každý den

    A jake databazi se pohybujes kdyz se nevyznas v MySQL? Vsak vsechny DB systemy maji 90% zakladu stejne :) Hlavne mi nerikej ze v excelu, to neni db :D

  8. Ted se budu ptat ja:

    Co je to základní font ? (Arial ?)

    Čemu chceš font nastavovat? (Neříkej že písmu, dík :) )

    BTW kod co jsi poslal jsou jen promene....

     

    A ten budu hadat, pokud se jedná o SetObjectMaterialText

    tak potom

    format(Vehicles[VehID][VehicleTextTuningFont],32,"Arial");

    předpokládám že má rozměr -> VehicleTextTuningFont[32]

  9. Respektive mobilniplatby.cz (ano vlastni to airtoy). Maji to docela easy. Rozhodne je imlementace lehci nez u GoPay. Vicemene registraci mas free a pak si tam das url ktery chces aby ti to volalo a maji tam i debug kde si muzes zadarmo posilat testovaci sms aby sis svuj script otestoval.

    • Líbí se mi to! (+1) 1
  10. On 28. 1. 2022 at 9:53, Robin said:

    Ma tam 3 param. namiesto 2 :mellow: tym padom som myslel ze pawn compiler hlasi "undefined symbol GetSVarString" pro 3 param. ale 2 by to mozno fixlo. Logiku to ma :D .. Pawno sem neotevrel uz hodne dlouho no

    Ale tak odkazuje se na "bind" takze ma se snazi o uplne neco jineho :)

     

    // Deprecated:
    native GetServerVarAsString(const varname[], buffer[], len);
    native GetServerVarAsInt(const varname[]);
    native GetServerVarAsBool(const varname[]);
    // These are the same 3 functions as above although they avoid the name ambiguity/conflict with the SVar system.
    native GetConsoleVarAsString(const varname[], buffer[], len);
    native GetConsoleVarAsInt(const varname[]);
    native GetConsoleVarAsBool(const varname[]);

     

  11. před 19minutami, Robin said:

    Musis sa naucit anglicky ak chces "programovat" :D (warning 202: number of arguments does not match definition) ti pekne vysvetluje kde je chyba, skus jej pochopit :d

    Tak jsi mu zrovna dobre neporadil kdyz je vyznamensi ta prvni chyba.

    Nezna to funkci GetSVarString v nejvetsi pravdepodobnosti nemas aktualni include a_samp.inc. Zkus si ze sa-mp.com stahnout aktualni server balicek a vem si z neho includy (pawno/includes)

  12. On 11. 12. 2021 at 20:57, Robin said:

    Boze tato Polda 3 karty je nostalgie jak svin. Som hraval jak maly a teta mi vzdy davala ruce pred oci kdyz sem vyhraval a ta pani ve hre se cela vyzlekavala :D :D

    Existuje to i jako mobilni verze :) Polda serie je fajn hra :) Ten dabing tomu dava to spravne kouzlo :)

  13. Taky bych rad prispel do plema. Hry pro dva se mi libi. Hlavne bez potřeby instalace čehokoliv :)

    K tomu prší bych měl pár poznatků:

    1) Pokud zmenším okno prohlížeče, změnší se i karty, myslím že dosti nesmyslně vůči pozadí (zmenšují se rychleji).

    2) Osobně bych zrušil překrytí vlastních karet. Ať je vidět vždy celá karta i za cenu vytvoření nového řádku nebo scollbaru. Nebo to překrytí začít aplikovat při více kartách

    3) Není dost graficky znázorněné kdo hraje, pokud si nevšimnu přebliknutí karty nebo nahoře změny písma (možná mé karty nechat zešednout, pokud nejsem na řadě). Osobně bych balíček odhozených karet náhodně otočil, tak jako když v rálu odhazujeme karty. Lépe si tím všimnu nové karty, když pod ní vidím zbytky té své.

     

    Možná bych doporučil se inspirovat tímto. Osobně mi ten herní systém prší docela sedí (možná i to, že se hraje o "halíře").

     

×
×
  • Create New...