AvestX 5 Odesláno: 8. Červenec, 2012 Share Odesláno: 8. Červenec, 2012 Zdravím, podobné tuty už tu zhřejmě jsou, ale nevysvětlují jak správně využívat stock a jak si vylehčit tvorbu modu / filterscriptu. Ano, můžete psát přízpěvky typu "Toto tu už je" ale snažím se vysvětlit jak užitečná tato funkce kterou většina začátačeních pawnerů nevyužívá. stock, co si představujeme pod pojmem stock v jazyce pawn? něco jako forward a public, jeden řádek a více funkcí, je to podobné, je to vlastně stejné jako #define takže vám vysvětlím jak stock využívat v praxi... Příklad: stock HracovoPoziceZ(playerid) { new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } teď máme funkci kterou můžeme využít třeba k zjištění pozice Z, return Z; znamená že funkce vrací desetiné číslo Z, takže třeba new string[50]; format(string, 50, "vyska souradnice Z na ktere jsi je %f", HracovoPoziceZ(playerid)); pote do textu do ktereho date string vypise text neco ve stylu vyska souradnice Z na ktere jsi je 0.00 to stejne uz znama funkce Jmeno(playerid), pName(playerid) a podobne take vraci do stringu vase jmeno tedy myslim stock Jmeno(i) { new n[26]; GetPlayerName(playerid, n, sizeof(n)); return n; } Dale vyuziti stocku muzeme napriklad aby jste nemuseli psat zdlouhave kody naprikad v prodejne zbrani kde 20x zadavate kontrolu kolik hrac ma penez, text a zbran kterou mu zadate, neni lepsi toto cele vyresit po jednom radku? co myslite? usetrite tim jak cas tak i script bude vypadat lepe, toto udelame takto stock GivePlayerBuyWeapon(playerid, buymoney, jmenozbrane[], weaponid, weaponammo) { new string[256]; if(GetPlayerMoney(playerid) >= buymoney) { GivePlayerMoney(playerid, -buymoney); GivePlayerWeapon(playerid, weaponid, weaponammo); format(string, sizeof(string), "Zakoupil jste si zbran ''%s'' za %d$ !", jmenozbrane, buymoney); }else{ format(string, sizeof(string), "Na zakoupeni zbrane ''%s'' potrebujete %d$ !", jmenozbrane, buymoney); SendClientmessage(playerid, -1, string); } return true; } pak treba v dialogu kterym davate zbrane misto neustaleho opakovani kodu podobneho ve stocku davate pouze if(dialogid == DIALOG_WEAPON) { if(response) { switch(listitem) { case 0: GivePlayerBuyWeapon(playerid, 270, "Vibrator1", 11, 1); case 1: GivePlayerBuyWeapon(playerid, 300, "Vibrator2", 12, 1); case 2: GivePlayerBuyWeapon(playerid, 405, "Vibrator3", 13, 1); case 3: GivePlayerBuyWeapon(playerid, 560, "Vibrator4", 14, 1); } } } Zamyslete se nad sebou jak budete psat script, jakym zpusobem a jakym stylem obcas stoji za to se nad sebou zamyslet Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 8. Červenec, 2012 Share Odesláno: 8. Červenec, 2012 pekné ) až na pár chýb 10/10 Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 8. Červenec, 2012 Share Odesláno: 8. Červenec, 2012 Chybí mi tam informace, jaký je rozdíl mezi stock a public. A navíc, ne vždy se vyplatí si takto ušetřit práci a použít stock, třeba ten druhý příklad jde udělat daleko lépe, co se týče optimalizace. Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 8. Červenec, 2012 Author Share Odesláno: 8. Červenec, 2012 stock se používá většínou když z něčeho potřebuji dostat nějákou hodnotu, jako třeba pName a podobně, public je většínou na větší funkce, (raději ale používám stock) .. Link to comment Share on other sites More sharing options...
Guest Odesláno: 8. Červenec, 2012 Share Odesláno: 8. Červenec, 2012 stock HracovoPoziceZ(playerid) { new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } by malo byť asi stock Float:HracovoPoziceZ(playerid) { new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 8. Červenec, 2012 Administrátor Share Odesláno: 8. Červenec, 2012 stock Jmeno(i) { new n[26]; GetPlayerName(playerid, n, sizeof(n)); return n; } asi mělo být stock Jmeno(i) { new n[26]; GetPlayerName(i, n, sizeof(n)); return n; } že ? Link to comment Share on other sites More sharing options...
Ad@m 0 Odesláno: 8. Červenec, 2012 Share Odesláno: 8. Červenec, 2012 :D stock HracovoPoziceZ(playerid){ new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } by malo byť asi stock Float:HracovoPoziceZ(playerid) { new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } stock Jmeno(i){ new n[26]; GetPlayerName(playerid, n, sizeof(n)); return n; } asi mělo být stock Jmeno(i) { new n[26]; GetPlayerName(i, n, sizeof(n)); return n; } že ? mne to pride smiešne ked niekto spravý TUT a smeju sa mu že má zaklad zlý ale inak super využijem do GM :D Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 8. Červenec, 2012 Administrátor Share Odesláno: 8. Červenec, 2012 :Dstock HracovoPoziceZ(playerid){ new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } by malo byť asi stock Float:HracovoPoziceZ(playerid) { new Float:Z; GetPlayerPos(playerid, -1,-1,Z); return Z; } stock Jmeno(i){ new n[26]; GetPlayerName(playerid, n, sizeof(n)); return n; } asi mělo být stock Jmeno(i) { new n[26]; GetPlayerName(i, n, sizeof(n)); return n; } že ? mne to pride smiešne ked niekto spravý TUT a smeju sa mu že má zaklad zlý ale inak super využijem do GM :D Psal to na rychlo holt se stává narozdíl od tebe už toho dokázal v pawn 100x tolik tak si nějakou tu "gramatickou" chybu v kodu může dovolit 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