-
Příspěvků
772 -
Registrován
-
Aktivní
-
Vítězných dnů
60
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Everything posted by vEnd
-
řádek 1261 není přeložený
-
cituji tě z jednoho tématu (úprava na tvůj předmět) timer na určitou dobu, po které se počasí má změnit, random, SetWeather, pro podrobnosti si přečti vlastní slova uvedená výše a podle toho konej ^^
-
zajímavé, já mu rozumím jistě, získej hráčovo ID z hráčova ID (facepalm) zkus tohle, dělal jsem to já (nemusí to být dokonalé, funkční by to ale být mělo): num(const string[]) //by ??? { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; } GetPlayerID(const str[]) { if(!strlen(str)) return INVALID_PLAYER_ID; if(num(str)) { if(IsPlayerConnected(strval(str))) return strval(str); return INVALID_PLAYER_ID; } new name[MAX_PLAYER_NAME+1]; for(new i;i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i)) continue; GetPlayerName(i,name,sizeof(name)); if(strfind(name,str,true) != -1) return i; } return INVALID_PLAYER_ID; } používej nějak takto: new id; id = GetPlayerID("nick"); if(!IsPlayerConnected(id)) //kontrola, zda není online
-
ty nadávky by ti ještě leckdo odpustil, ale pravopisné chyby nikoliv
-
'=' přiřazuje hodnotu, pro porovnávaní řetězců použij funkci strcmp
-
normální přiřazení string1 = string2 můžeš použít jen tehdy, když je délka zdrojového řetězce menší nebo stejná jako velikost cílového řetězce, takže v tomhle případě ti to nepůjde, zkus tohle: strcat((Tag[playerid][0]='\0',Tag[playerid]),inputtext); dalo by se to použít i přes format, ovšem to ti nedoporučuji
-
když je hráč v menu (Esc) nebo přešel do winu, nevyvolá se callback OnPlayerUpdate, čehož se dá využít, zde jsem na to dělal systém: http://pastebin.com/vmhUbmd4 (stačí využít custom callback OnPlayerAfk, např. když bys chtěl hráče zmrazit nebo něco podobného, viz. kód)
-
pomoc [HELP]Nefunguje IsPlayerInSphere
vEnd replied to Konvicka's question in Herní (SA:MP, CS apod.)
dobrá, zeptám se tě takto... máš ten FS vůbec načtený, když ho zkoušíš? -
pomoc [HELP]Nefunguje IsPlayerInSphere
vEnd replied to Konvicka's question in Herní (SA:MP, CS apod.)
IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius){ if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){ return 1;}return 0;} GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z){ new Float:x1,Float:y1,Float:z1; new Float:tmpdis; GetPlayerPos(playerid,x1,y1,z1); tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)), 2)+floatpower(floatabs(floatsub(y,y1)), 2)+floatpower(floatabs(floatsub(z,z1)),2)); return floatround(tmpdis);} zbytečně si to komplikuješ, dnes už je dostupná nativní funkce IsPlayerInRangeOfPoint, která porovnává, zda je hráč v dosahu, zkus tohle smazat (nebo jen hodit do poznámek) a namísto toho dej nahoru tohle: #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3) nezaručuji, že to bude fungovat, ale chyba může být v definici funkce GetPlayerDistanceToPointEx, zkus to tedy touto cestou -
pomoc [HELP]Nefunguje IsPlayerInSphere
vEnd replied to Konvicka's question in Herní (SA:MP, CS apod.)
pokud ti to nepůjde, tak dodej i kód funkce IsPlayerInSphere -
pomoc [HELP]Nefunguje IsPlayerInSphere
vEnd replied to Konvicka's question in Herní (SA:MP, CS apod.)
používáš normální SetTimer, který nevrací žádné parametry, takže v publicu nemůžeš mít playerid, čili musíš to udělat přes cyklus: public Kontrola() { for(new i;i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i)) continue; //není-li dané id online, přeskočíme na další if(IsPlayerInSphere(i,3887.1135,597.8398,23.1000,15) == 1) { if(IsPlayerInAnyVehicle(i) == 1) { ShowPlayerDialog(i,NitroDialog,DIALOG_STYLE_MSGBOX,"{FF8000}Nitro specialista... ","{FF0000}Chceš\n {00FF00}NITRO.?","Ano","Ne"); } else { SendClientMessage(i, Cervena, "[Chyba]_Nesedíš ve vozidle, nemůžeme ti nainstalovat nitro.!"); } } } return 1; } -
//-------------Ukladní Jobů-------------- #define ridicak "autoskola/%s.txt" //cesta k VIP Souboru //----------------Konec--------------- nemůžeš mít stejně pojmenovanou definici a proměnnou, tohle si přejmenuj na něco jiného, třeba ridicakex
-
víš o tom, že takhle budou mít cykly dohromady přes milion opakování? této možnosti bych se vyhnul obloukem, jinak, ID vozidel začíná od 1, ne od 0 k tématu: pokud jsem správně pochopil, chceš, aby se vozidla, která jsou v módu od jeho spuštění, respawnovala každé 2 minuty, správně? pak nahraď funkci AddStaticVehicle funkcí, kterou sem už dával wilszon -> AddStaticVehicleEx, která má jako poslední parametr tu dobu (v sekundách), po jejíž uplynutí se vozidlo respawnuje (je-li prázdné) pokud jsem to správně nepochopil, tak se prosím vyjádři konkrétněji, jinak se zde asi nepohneme
-
OnPlayerKeyStateChange (rozklikni) - tento public je vše, co budeš potřebovat, příklady použití a nějaké vychytávky k němu máš uvedeny na té stránce, která se ti objeví po rozkliknutí dostupné klávesy (rozklikni) - tady zase najdeš definice jednotlivých kláves, které lze v SA:MP detekovat
-
if (!strcmp(params,PrecitatString(SuborHraca(playerid),"Heslo")) podívej se pořádně, "Heslo" je parametr funkce PrecitatString
-
ale on tam má 2 řetězce
-
mě by zajímalo, co by na té funkci měl mít podle tebe špatně, parametry ignorecase a length jsou defaultně nastaveny na nějakou hodnotu (false a cellmax tuším), takže je uvádět nemusí
-
jde to: GetPlayerStats(playerid,.points = 99); //money zůstane -1, points bude 99 tím, že před parametr uvedeme tečku, pak jeho identifikátor a nakonec mu přiřadíme hodnotu, kterou chceme, můžeme vynechat defaultní parametry, které jsou před ním (použití je uvedeno třeba zde, u této fce jsou všechny parametry defaultní, tudíž je zde pěkně vidět, že pomocí tohoto můžeme porušit pořadí parametrů) toto ale opravdu nepatří do tutoriálu pro začátečníky, omlouvám se autorovy, jen jsem chtěl podotknout, že to, na co se Isigar ptal, je možné
- 27 odpovědí
-
- nováčik
- začiatočník
-
(a 7 dalších)
Tagged with:
-
určitě to bude stát za to, stavím se
- 26 odpovědí
-
- christmas party
- eep
-
(a 1 další)
Tagged with:
-
pomocí této fce mu těžko nastaví ten nový úhel
-
edit: AddStaticPickup nevrací id pickupu, k tomu je fce CreatePickup, takže zbytečně ukládáš do té proměnné Budova[0][Pickup], ale to by nemělo nijak ovlivnit vytvoření pickupu, zkus zkontrolovat ty pozice
-
to tedy je nepřesná definice, a ano, upozorním tě na to, k čemu to nováčkům bude, když se to už teď špatně naučí... format nespojuje texty, nýbrž nahrazuje zástupné značky (specifikátory) hodnotami proměnných a výsledný řetězec ukládá do nové proměnné potom by možná stálo za to uvést, že proměnné musí být uvedeny ve stejném pořadí jako je pořadí zástupných značek (i taková chyba se v nějakém helpu objevila), ale to už je maličkost
-
GetPlayerName format new str[128]; GetPlayerName(playerid,str,sizeof(str)); format(str,sizeof(str),"%s(id:%d) se odwarpoval na LETIŠTĚ",str,playerid); SendClientMessageToAll(-1,str); nebo si dej do módu tuhle funkci: PlayerName(playerid) { new name[21]; GetPlayerName(playerid,name,sizeof(name)); return name; } a pak to používej takto: new str[128]; format(str,sizeof(str),"%s(id:%d) se odwarpoval na LETIŠTĚ",PlayerName(playerid),playerid); SendClientMessageToAll(-1,str);
-
new PocetHracov; PocetHracov = 0; zbytečně nastavuješ, počáteční hodnota proměnné je 0 btw, máš špatnou kategorii, Help slouží těm, kteří potřebují pomoc