Majitel ffredyk 168 Odesláno: 11. Září, 2009 Majitel Share Odesláno: 11. Září, 2009 Tutorial 1. Jak zacit.. Uvod Taakze .. Jsem se rozhodl (Pac tdy na foru je plno lidi co pawn neumeji a umet ho chteji) udelat dalsi (sry to all) topicy kde budu psat tutorialy jak zacit s pawnem a jak se ho co nejkratsi cestou nasprtat.. Program pawno Program pawno je usnadnujici aplikace, diky ktere muzeme snadneji psat jazyk pawn.. Vyuzit muzeme samozrejme jakykoliv poznamkovy blok nebo wordpad nebo cokoliv jineho (Nevim jak je to s Wordem).. Takze ja se vrhnu na oficialni program pro psani pawno od tymu SA:MP. Ze vseho nejdriv kdyz si pustime program vidime prazdnou obrazovku: Obrazek.1 Vysvetlivky: 1. Vytvorit novy projekt = Otevre se okno kde muzete psat vase scripty. Tam budeme pracovat.. 2. Otevrit jiz existujici projekt = Otevre se okno kde musite najit jiz jednou ulozeny projekt kde muzete pokracovat ve psani scriptu.. Takze my klikneme na "Vytvorit novy projekt" (Obr.1 , 1.) a tam potom mame toto: Obrazek.2 Vsimete si, ze se nam nahore "rozsvitili" dalsi tlacitka.. Disketa znamena "Ulozit projekt", Dalekohled je zkratka pro "Najit ve scriptu", ktera je velice vhodna jakmile mate script o hodnote 1 000 radku a vice (Ja osobne tuto funkce hojne vyuzivam).. Dalsi 2 tlacitka znaci najit dalsi a najit predchozi (Jen kdyz jste pred tim vyuzili funkci "Najit ve scriptu") a dalsi tlacitko je funkce, kterou moc lidi nevyuziva (V moji blizkosti opravdu nikdo) a tak ji vynechame (Sam moc nwm k cemu slouzi ).. No a dalsi 2 tlacitka ( ) Jsou pro kompilaci scriptu (Velice dulezite!), budeme ji potrebovat pri kontrole chyb a po dokonceni scriptu pro prevedeni .pwn do .amx a posleze dalsimu pouziti na serveru.. Posledni tlacitko je napoveda, kde mate ruzne prispevky a komentare.. Anglicky samozrejme.. Prvni script Ted je na case udelat si jednoduchou, ale dulezitou pro nas script.. Pro novacky je nejjednodusi pouzit system rychlych prikazu DCMD, proto budeme delat v nem (Ja v nem delam porad).. Pro pouzivani DCMD potrebujeme jeji definici: #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 Tu dame na zacatek (nahoru) naseho scriptu.. Takze pote muzeme zacit delat DCMD prikazy.. My si tu udelame jednoduchy prikaz /help v DCMD.. Takze si najdeme public "OnPlayerCommandText" (public je volan serverem kdyz ho hrac splni.. To znamena ze kdyz hrac zemre vyvola se public OnPlayerDeath), kde si napiseme jednoduchy kod: dcmd(help,4,cmdtext); //Prikaz piseme bez "/" a 4 je tam proto ze slovicko "help" ma 4 znaky.. "cmdtext" je tam proto, ze nam ho public dodava a DCMD si potrebuje tuto promenou prevzit.. Kdyz mame tohle napsane.. A zmackneme F5 (Kompilace scriptu), tak nam pawno vyplivne chybu (error 017: undefined symbol "dcmd_help").. Ta je tam proto ze prikaz nema kde byt volan.. Proto sjedeme v pawnu az dolu, kde napiseme kod: dcmd_help(playerid,params[]){ //dcmd_help proto, ze DCMD potrebuje vedet, ze je to prave jeho volaci funkce.. "playerid" a "params[]" jsou promene ktere muzeme vyuzit.. (Ale take nemusime) To ale neni vse! Aby nas prikaz mohl fungovat potrebujeme take nejake funkce uvnitr a nakonec DCMD take zavrit .. Takze napiseme pod to: SCM(playerid,BARVA,"Ahoj toto je muj prvni prikaz :)"); //Vysvetleno nize.. SCM(playerid,BARVA,"Jmenuji se tak a tak :)"); //Taktez vysvetleno nize.. return 1; //Toto je potreba pro to, aby nam server neplival, ze prikaz je nespravny.. } //Pro uzavreni prikazu.. Dulezite! Kdyz chybi pawno plive chybu! SCM je zkratka pro "SendClientMessage".. Jenze to je moc dlouhe a tak si nahore udelame definici (Jednoduse napiseme pod definici DCMD ) "#define SCM SendClientMessage".. Tak ted mame definovano SCM a muzeme se pustit do parametru teto funkce.. "playerid" je promena kterou DCMD prevezme od publicu a doda ji nasemu prikazu.. Znaci ID hrace, ktery prikaz napsal.. Takze pri pouziti ve funkci ta funkce pusobi jen na daneho hrace.. "BARVA" je take definice.. Takze nahoru do modu "#define BARVA 0xFF0000AA" a muzeme jet dal.. Text ktery tam mame je ten text, ktery se zobrazi hraci pri napsani prikazu "/help" (Zmente si ) Ted mame nas vlastni prikaz.. Zde jsem vam vysvetlil definici a pouziti DCMD.. Je to podle me to hlavni co by se mel zacatecnik naucit.. Vim ze zacnete rikat ze se maji nejdriv ucit newy a includy.. Ale naco to kdyz to pri tak jednoduchem prikazu nebude potreba.. Tento tut je psan pro naproste "blbce" kdyz to tak reknu.. Kdyby to psal fakt jako poradnej pawno scripter tak sem prdne: Co to je new, define, include, forward a odesle.. Ja vam to chci vysvetlit od naprosto jednoduchych funkci az po ty tezsi.. Pls piste sem co nejvic kritiky, rad, dotazu apod.. Tut mi trval pul hodiny a rad bych vedel jestli ma cenu pokracovat.. Aneb chci rict, ze lama at se snazis sebevic si nenajde tu spravnou cestu.. (Hledat, procitani tutu atd..) Link to comment Share on other sites More sharing options...
Mischino19 2 Odesláno: 11. Září, 2009 Share Odesláno: 11. Září, 2009 lol nedal si tam definiciu na SCM ako sendclientmessage Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 11. Září, 2009 Author Majitel Share Odesláno: 11. Září, 2009 lol nedal si tam definiciu na SCM ako sendclientmessage Nj sry.. Mel jsem tam SendPlayerMessage.. Chybicka se vloudila xD dik.. Link to comment Share on other sites More sharing options...
Mischino19 2 Odesláno: 11. Září, 2009 Share Odesláno: 11. Září, 2009 j x) ae je to pekne pre newbie x) Link to comment Share on other sites More sharing options...
7.Host 3 Odesláno: 11. Září, 2009 Share Odesláno: 11. Září, 2009 docela good jen bych nedával to SCM protože to nepochopí pak Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 11. Září, 2009 Author Majitel Share Odesláno: 11. Září, 2009 Jednou se to naucit musi a kdyz to nepochopi tak pawno neni pro ne Link to comment Share on other sites More sharing options...
Mischino19 2 Odesláno: 11. Září, 2009 Share Odesláno: 11. Září, 2009 pre vsetkych co newedia co to je SCM SCM-SendClientMessage pouziva sa pri vytvoreni sprav Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 11. Září, 2009 Author Majitel Share Odesláno: 11. Září, 2009 Nj ale to uz je vysvetleno nahore BTW: Ten tvuj avatar se mi hrozne libi.. Porad na to musim cucet xD Link to comment Share on other sites More sharing options...
癌癌癌 1 Odesláno: 11. Září, 2009 Share Odesláno: 11. Září, 2009 Nj je to dobrý ale zarazilo me třeba: "cmdtext" je tam proto, ze nam ho public dodava a DCMD si potrebuje tuto promenou prevzit.. jo a kde ji vidiš že ji převezme??... je to kvuli ty definici zadivej se do ní je to prostě jako v strcmp ... porovnava to taky "cmdtext" s "cmdtextkterejzadal" (pitomost ) takže on ji nikam nebere ... look at this: dcmd_help(playerid,params[]) i can't see here "cmdtext" proměnnou Prostě si ji převezme ale tajně a nikoho s tim neotravuje ... a už neni pak dal použito jen na tu definici ... tak bych to řekl já .. a myslim že ty lamy to setejně nezajima k čemu to tam je ... pokud se chcete hádat otý proměnný tak klidně argumentů mám dost ... (neberte me do puntíků nejsem žádnej puntíčkář, ale je to tkakovy divny tuto promennou prevzit...) Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 12. Září, 2009 Author Majitel Share Odesláno: 12. Září, 2009 Nj je to dobrý ale zarazilo me třeba: "cmdtext" je tam proto, ze nam ho public dodava a DCMD si potrebuje tuto promenou prevzit.. jo a kde ji vidiš že ji převezme??... je to kvuli ty definici zadivej se do ní je to prostě jako v strcmp ... porovnava to taky "cmdtext" s "cmdtextkterejzadal" (pitomost ) takže on ji nikam nebere ... look at this: dcmd_help(playerid,params[]) i can't see here "cmdtext" proměnnou Prostě si ji převezme ale tajně a nikoho s tim neotravuje ... a už neni pak dal použito jen na tu definici ... tak bych to řekl já .. a myslim že ty lamy to setejně nezajima k čemu to tam je ... pokud se chcete hádat otý proměnný tak klidně argumentů mám dost ... (neberte me do puntíků nejsem žádnej puntíčkář, ale je to tkakovy divny tuto promennou prevzit...) No vidis ja vim k cemu to tam je ale nevedel em jak to vysvetlit tak aby to pochopil i ten intelient s IQ 20.. Thx.. Link to comment Share on other sites More sharing options...
Mischino19 2 Odesláno: 12. Září, 2009 Share Odesláno: 12. Září, 2009 Nj ale to uz je vysvetleno nahore BTW: Ten tvuj avatar se mi hrozne libi.. Porad na to musim cucet xD tak kukaj preto ho tu mam xD Link to comment Share on other sites More sharing options...
Guest pepo3333 Odesláno: 12. Září, 2009 Share Odesláno: 12. Září, 2009 Preco rovno tu nedate video navod Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 12. Září, 2009 Author Majitel Share Odesláno: 12. Září, 2009 Ale porad sem se nedozvedel zda mam pokracovat a cim Link to comment Share on other sites More sharing options...
Guest The Camper Odesláno: 17. Říjen, 2009 Share Odesláno: 17. Říjen, 2009 Dobrej návod docela mně pomohl ale pokračuj dále stímto,rád bych se naučil pawno celý Link to comment Share on other sites More sharing options...
Guest Calebs Odesláno: 17. Říjen, 2009 Share Odesláno: 17. Říjen, 2009 Dobrej návod jen tak dál pokračuj, ale rychlejší a lepší si myslím že by to bylo kdybys dělal video návody třeba s komentama nebo titulkama Link to comment Share on other sites More sharing options...
Patrony 0 Odesláno: 17. Říjen, 2009 Share Odesláno: 17. Říjen, 2009 freddyk vzdycky přijde s nějakym dobrym nápadem , jenom jsi psal že je tu PLNO lidí, kteří pawno neumí a chtějí ho umět. Potom taky platí že je tu PLNO lidí kteří tenhle tutoriál ani nedokáží najít . No a být newbie tak se hned zezačátku leknu tej definice DCMD a uteču . Ale jinak dobrej nápad a pěkně popsaný... teď je ještě nauč, aby si ten návod dokázali najít :arrow: Link to comment Share on other sites More sharing options...
tbx 7 Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 Poradte prosím píše mi to chyby C:\Documents and Settings\***\Plocha\***\***.pwn(114) : error 017: undefined symbol "dcmd" C:\Documents and Settings\***\Plocha\***\***.pwn(188) : warning 203: symbol is never used: "dcmd_help" poradíte mi prosím ? Link to comment Share on other sites More sharing options...
Jean 0 Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 tohle si dej nahoru pod include a priste lepe cti...! Link to comment Share on other sites More sharing options...
tbx 7 Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 tohle si dej nahoru pod include a priste lepe cti...! Četl jsem to dobře a dokonce to tam i mam. Ale přesto to nefunguje Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 18. Říjen, 2009 Author Majitel Share Odesláno: 18. Říjen, 2009 #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 tohle si dej nahoru pod include a priste lepe cti...! Četl jsem to dobře a dokonce to tam i mam. Ale přesto to nefunguje Ukaz prikaz v publicu OnPlayerCommandText a ptom samotnou dcmd funkci Link to comment Share on other sites More sharing options...
Guest Calebs Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 definice je dobře ukaž nám celé tvé pawno, pak budeme vědět toho o mnoho víc (příště nespamuj tady to moc lidí nemá rádo, používej edit) Link to comment Share on other sites More sharing options...
tbx 7 Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(help,4,cmdtext); return 1; } dcmd_help(playerid,params[]) { //dcmd_help proto, ze DCMD potrebuje vedet, ze je to prave jeho volaci funkce.. "playerid" a "params[]" jsou promene ktere muzeme vyuzit.. (Ale take nemusime) SCM(playerid,B_MODR,"Ahoj toto je muj prvni prikaz :)"); //Vysvetleno nize.. SCM(playerid,B_MODR,"Jmenuji se tak a tak :)"); //Taktez vysvetleno nize.. return 1; //Toto je potreba pro to, aby nam server neplival, ze prikaz je nespravny.. } //Pro uzavreni prikazu.. Dulezite! Kdyz chybi pawno plive chybu! Link to comment Share on other sites More sharing options...
Majitel ffredyk 168 Odesláno: 18. Říjen, 2009 Author Majitel Share Odesláno: 18. Říjen, 2009 Mas neco blbe v ty definici.. Skus si ji prepsat... Link to comment Share on other sites More sharing options...
tbx 7 Odesláno: 18. Říjen, 2009 Share Odesláno: 18. Říjen, 2009 Mas neco blbe v ty definici.. Skus si ji prepsat... definici mam tak jak tam je ˇˇ #define dcmd(%1,%2,%3)if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2])))))return 1 edit definice je asi spatne dal sem tam : #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 (je to z jinyho tutu na register a login mno ale ted mi to pise : C:\Documents and Settings\***\Plocha\***\***.pwn(186) : warning 203: symbol is never used: "params" Link to comment Share on other sites More sharing options...
filip212 0 Odesláno: 20. Říjen, 2009 Share Odesláno: 20. Říjen, 2009 Píše mi to túto chybu: C:\samp\pawno\ktmr 0.1b.pwn(178) : warning 203: symbol is never used: "params" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Warning. Mám to takto: Riadok 178-182 dcmd_help(playerid,params[]){ //dcmd_help proto, ze DCMD potrebuje vedet, ze je to prave jeho volaci funkce.. "playerid" a "params[]" jsou promene ktere muzeme vyuzit.. (Ale take nemusime) SCM(playerid,BARVA,"Zoznam príkazov:"); //Vysvetleno nize.. SCM(playerid,BARVA,"Doplním"); //Taktez vysvetleno nize.. return 1; //Toto je potreba pro to, aby nam server neplival, ze prikaz je nespravny.. } //Pro uzavreni prikazu.. Dulezite! Kdyz chybi pawno plive chybu! Mám takú istú chybu ako on... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now