-
Příspěvků
810 -
Registrován
-
Aktivní
-
Vítězných dnů
22
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Everything posted by The hidden face
-
Bohužel nic nevidím..
-
Jednoduše: new string[128]; format(string, sizeof(string), "V Los Santos je %d hráčů./n", PlayersInCity(1)); format(string, sizeof(string), "%sV San Fierro je %d hráčů./n",string, PlayersInCity(2)); format(string, sizeof(string), "%sV Los Santos je %d hráčů.",string, PlayersInCity(3)); //už jen dát do SCM, SCMTA nebo do textdrawu s tím si už pořadíš, ne?
-
Zdravím, už několikrát se tu říkalo, že OnPlayerUpdate vytěžuje dost tvůj server a ty tam nacpeš toto. Tady jsem ti to trochu upravil, akorát by to ještě chtělo, abys sem postnul fci IsPlayerInArea. Taky může být chyba klidně v souřadnicích. #define MAX_PLAYERS_EX 50 new playerCity[MAX_PLAYERS_EX]; //1 = LS, 2 = SF, 3 = LV new CityTimer[MAX_PLAYERS_EX]; public OnPlayerSpawn(playerid) { CityTimer[playerid] = SetTimerEx("CheckCity", 1000, true, "i", playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { KillTimer(CityTimer[playerid]); return 1; } forward CheckCity(playerid); public CheckCity(playerid) { if(IsPlayerInArea(playerid,-151, -2964, 2997, -687.5))//LS { if(playerCity[playerid] != 1) playerCity[playerid] = 1;//tady by snad ani to podmínky být nemuseli } else if(IsPlayerInArea(playerid,-2925, -919.5, -1212, 1594.5))//SF { if(playerCity[playerid] != 2) playerCity[playerid] = 2; } else if(IsPlayerInArea(playerid,-505, 491.5, 2841, 2933.5))//LV { if(playerCity[playerid] != 3) playerCity[playerid] = 3; } return 1; } //Tam, kde zjišťuješ kolik je hráčů v jakém městě stock PlayersInCity(const city)//1 = LS, 2 = SF, 3 = LV; vrátí počet hráčů v daném městě. { new players; for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) if(playerCity[i] == city) players++; return players; } Jinak abys poznal rozdíl mezi Timerem a OnPlayerUpdate. Timer se opakuje v tom intervalu, který si zadáš (tady v tom případě 1 sekunda), ale onPlayerUpdate se ti vyvolá průměrně 30 během sekundy, navíc není pravidelný - volá se podle toho, co hráč zrovna dělá (wiki). Ke kódy je trochu zlechčený, místo 3 glob. proměnných pro hráče máš 1 a místo 3 glob. proměnných pro každé město máš funkci, která ti vrací aktuální počet hráčů v daném městě.
-
pomoc RZE by QWER. Potrebujem help. :)
The hidden face replied to gouster3's question in Herní (SA:MP, CS apod.)
Běž do Pawna, stač Ctrl+F, zadej hledaný výraz, tedy "print" (printf). A pak mačkej F3 pro nalezení další shody nebo F4 pro vrácení se k předchozí. Takhle snad najdeš, co hledáš. Ale podle všeho to vypadá, že to je z main(). Aby ses toho zbavil, tak to jednoduše smažeš. Printy tam měl pouze pro kontrolu. -
Co se týče designu, tak máš pěkně zvolený barvy, ale určitě bych jinak zarovnal ty Informace. Dvojtečky bych dal pod sebe a malý odsazení těch info od nich (třeba tab).
-
pomoc Format(riadkovanie) a herný čas
The hidden face replied to TeRoR's question in Herní (SA:MP, CS apod.)
Omlouvám se, to jak jsem ti to psal já, byla taky pitomost - pawn to takhle neumí. Zkus opravdu u všech změnit na kód, co ti poslal arci224 to by mělo na 100% fungovat. -
pomoc Format(riadkovanie) a herný čas
The hidden face replied to TeRoR's question in Herní (SA:MP, CS apod.)
Promiň na proměnný jsem zapomněl. Budeš teda muset použít format.: new ex[200]; format(ex, sizeof(ex), "Radio 1 %i/n", posluchaci[0]); format(ex, sizeof(ex), ex + "Radio2 %i/n", posluchaci[1]); . . . A tady máš fce na ovládání času, anglicky snad umíš: SetPlayerTime, TogglePlayerClock (tahle ta tě asi zajímá), GetPlayerTime a SetWorldTime. -
pomoc Format(riadkovanie) a herný čas
The hidden face replied to TeRoR's question in Herní (SA:MP, CS apod.)
Mohl bys využít zpětného lomítka (\). Pro tebe by to bylo sice přehlednější, ale compiler to pořád uvidí v jednom řádku, takže se nevyhnutelně vyskytne chyba input line is too long. Tzn. že bych být tebou použil strcat a co se stylu dialogu týče, ten bych změnil na DIALOG_STYLE_TABLIST_HEADER (wiki), abys to měl opravdu přehledné. -
SetTimerEx("PrisonCounter", 60000, false, "u", playerid); Metoda se volá v "" (uvozovkách) a bez parametrů - parametry totiž dosazuješ až potom. Akorát si teď nejsem jistý, zda bude formát "u" funkční. Vím, že ho používá sscanf2, ale u pawn si nejsem jistý. Zkus když tak "i" nebo "d"
-
Asi by tě vážně zabilo to vyzkoušet.... Neupravil jsem jen příkaz, ale i ten tvůj calback. Měl jsi to tak zmatlaný, že se textdrawy nejspíše překrývaly a prostě to blblo, což není u textdrawu nic neobvyklého. Příště se na pomoc tobě rovnou vykašlu, protože lidem, kterým se ničím nazavděčíš mám opravdu nejradši. Jak píši výše - ono to spolu tak nějak souvisí...
-
Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...
-
pomoc Jak udělat, že hráč při výběru uvidí i skiny pouze pro adminy/VIP?
The hidden face replied to Marks's topic in Pomoc
Však takhle to lukaszovo i moje funguje. Nejspíš máš u sebe nějakou jinou chybu - špatně napozicované.. -
pomoc Jak udělat, že hráč při výběru uvidí i skiny pouze pro adminy/VIP?
The hidden face replied to Marks's topic in Pomoc
Tohle bohatě stačí, ne?: public OnPlayerRequestSpawn(playerid) { if(!IsPlayerAdmin(playerid) && GetPlayerSkin(playerid) == admin_skin) { SendClientMessage(playerid, -1, "ADMIN SKIN"); return 0; } return 1; } //Edit: Sry, úplně stejné jak napsal lukasz... Pak tedy definuj, co znamená: "hráči se skin zobrazí"? -
Já jsem, ale neopravoval nic se sscansf, to ať si udělá sám, pouze jsem mu ze zbytečných 3 proměnných nechal jen jednu. A všechno, co jsem k tomu přidal jsem okopíroval z minulého tématu - do vaši SZ bohužel já nevidím... :d
-
Tady to máš podle mě dobře, buď máš špatně podmínku, nebo ještě někde jinde v módu upravuješ proměnnou. Každopádně mi připadá, že ta proměnná spolu s proměnnou Jail jsou úplně zbytečné, bohatě, by ti na tyhle kontroly stačila JailSeconds. Snad to je všechno dobře:
-
Nic proti, ale můžeš mi citovat, kde to říká? Tak nějak zásadní chyba to není, ale je to FS, tak by měl použit OnFilterScriptInit(). Mě ovšem nic jiného nenapadá, co by se mohlo zkazit při vytváření objektů. //Edit: Pro autora: Máš ještě nějaké další objekty v módu vytvořené? Pokud ano nesmí jich být více jak 557, jelikož tady máš kolem 473 objektů a maximální limit je 1000 objektů. Tzn. že by jsi musel použít streamer. --> Tak nic prej tam máš víc vozidel
-
Promiň moje blbost: //OnPlayerConnect jail0[playerid] = CreatePlayerTextDraw(playerid, 572.000000, 226.000000, "120"); //každý hráč potřebuje svůj textdraw, proto nemůžeš vytvářet globální páč, když skrz nějakého hráče nastavíš nějaký čas, ten samý čas se bude zobrazovat i ostatním. (bude ti to zkrátka blbnout... PlayerTextDrawBackgroundColor(playerid, jail0[playerid], 255); PlayerTextDrawFont(playerid,jail0[playerid], 2); PlayerTextDrawLetterSize(playerid,jail0[playerid], 0.330000, 1.000000); PlayerTextDrawColor(playerid,jail0[playerid], -1); PlayerTextDrawSetOutline(playerid,jail0[playerid], 1); PlayerTextDrawSetProportional(playerid,jail0[playerid], 1); PlayerTextDrawSetSelectable(playerid,jail0[playerid], 0); A na zobrazení a skyrtí: PlayerTextDrawShow(playerid, jail0[playerid]); PlayerTextDrawHide(playerid, jail0[playerid]); PlayerTextDrawSetString(playerid, jail0[playerid], str); //Edit: Teď už to je snad kompletní
-
Zkus toto - místo textdrawu pro každého hráče si vytvářel globální textdraw: //horok modu new PlayerText:jail0[MAX_PLAYERS];//textdraw pro každého hráče new Text:jail1; // OnGameModeInit jail0 = CreatePlayerTextDraw(572.000000, 226.000000, "120"); //každý hráč potřebuje svůj textdraw, proto nemůžeš vytvářet globální páč, když skrz nějakého hráče nastavíš nějaký čas, ten samý čas se bude zobrazovat i ostatním. (bude ti to zkrátka blbnout... PlayerTextDrawBackgroundColor(jail0, 255); PlayerTextDrawFont(jail0, 2); PlayerTextDrawLetterSize(jail0, 0.330000, 1.000000); PlayerTextDrawColor(jail0, -1); PlayerTextDrawSetOutline(jail0, 1); PlayerTextDrawSetProportional(jail0, 1); PlayerTextDrawSetSelectable(jail0, 0); jail1 = TextDrawCreate(532.000000, 226.000000, "cas:"); //tento texdraw bude pro všechny stejný, takže může zůstat globálním TextDrawBackgroundColor(jail1, 255); TextDrawFont(jail1, 2); TextDrawLetterSize(jail1, 0.330000, 1.000000); TextDrawColor(jail1, -1); TextDrawSetOutline(jail1, 1); TextDrawSetProportional(jail1, 1); TextDrawSetSelectable(jail1, 0); // Public Jail public Jail(playerid) { SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") - 1); PlayerTextDrawHide(playerid, jail0);// Předtím než textdrawy znovu zobrazíš by si je měl skrýt TextDrawHideForPlayer(playerid, jail1);//-||- if(GetPVarInt(playerid, "JailSeconds") == 0) { SetPVarInt(playerid,"Jail",0); SendClientMessage(playerid,-1,"Odpykal si si trest"); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); SetPlayerInterior(playerid,0); Basa[playerid] = 0; KillTimer(jailTimers[playerid]); } else { new str[10]; format(str, 10, "%s", GetPVarInt(playerid, "JailSeconds"));//proč 128 znaků, i těch 10 je zbytečně moc, protože nepředpokládám, že budeš někoho takhle dlouho věznit PlayerTextDrawSetString(jail0,str); PlayerTextDrawShow(playerid, jail0); TextDrawShowForPlayer(playerid, jail1); } return 1; } // dcmd jail ... error spravy SetPVarInt(id,"Jail",1); jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id); SetPVarInt(id, "JailSeconds", minuty * 60); ...nastavenie interieru, pozicia, že je v base atd
-
Aha, tak to jsem tě nepochopil. Není to nic složitého - tu bránu přes nějaký editor odstraň, vlož si tam vlastní a s tou pohybuj... //Edit: Třeba zde máš pěkný prográmek.
-
Nevím, zda ti to vyřeší problém, ale říkal jsi, že je to filterscript, tak proč objekty a auta vytváříš v OnGameModeInit() a ne v OnFilterScriptInit() ? K tomu otevírání brány (použiji předchozí kód): new cela; OnGameModeInit() // Po případe OnFilterScriptInit { cela = CreateObject(987,3271.3000000,460.7999900,25.5000000,0.0000000,0.0000000,223.4930000); // do proměnné cela se nahraje id vytvořeného objektu MoveObject(cela,3271.3000000,460.7999900,25.5000000,2,PozíciaX, PozíciaY, PozíciaZ); //a zde na místo objectid dosadíš proměnnou cela, jelikož uchovává to id vytvořeného objektu return 1; }
-
Na tom druhým serveru máš taky tolik fs? Mě osobně nikdy snad nešlo tolik fs spustit, vždy byl někde nějaký problém (Co se týče hostingů). Nech to VIP na prvním místě a ty fs bez kterých se dokážeš obejít dej pryč.
-
Dej sem server logy z obou serverů. Stačí, když sem dáš jen poslední start.
-
PANNONIA - ZBERATEĽSKÁ EDÍCIA SA-MP ADMIN PANEL 10.0.0
The hidden face replied to Laces's topic in Webové aplikace
V kostce řečeno to po tobě vyžaduje verzi PHP 5.5 a vyšší a ty máš nainstalovanou 5.4.45blabla. -
To bude asi tím, že v proměnné vehid máš uložený id modelu auta, ty ovšem do parametru PutPlayerInVehicle musíš vložit id auta.
-
Měl jsem podobný problém až na to, že ping jsem měl asi 10x větší jak ty. Stačilo předělat internet z 2,4GHZ na 5 GHz. Stačí vlastně koupit jinačí anténu, která bude s 5 GHz umět pracovat - poskytovatel musí samozřejmě tuto službu nabízet.