Jump to content

ATomas

Uživatel
  • Příspěvků

    2935
  • Registrován

  • Aktivní

  • Vítězných dnů

    87

Příspěvky posted by ATomas

  1. On 11. 2. 2025 at 22:00, Jiu said:

    Nah, viac ako polovica serverovej infrastruktury sveta bezi na Linuxe.

    Tiez som za docker; staci pohladat existujuce image a tie deploynut. Ked niesi docker fanboy, tak to ber ako prilezitost naucit sa nieco nove :D

    To sice ale ale korporaty jsou fakt idioti a jedou widle, Dokonce jim nevadi mit 1x mesice servery off 2-3h kvuli aktualizacim, peklo..

  2. Tady ti posilam zdrojak z RZE74 (v puvodnim stavu), dneska uz takhle hrozne nekodim :D

    dcmd_prodatmarihuanu(playerid,params[])
    {
    	if(IsPlayerConnected(playerid))
    	{
    	    if(strlen(params) > 10) return SendClientMessage(playerid,BARVA_BILA,"[ ! ] Chybně zadaný příkaz !");
     		new pos;
    		new id = strval(params);
    		if(!params[0] || !(pos = chrfind(' ',params) + 1) || !params[pos]) return SendClientMessage(playerid,BARVA_BILA,"[ ! ] Použití: /prodatmarihuanu [ ID ] [ GRAMY ]");
    		else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,BARVA_BILA,"[ ! ] Hráč není připojený");
    		else if(Trava[playerid] == 0) return SendClientMessage(playerid,BARVA_BILA,"[ ! ] Nemáte u sebe žádnou trávu !");
    		new Travicka = strval(params[pos]);
    		if(Travicka < 1 || Trava[playerid] < Travicka) SendClientMessage(playerid,BARVA_BILA,"[ ! ] Chybně zadané gramy !");
    		else if(DistanceBTWPlayers(playerid,id) > 7) return SendClientMessage(playerid,BARVA_BILA,"[ ! ] Hráč je mimo dosah");
    		else
    		{
      			new string[150];
    			format(string,sizeof(string),"Dealer %s prodal %dg marihuany hráči %s",Jmeno(playerid),Travicka,Jmeno(id));
    			SendClientMessageToAll(BARVA_MODRA,string);
    			Trava[playerid] = Trava[playerid] - Travicka;
    			Trava[id] = Trava[id] + Travicka;
    		}
    	}
    	return 1;
    }

     

  3. 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) 3
    • Líbí se mi to! (+1) 1
  4. 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
  5. 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
  6. 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.

  7. 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.

  8.  

    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
  9. 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

  10. 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]

  11. 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
×
×
  • Create New...