Jump to content

Veškerá aktivita

Tento obsah se sám aktualizuje

  1. Last week
  2. NuMeRe

    pomoc Sprejování Tagu

    Dobře napawním to a pošlu ti screen co a jak dál
  3. Hip

    pomoc Sprejování Tagu

    1. řekl bych, že to bude objekt, takže přes editor nějakej. (Tuším, že se používá tohle: https://www.moddb.com/downloads/san-andreas-multiplayer-map-editor) objekty tam jdou i odstraňovat, respektive vygeneruje ti to kód, kterej to odstraní. 2. to je ten OnPlayerKeyStateChange, nepamatuju si syntaxi, ale jakmile keydown == klavesa ctrl (stejná myslim jako klávesa pro střelbu) && zbraň v ruce == sprej, tak spustíš timer 3. udělej nejdřív to první, pak se z toho kódu dá vycházet dál.
  4. NuMeRe

    pomoc Sprejování Tagu

    Děkuji to jsem udělal základ mám CreateObject / DestroyObject Ale za: 1. v SAMP mám defaultně ty tagy přesprejovane. Jak je mohu odebrat ? 2. Jak by měl vypadat public do kterého mohu vložit podmínku pokud hráč má v ruce sprej a stříká na určité místo 3. U maturity jsem měl 1 z matematiky ale CIN/COS/TAN/DES to po mě nechtěj nebo mi helfni :D :D
  5. Hip

    pomoc Sprejování Tagu

    Přesně jak píšeš. Nejdříve si uděláš graffiti původní - budeš muset namapovat a následně namapuješ nový grafitti. Defaultně budeš zobrazovat jen jeden objekt. Následně v OnPlayerKeyStateChange když stikne uričté klávesy (key down), tak zkontroluješ, zda se hráč nachází u některého z grafitti - IsPlayerInRangeOfPoint, pokud ano, tak zapneš timer na 3 sekundy, kdese po 3 sekundách zavolá funkce, která přidá nový objekt grafitti. A pro kontrolu, zda to držel 3 sekundy použiješ způsob, že pokud se zavolá OnPlayerKeyStateChange kde keyup bude ta kombinace kláves, tak ten timer zrušíš - tím pádem se objekt nepřidá. No a pokud budeš chtít aby se to dělo ikdyž na to míří, tak co udělej jako další krok. K tomu se váže matematika stejná jako v tomto příspěvku:
  6. NuMeRe

    pomoc Sprejování Tagu

    Zdravím, Chci požádat o pomoc. Snažím se marně vytvořit script kde bude objekt tagu ( Tag Gangu BALLAS, Vhagos,Aztecas, A pokud hráč bude mít sprej v ruce a 3 sekundy na ten tag zamíří a bude sprejovat, tak aby po chvilce se ten objekt nahradil za přesprejovaný Tag BALLA na Grove Streat. Poradíte mi prosím jak to mohu zpracovat ?
  7. Tak nakonec se mi to podařilo rozběhat. Vyhodil jsem ten SpannableStringBuilder a připojuju to postupně přímo k tomu TextView a už to funguje Díky moc
  8. Díky za tip, nicméně se zdá, že problém je ještě v něčem jiném. Když překlopím to tvoje řešení do toho svého, tak dosáhnu velice podobného výsledku Jako předtím: TextView sentenceTV = gsa.findViewById(R.id.sentenceTV); SpannableStringBuilder builder = new SpannableStringBuilder(); for(int i = 0; i < currentSentence.length();i++){ try { String letter = currentSentence.getString(i); SpannableString letterSpannable = new SpannableString(letter); SquareBackgroundSpan span = new SquareBackgroundSpan(50, Color.RED); letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); builder.append(letterSpannable); } catch (JSONException e) { e.printStackTrace(); } } sentenceTV.setText(builder, TextView.BufferType.SPANNABLE); S tím, že když nepoužiji ten setSpan, tak se zase normálně zobrazí plaintext, nicméně když ho použiji, tak se tentokrát nezobrazí vůbec nic
  9. Co to udělat takhle? public class SquareBackgroundSpan extends ReplacementSpan { private int mSize; private int mColor; public SquareBackgroundSpan(int size, int color) { mSize = size; mColor = color; } @Override public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) { return mSize; } @Override public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) { paint.setColor(mColor); canvas.drawRect(x, top, x + mSize, bottom, paint); paint.setColor(Color.WHITE); canvas.drawText(text, start, end, x + mSize / 2, y, paint); } } TextView textView = findViewById(R.id.text_view); String text = "A"; SpannableString spannableString = new SpannableString(text); SquareBackgroundSpan span = new SquareBackgroundSpan(50, Color.RED); spannableString.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);
  10. Zdravím, Potřeboval bych poradit ohledně funkce telefonu - v telefonu mám 2 SIM karty. Problém nastává tehdy, když volám například z firemní SIM karty a snaží se mi někdo dovolat na soukromou SIM kartu tak mu to napíše hlášku "Volaný účastník není dostupný". Chtěl bych se zeptat jestli jde nastavit nějak v telefonu aby ho to informovalo že hovořím. Jelikož i mně v průběhu firemního hovoru nepříjde žádné upozornění, že mi někdo volá. Až po skončení hovoru mi příjde SMS že mám zmeškaný hovor. Děkuji předem za odpověď - Telefon Mi 11 lite 5G
  11. Čaute, potřebuju nějakého Android Guru, co dělá v Javě a poradí řešení velice zapeklitého problému. Chci v TextView vykreslit kolem každého jednotlivého znaku čtverec. Po dlouhém bádání jsem došel k následujícímu kódu: TextView sentenceTV = gsa.findViewById(R.id.sentenceTV); SpannableStringBuilder builder = new SpannableStringBuilder(); for(int i = 0; i < currentSentence.length();i++){ try { String letter = currentSentence.getString(i); //currentSentence js JSONArray (pole znaků) Drawable d = gsa.getResources().getDrawable(R.drawable.letter_square); d.setBounds(0, 10, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); SpannableString letterSpannable = new SpannableString(letter); letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //Tady je zakopaný pes letterSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); builder.append(letterSpannable); } catch (JSONException e) { e.printStackTrace(); } } sentenceTV.setText(builder, TextView.BufferType.SPANNABLE); Což je zatím nejvíc, kam jsem se dostal. Problém je, že mi funguje buď zobrazení textu, nebo jen všech rámečků na jednotlivé znaky, ale chybí v nich text. Tzn. když zakomentuju : letterSpannable.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); Tak se zobrazí v TextView obyčejný text. Když to nezakomentuju, zobrazí se místo každého znaku čtvereček, ale jaksi v něm zase chybí ten znak
  12. Earlier
  13. Tak já to pochopil tak že stím chce pomoct a to se bude blbě vyvýjet apka na fóru :D
  14. 😂😂😂 měl jsem pravdu, k čemu je fórum, když je Discord 😂
  15. Flutter dělám a neni uplně pravda že multiplatforma je na prd. Nebo minimálně jsem se stím nesetkal. Napiš mi na DC nějaký další info co to všechno má umět atd
  16. Referencne riesenie nemam; ja som to nezadaval ani s PHP nerobim. Poslal mi to kandidat na PHP juniora, ze co si o tom myslim :D
  17. Ja by som to vyriešil tak, že by som v dialogu zobrazil najskôr všetky dostupné losy a potom všetky kúpené. Najjednoduchšie to budeš mať 2 for cyklami cez všetky losy... V prvom cykle do bufferu nahádžeš všetky dostupné a v druhom všetky nedostupné. Takto zároveň docieliš, že losy v obidvoch skupinách budú v dialogu zoradené podľa čísla losu
  18. Asi nejjednodušší je každému losu, který se nebudou ukládat nikam, ale budou se držet jen po čas běhu serveru, přidávat datum a čas. Pokud si někdo koupí los, tak mu dáš aktuální datum a čas (timestamp) a pak je budeš řadit podle času od nejstaršího k nejnovějšímu
  19. Zdravím, Chci se zeptat, pawním Loterii v dialogu kde bude mít hráč možnost zakoupil si losy. Chtěl bych docílit toho aby hráč který si los č.1 koupí ( Los zakoupí na prvním řádku v DIALOGU se stylem LIST ) tak aby ten zakoupený los skočil úplně na poslední pozici to znamená pod všechny volné losy aby na prvním řádku byl Los číslo 2 (volný k zakoupení )
  20. Pro juniora je to asi moc abstraktní, ale je tam taky otázka, co vlastně bude ve výsledku vyvíjet, jestli bude pracovat na vyzobrazování řeky na mapě, tak asi OK, ale jinak by to možná chtělo ověřit reálné znalosti či schopnosti v provozu. Mimochodem, function rieka pobavilo :D
  21. Vzhledem k tomu, že se věnuju nativním aplikacím pro iOS, tak Tě asi moje odpověď nepřekvapí, ale multiplatformní jsou většinou šrot :D Přidávám se k Hipovi, to už raději jen web, nebo to udělat pořádně.
  22. S javascriptom nerobím, mám niečo málo cez rok komerčnej praxe v C# (považujem sa za juniora) a neprišlo mi to príliš zložité - do hodiny som to zbúchal. Dešifrovanie zadania som zvládol bez väčších problémov, ale viem si predstaviť, že Češi by z toho neboli nadšení... Najväčšia bolesť bolo asi dodržiavanie názvov funkcií a premenných v slovenčine. Máš k tomu nejaké referenčné riešenie? Celkom by ma zaujímalo aj to riešenie od ChatGPT. Ja som vypracoval toto: Každopádne cool obrázky ako odmena za vypracovanie určite potešili
  23. Zdravím, skúsim trochu doplniť Hipa. Obrázok nižšie predstavuje pohľad zhora. Hráč stojí v bode A a jeho postava je natočená smerom α. Hľadáme súradnice bodu X, ktorý je od hráča (bodu A) vzdialený 2 jednotky smerom α. Pre zjednodušenie súradnicu z ignorujeme; predpokladáme, že body A a X sú v rovnakej výške; zaujímajú nás teda iba súradnice x a y bodu X. Na obrázku sú už všetky hodnoty vyplnené, ale na začiatku poznáme iba hráčovu pozíciu (v tomto prípade [0;0]) a uhol α (v tomto prípade 37°). Zvyšok musíme dopočítať... Začneme tým, že si okolo hráča predstavíme jednotkovú kružnicu (t.j. kružnicu s polomerom 1). Akonáhle vypočítame súradnice bodu B, ktorý je priesečníkom jednotkovej kružnice a úsečky spájajúcej body A a X, dostaneme jednotkový vektor (t.j. vektor dĺžky 1), ktorý potom stačí iba prenásobiť požadovanou vzdialenosťou, pripočítať ho k hráčovej pozícii a dostaneme tak súradnice bodu X. Ako vypočítať súradnice bodu B... Na obrázku je vyznačený pravouhlý trojuholník ABC, ktorý má strany a, b, c. Súradnica x bodu B je zhodná s dĺžkou strany b v trojuholníku. Podobne, súradnica y bodu B je zhodná s dĺžkou strany a. Začnime výpočtom dĺžky strany a... V pravouhlom trojuholníku platí, že sínus uhla = veľkosť protiľahlej strany / veľkosť prepony. V našom prípade to môžeme zapísať takto: sin(α) = a / c. Keďže v našom prípade má prepona (c) dĺžku 1, delenie číslom 1 môžeme vynechať a zjednodušiť to na: sin(α) = a. Po konzultácii s kalkulačkou zistíme, že sínus 37 stupňov; teda dĺžka strany a; je približne 0.6 (ako ukazuje obrázok). Podobne výpočet dĺžky strany b... V pravouhlom trojuholníku platí, že kosínus uhla = veľkosť priľahlej strany / veľkosť prepony. V našom prípade to môžeme zapísať takto: cos(α) = b / c. Keďže v našom prípade má prepona (c) dĺžku 1, delenie číslom 1 môžeme vynechať a zjednodušiť to na: cos(α) = b. Po konzultácii s kalkulačkou zistíme, že kosínus 37 stupňov; teda dĺžka strany b; je približne 0.8 (ako ukazuje obrázok). Získali sme jednotkový vektor (0.8;0.6). V našom prípade nás zaujíma bod vzdialený 2 jednotky, takže k hráčovej pozícii [0;0] pripočítame 2-násobok jednotkového vektoru (0.8;0.6). Dostávame tak súradnice bodu X: [0 + 2*0.8; 0 + 2*0.6] = [1.6; 1.2]. Ak by nás zaujímal bod vzdialený napríklad 5 jednotiek, pripočítal by sa 5-násobok jednotkového vektoru (dostali by sme súradnice [0 + 5*0.8; 0 + 5*0.6] = [4;3]. Ak by si sa chcel hrať s GeoGebrou: https://www.geogebra.org/classic/dfydudkd Ako to bude vyzerať v pawne... stock GetPositionInFrontOfPlayer(playerid, &Float:x, &Float:y, &Float:z, Float:distance = 5.0) { new Float:facingAngle; GetPlayerFacingAngle(playerid, facingAngle); facingAngle += 90.0; // 0° v GTA je sever, ale 0° na obrázku je východ, preto korekcia o 90° GetPlayerPos(playerid, x, y, z); x += distance * floatcos(facingAngle, degrees); y += distance * floatsin(facingAngle, degrees); } CMD:warp(playerid, params[]) { new Float:distance; if (sscanf(params, "f", distance)) return SendClientMessage(playerid, -1, "Usage: /warp [distance]"); new Float:x, Float:y, Float:z; GetPositionInFrontOfPlayer(playerid, x, y, z, distance); SetPlayerPos(playerid, x, y, z); return 1; } Ak chceš, aby sa výška cieľového bodu prispôsobila terénu (aby ťa newarplo do textúry), namiesto SetPlayerPos môžeš skúsiť https://sampwiki.blast.hk/wiki/SetPlayerPosFindZ ako radí Hip, alebo ideálnejšie MapAndreas plugin.
  24. Ačkoliv jsou možnosti jako flutter, tak jsem nikdy reálně v tom neviděl nic složitějšího. Vždy se všude řeší obě appky separe. Každopádně za mě taky doporučuji webovou appku, která je mnohem levnější než mobilní appka a mnohem jednodušší na vývoj.
  25. Ono rozhodně bude lepší mít webovou appku s mobilní verzí, než mobilní appku s tím, že do budoucna možná. Nativní mobilní appka zabere více času na vývoj. Bude dražší ať už kvůli tomu, že zabere více času, nebo že bude potřeba lidí, kteří dělají mobilní appky, kteří budou mít větší hodinovku. Určitě se vyplatí zvážit vše. Zda je vůbec nativní mobilní appka potřeba a vynechat důvod, že jednou možná bude potřeba nativních funkcí.
  26. Rozhodně to je jedna z možností, ale vyhlídkově do budoucna uvažjeme nad tím jak by se to dalo rozšíčit a zefektivnit, to že aktuálně nepotřebujeme nativní funkce neznamená že se to za dva roky nezmění, proto by jsme rádi měli tohle podchycené.
  1. Load more activity
×
×
  • Create New...