Jump to content

vEnd

Hlavní moderátor
  • Příspěvků

    772
  • Registrován

  • Aktivní

  • Vítězných dnů

    60

Everything posted by vEnd

  1. vEnd

    script Car spawner

    řádek 1261 není přeložený
  2. vEnd

    pomoc Pocasí

    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 ^^
  3. vEnd

    pomoc GetPlayerID

    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
  4. ty nadávky by ti ještě leckdo odpustil, ale pravopisné chyby nikoliv
  5. '=' přiřazuje hodnotu, pro porovnávaní řetězců použij funkci strcmp
  6. 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
  7. 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)
  8. dobrá, zeptám se tě takto... máš ten FS vůbec načtený, když ho zkoušíš?
  9. 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
  10. pokud ti to nepůjde, tak dodej i kód funkce IsPlayerInSphere
  11. 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; }
  12. vEnd

    pomoc Error

    //-------------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
  13. vEnd

    pomoc Respawn aut

    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
  14. 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
  15. if (!strcmp(params,PrecitatString(SuborHraca(playerid),"Heslo")) podívej se pořádně, "Heslo" je parametr funkce PrecitatString
  16. 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í
  17. 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é
  18. určitě to bude stát za to, stavím se
  19. vEnd

    pomoc SetVehicleZAngle

    pomocí této fce mu těžko nastaví ten nový úhel
  20. vEnd

    pomoc Pickup chyba?

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

    pomoc Pohyb objektu

    funkce MoveObject
  22. vEnd

    návod Format

    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
  23. 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);
  24. 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
×
×
  • Create New...