Jump to content

Lukasz

Obsahový guru
  • Příspěvků

    916
  • Registrován

  • Aktivní

  • Vítězných dnů

    75

Everything posted by Lukasz

  1. Lukasz

    pomoc Hasic ohen

    Takhle nějak to bude vypadat // deklarace proměnných new hpOhen[POCET_OBJEKTU]; // pole pro "hp" ohně new idOhen[POCET_OBJEKTU]; // pole pro id objektu ohně // vytváření ohně idOhen[0] = CreateObject(....); // objekty s modelem ohně idOhen[1] = CreateObject(....); hpOhen[0] = 100; // nastavení života na 100, při větším množství použij cyklus hpOhen[1] = 100; // zapnutí možnosti uhašení ohně: EnablePlayerCameraTarget(playerid, true); // vypnutí (po dokončení mise atd) EnablePlayerCameraTarget(playerid, false); // někde v publicu, kde to budeš kontrolovat (nedoporučuji OnPlayerUpdate) // pozn. Odstranění jednoho ohně neznamená, že uhasil všechny! if( sedí v hasičáku, nebo má hasičák, střílí z nich, má aktivovanou misi a bůh ví co ) { new Float:pos[3]; new obj = GetPlayerCameraTargetObject(playerid); GetObjectPos(obj, pos[0], pos[1], pos[3]); if(obj != INVALID_OBJECT_ID && IsPlayerInRangeOfPoint(playerid, rozsah, pos[0], pos[1], pos[2])) { for(new i = 0; i < POCET_OBJEKTU; i++) { if(obj == idOhen[i]) { hpOhen[i]--; // odebereme život if(hpOhen[i] <= 0) // pokud životy došly odstraníme oheň a dáme odměnu { DestroyObject(obj); Odměna, další cp atd break; } } } } } // EDIT: napadá mě, že funkce GetPlayerCameraTargetObject nemusí fungovat na objekty bez kolize (takže i objekt ohně). Jestli je tomu tak, tak to obejdi vytvořením nějakého neviditelného objektu a kontroly jestli míří na něj.
  2. Lukasz

    pomoc Ban system

    K měření inteligence se používá inteligenční kvocient (IQ) ne %. Poradil jsem mu dobře, jak se zbavit všech cheaterů. Mou radu ale musíš brát trochu s nadsázkou (ano, nemyslím jí vážně). Jiný způsob na zbavení cheaterů než zabanovat komplet všechny není. Jsou způsoby jak jim trošku znepříjemnit připojování atd (viz rady nahoře) ale ty se dají obejít, nejsou moc efektivní a jsou celkem k ničemu (viz moje předchozí odpověď). Přeji pěkný den.
  3. Lukasz

    pomoc Hasic ohen

    Vytvářej oheň přes objekty, ne přes exploze. Nastav těm objektům "HP" a pak testuj jestli hráč je ve vozidle, nebo drží hasičák, jestli kouká na ten objekt, jestli je v dostatečné vzdálenosti. jestli "střílí". Pokud vše splňuje tak odebírej danému obejktu "HP", až bude "HP" nulové, tak objekt odeber a dej mu odměnu a zobraz další CP. Ohně přes CreateExplosion jsou client side a vytvoří se jen hráčům, kterým se ta exploze streamuje.
  4. Lukasz

    pomoc Ban system

    Banovat rozsah ip adres není moc dobrý. Tím vaším "255.255.*.*" zabanujete tisíce ip adres tzn tisíce potencionálních hráčů kvůli jedinému hráči. Gpci taky není moc dobré řešení. Hash který touto funkcí dostanete není unikátní a dá se měnit snad ještě snadněji jak ip adresa. Prostě tahle funkce není na banování.. Jestli se chceš zbavit cheaterů nadobro, použij tento příkaz. /rcon banip *.*.*.*
  5. Lukasz

    pomoc Ban system

    MAC adresu nezjistíš. Takže ne.
  6. Lukasz

    script VTIP SYSTEM

    Gratuluju Armymu k okopírování, co jsem mu opravil aniž by o tom napsal slovo. Pořád ti to nepůjde kvůli #if defined FILTERSCRIPT, tak si ten řádek smaž ano? Pro někoho koho by to zajímalo, tak nějak takhle vypadaly jeho příkazy: public OnPlayerCommandText(playerid, cmdtext[]) if (strcmp("/vtipy", cmdtext, true, 10) == 0) { SendClientMessage(playerid,0xffd700,"Vtipy můžeš dávat všem příkazem /VTIP [ 0 - 5 ]"); SendClientMessage(playerid,0xffd700,"VTIP SYSTEM 1.0 vytvořil ArmyCZ97"); } return 0; } public OnPlayerCommandText(playerid, cmdtext[]) if (strcmp("/vtip 0", cmdtext, true, 10) == 0) { SendClientMessageToAll(0xffd700,"Hráč %s spustil VTIP 0"); SendClientMessageToAll(0xffffff,"Víte, jaký je rozdíl mezi ženou a těstem?"); SendClientMessageToAll(0xffffff,"Žena se nejdříve válí a pak kyne a těsto nejdříve kyne a pak se válí."); } return 0; } public OnPlayerCommandText(playerid, cmdtext[]) if (strcmp("/vtip 1", cmdtext, true, 10) == 0) { SendClientMessageToAll(0xffd700,"Hráč %s spustil VTIP 1"); SendClientMessageToAll(0xffffff,"Mám velké trápení se ženou. Denně chodí spát až kolem třetí ráno."); SendClientMessageToAll(0xffffff,"A co do té doby dělá? Čeká, až se vrátím z hospody!"); } return 0; } GJ (up)
  7. Lukasz

    script VTIP SYSTEM

    Tak to jsi teda netestoval ani náhodou, protože tohle funkční rozhodně není. Po tom, co to zkompiluješ tam budeš mít pouze #include <a_samp> Protože nemáš definovaný FILTERSCRIPT, takže se vše pod #if defined FILTERSCIPT až do #endif ignoruje.. Pak také 3 publicy OnPlayerCommandText.. ech to jsi zase viděl kde? Takže opravená verze: #include <a_samp> public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/vtipy", cmdtext) == 0) { SendClientMessage(playerid,0xffd700,"Vtipy můžeš dávat všem příkazem /VTIP [ 0 - 5 ]"); return SendClientMessage(playerid,0xffd700,"VTIP SYSTEM 1.0 vytvořil ArmyCZ97"); } if (strcmp("/vtip 0", cmdtext) == 0) { new msg[60]; GetPlayerName(playerid, msg, MAX_PLAYER_NAME + 1); format(msg, sizeof(msg), "Hráč %s spustil VTIP 0", msg); SendClientMessageToAll(0xffd700,msg); SendClientMessageToAll(0xffffff,"Víte, jaký je rozdíl mezi ženou a těstem?"); return SendClientMessageToAll(0xffffff,"Žena se nejdříve válí a pak kyne a těsto nejdříve kyne a pak se válí."); } if (strcmp("/vtip 1", cmdtext) == 0) { new msg[60]; GetPlayerName(playerid, msg, MAX_PLAYER_NAME + 1); format(msg, sizeof(msg), "Hráč %s spustil VTIP 1", msg); SendClientMessageToAll(0xffd700,msg); SendClientMessageToAll(0xffffff,"Mám velké trápení se ženou. Denně chodí spát až kolem třetí ráno."); return SendClientMessageToAll(0xffffff,"A co do té doby dělá? Čeká, až se vrátím z hospody!"); } return 0; } Takhle bohatě stačí celý script. Pokud někdo máte o něco takového zájem, kopírujte tohle moje a ne autorovo.
  8. Není moc dobrý používat YSI a nedat k tomu link atd. Akorát z toho budou další topicy a ne každý to chce používat Zkoušel si to vůbec? Protože takhle jak to máš je to nefunkční. if (strlen(params) < 131) return SendClientMessage(playerid, -1, "[ ! ] Zadal jste moc málo znaků !"); va_SendClientMessage(i, 0xFF000000, "Hráč se ptá: %s"); a zas by to chtělo místo "100" psát MAX_PLAYERS
×
×
  • Create New...