Jump to content

návod [Tutorial] Jednoduchý příkaz přes strcmp + definice barev


_Dominik_

Recommended Posts

Ahoj,zdravím toto je můj druhý Tutoriál , včera sem založil první a myslím že se vám líbilo tk sem se rozhodl udělat podobně...

--Obsah--

1. Kde takovou funkci vytváříme ?

2. Vytváříme příkaz

3. SendClientMessage

4. Hexadecimální čísla

 

__________________________________________________________________________________________________________________________________________________________________________________________________________________________

1. Kde takovou funkci vytváříme?

Většinou pod:

 

public OnPlayerCommandText(playerid, cmdtext[])

 

2. Vytváříme příkaz

 

Po spuštění pawna a vytvoření nové šablony je po tímto publicem nápověda :

 

if (strcmp("/mycommand", cmdtext, true, 10) == 0)

{

// Do something here

return 1;

}

 

Vývojáři nám ulehčily práci a připravili základ pro příkaz.

 

Takže vytvoříme si příkaz například /ahoj, náš public OnPlayerCommandText by měl vypadat takto :37d032e366_85784830_o2.jpg

Příkaz máme vytvořený, teď si uděláme tělo příkazu, napíšeme /ahoj a poté se nám do chatu odešle zpráva Taky tě zdravím. Takže po této úpravě by měl public vypadat takto :cfb0850991_85784881_o2.jpg

Vysvětlím vám funkci SendClientMessage

 

3.SendClientMessage

SendClientMessage(playerid,0xFFFFFFFF,"Taky tě zdravím!");

 

SendClientMessage - Funkce odesílající do chatu zprávu pro jednoho hráče

( - Začátek závorky značící začátek funkce SendClientMessage

playerid - Hráč, kterému zprávu odešleme, ostatní ji neuvidí. Playerid je hráč zadávající příkaz.

0xFFFFFFFF - Hexadecimální kod pro barvu viz. níže

"Taky te zdravím!" - Naše zpráva, každá zpráva musí mít na začátku i na konce uvozovky " "

) - Konec závorky značící konec funkce SendClientMessage

; - Středník, velmi důležitý na ukončení požadavku, píše se snad všude až na několik vyjímek

 

 

Teď už stačí jen náš script zkompilovat a vložit do modu a zkusit :)

 

4. Hexadecimální čísla

 

Hexadecimální čísla jsou v 16-tkové soustavě a decimální v 10-tkové

Ukážeme si jak převést naši barvu do pawno kodu - tedy hexadecimálního čísla.

Nejdříve si vybereme barvu, otevřeme si malování - součást každého windowsu a klikneme na upravit barvy nebo vlastní barva.

Navolíme si barvu a koukneme se na čísla RGB - tedy red green blue (červená, zelená, modrá)

aa997563d6_85785123_o2.jpg

 

 

Jak vidíte červená je 205, zelená 116 a modrá 50. Tyto tři čísla potřebujeme převést do hexadecimální hodnoty (tedy 16tkové soustavy)

 

Spustíme si kalkulačku (Start-Spustit...-calc) a nastavíme si programátorskou kalkulačku (Zobrazit - Programátorská)

 

Ujistíme se, že máme zaškrtnutou decimální hodnotu na kalkulačce (Dec).

5a7809d867_85785148_o2.jpg

 

Nyní napíšeme první číslo - tedy 205 a poté označíme hexadecimální hodnotu (Hex) a výsledné číslo si někam zapíšeme.

Opět změníme na decimální (Dec) a zapíšeme druhé číslo - 116 a opět překlikneme na hexadecimální (Hex) a zapíšeme číslo.

To samé i se třetím a nakonec by jsme měli dostat těchto 6 čísel : CD 74 32

Teď je jen převedeme do pawna, takže před ně zapíšeme 0x a nakonec FF, takže výsledek bude : 0xCD7432FF

Místo hodnoty FF se dají psát i jiné, ale to je složitější, toto je základ.

No a nyní ve funkci SendClientMessage zapíšeme místo mého 0xFFFFFFFF (tj bílá) tu vaši, takže funkce by měla vypadat takto :

 

SendClientMessage(playerid, 0xCD7432FF,"Taky tě zdravím!");

 

VHODNÉ PRO NOVÁČKY !! - Hodnodte prosím ...

  • Líbí se mi to! (+1) 4
Link to comment
Share on other sites

10 je počet znaků, ne ?

 

true = pravda, ano .. Což znamená, že funkce "strcmp", bo co to je.. Nám zřejmě asi ukazuje, že to napsal.. "strcmp" .. "true" - Napsal bla bla ?... Nevím, tipuji :d

Link to comment
Share on other sites

  • Hlavní moderátor

10 je počet znaků, ne ?

 

true = pravda, ano .. Což znamená, že funkce "strcmp", bo co to je.. Nám zřejmě asi ukazuje, že to napsal.. "strcmp" .. "true" - Napsal bla bla ?... Nevím, tipuji :d

true znamená, že to bude ignorovat velikost písma, čili 'A' bude to samé co 'a'

 

 

když už návod na tvorbu příkazů pomocí strcmp, tak bys také mohl uvést, jak tvořit příkazy s parametry, př. /giveweapon [id] [zbraň] [počet]

 

7.5/10

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 weeks later...
  • 3 weeks later...

10 je počet znaků, ne ?

 

true = pravda, ano .. Což znamená, že funkce "strcmp", bo co to je.. Nám zřejmě asi ukazuje, že to napsal.. "strcmp" .. "true" - Napsal bla bla ?... Nevím, tipuji :d

Nemas paru jenom hadas :)

to 10 je pocet znaku ktere ta funkce porovnava, pomoci tohoto lze krasne pouzivat v prikazech parametry.

a true a false je ignorace velkych a malych pismen

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

10000/10 dobé pomohlo mi thx

Aj matematika by ti pomohla.

 

K téme:

Páči sa mi ako si vysvetlil ten prevod farieb. Inak:

if (strcmp("/mycommand", cmdtext, true, 10) == 0)

Už je rok 2013, používa ešte niekto tieto zastaralé typy príkazov?

Link to comment
Share on other sites

 

Aj matematika by ti pomohla.

 

K téme:

Páči sa mi ako si vysvetlil ten prevod farieb. Inak:

if (strcmp("/mycommand", cmdtext, true, 10) == 0)

Už je rok 2013, používa ešte niekto tieto zastaralé typy príkazov?

ten kdo se učí teprve příkaz /heal /zbran jo;)

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...