Fr0st 23 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 Dobrý deň.. Môj posledný tutoriál ohľadom banky sa moc nevydaril tak teraz vám sem prinášam nový s viac popísanými funkciami a bez bugov .. Takže. Začneme premenami.. new BankMoney[MAX_PLAYERS]; - Do tejto premeny budeme ukládať hráčove peniaze ktoré má uložené v banke. Teraz si vytvoríme pickup do ktorého keď vstúpime tak sa nám zobrazí dialog z bankovými funkciami. do OnGameModeInit si vložíme : CreatePickup(1274,1,X,Y,Z,VW); - Funkcia CreatePickup ma takéto parametre: - 1274 - ID Pickupu.. Všetky pickupy nájdete na http://wiki.sa-mp.com/wiki/Pickup_IDs - 1 - TYP, 1 znamená že nikdy nezmizne všetky TYPY nájdete na http://wiki.sa-mp.com/wiki/PickupTypes - X,Y,Z - Súradnice kde sa má pickup vytvoriť.. - VW - To je niečo ako hráčov svet.. Keď dáte napr. 3 tak ho bude vidieť iba hráč ktorý je v tom virtual worlde.. Ak chcete aby sa zobrazoval v každom VW zadajte tam -1 takže.. Pickup máme vytvorený. Teraz ideme do funkcie OnPlayerPickupPickup: public OnPlayerPickUpPickup(playerid, pickupid) { if(IsPlayerInRangeOfPoint(playerid,radius,X,Y,Z)) { ShowPlayerDialogEx(playerid,ID,DIALOG_STYLE_LIST,"Banka","Vybrať\nVložiť\nStav","Vybrať","Zrušiť"); } return 1; } - funkcia IsPlayerInRangeOfPoint bola už preddefinovaná v SAMPe takže sa nemusíte strachovať že nebudete mať stock alebo define na to .. Táto funkcia slúži na kontrolu pozície.. Takže si ju prebereme: - playerid - toto je všetkým hadam jasné.. - radius - radius znamená že do akej vzdialenosti od pickupu sa má dialog otvoriť.. - X,Y,Z - Sem vložíme súradnice ktoré sme dávali aj pri funkcií CreatePickup.. - funkcia ShowPlayerDialog slúži na otvorenie dialógu Čo k tomu viac dodať.. Rozoberieme si aj tú: - playerid - toto je všetkým hadam jasné.. - ID - toto je dialogid.. Nikdy nemôžete dať na 2 dialógy to isté ID lebo sa vám bugnú.. - DIALOG_STYLE_LIST - je štýl dialógu.. Všetky štýly nájdete na http://wiki.sa-mp.co...i/Dialog_Styles - "banka" - nadpis v dialógu. - "vybrať\nvložiť\nstav" - toto sú vlastne kolonky ktoré sa dajú stlačiť.. Pozor jak tam nedáte \n dá sa vám to do jedného riadku a bude to nefunkčné.. - "Vybrať" - tlačidlo 1 (response 1) - "Zrušiť" - tlačidlo 0 (response 0) teraz keď už sme si spravili dialóg presunieme sa do public OnDialogResponse.. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == ID) { if(response == 1) { if(listitem == 0) { ShowPlayerDialogEx(playerid,DIALOG_VYBRAT,DIALOG_STYLE_INPUT,"Vybrať peniaze","Napíš koľko chceš vybrať","Vybrať","Zrušiť"); } else if(listitem == 1) { ShowPlayerDialogEx(playerid,DIALOG_VLOZIT,DIALOG_STYLE_INPUT,"Vložiť peniaze","Napíš koľko chceš vložiť","Vložiť","Zrušiť"); } else if(listitem == 2) { new string[128]; format(string,128,"Na tvojom účte je %d $",BankMoney[playerid]); ShowPlayerDialogEx(playerid,DIALOG_STAV,DIALOG_STYLE_MSGBOX,"Stav účtu",string,"OK",""); } } } if(dialogid == DIALOG_VYBRAT) { if(response == 1) { if(BankMoney[playerid] < strval(inputtext)) return SendClientMessage(playerid,-1,"Nemáš toľko na účte"); if(!IsNumeric(inputtext)) return SendClientMessage(playerid,-1,"Musíš zadať číselnú hodnotu !"); BankMoney[playerid]-=strval(inputtext); GivePlayerMoney(playerid,strval(inputtext)); } } if(dialogid == DIALOG_VLOZIT) { if(response == 1) { if(strval(inputtext) > GetPlayerMoney(playerid)) return SendClientMessage(playerid,-1,"Zle zadaná čiastka !"); if(!IsNumeric(inputtext)) return SendClientMessage(playerid,-1,"Musíš zadať číselnú hodnotu !"); BankMoney[playerid]+=strval(inputtext); GivePlayerMoney(playerid,-strval(inputtext)); } } return 1; } Funkcie ktoré nemusia byť nováčikom jasné: - strval(string) - Funkcia ktorá premieňa na čísla.. Neviem ako to mám presne popísať.. - format : - string - premena stringu (new string[128]) - 128 - Veľkosť poľa ktorá bola nadefinovaná v stringu - format - Vlastne sa používa na zobrazenie hodnoty ktorá je ukrytá v premene.. - argumenty - Vlastne tak ako my sme mali mali sme %d tj celé čislo a chceli sme vedieť koľko má dolárov tak sme do argumenta dali BankMoney[playerid].. Keby ste tomu stále nerozumeli tak si to pozrite tu http://wiki.sa-mp.com/wiki/Format - GivePlayerMoney - funkcia pomocou ktorej pripočitáme / odpočitáme hráčovi peniaze.. - playerid, čiastka, tj napr GivePlayerMoney(playerid,4000); pripočíta hráčovi 4000 $.. Všetko ostatné ako je dialogid response atď nejdem vysvetlovať.. Jak neviete robiť s dialógmi tu je nato podrobný tutoriál http://pawno.cz/topi...-vsetko-o-nich/ Niekde do módu si vložte tento stock ale nie do publicu !! stock IsNumeric(const string[]) { new length=strlen(string); if (length==0) return false; for (new i = 0; i < length; i++) { if ((string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')|| (string[i]=='-' && i!=0)|| (string[i]=='+' && i!=0)) return false; } if (length==1 && (string[0]=='-' || string[0]=='+')) return false; return true; } a ešte tento .. Použil som ShowPlayerDialogEx kvôli tomu aby vám nepreskakovali kolonky.. Hore do módu : new bool:ShowedPlayerDialog[MAX_PLAYERS]; Niekde do módu nie do publicu ! stock ShowPlayerDialogEx(playerid, id, style, lis[], mess[], button1[], button2[]) { if(ShowedPlayerDialog[playerid] == true) return false; ShowPlayerDialog(playerid, id, style, lis, mess, button1, button2); ShowedPlayerDialog[playerid] = true; return true; } Do OnDialogResponse pod prvú "{" ShowedPlayerDialog[playerid]=false; Ukladanie : Do OnPlayerConnect: new cesta[50]; format(cesta,50, "/Banky/%s.sav", PlayerName(playerid)); BankMoney[playerid] = dini_Int(cesta, "banka"); Do OnPlayerDisconnect: new cesta[50]; format(cesta, 50, "/Banky/%s.sav", PlayerName(playerid)); if(!dini_Exists(cesta)) { dini_Create(cesta); } else { dini_IntSet(cesta, "banka", BankMoney[playerid]); } stock PlayerName.. : stock PlayerName(playerid) { new name[128]; GetPlayerName(playerid, name, 128); return name; } Na dini tu dával mattsy tutoriál takže to popisovať nemusím.. // Dúfam že sa to bude všetký páčiť a najmä tým ktorý nechceli aby som tento tutoriál spravil .. P.S Nekopírujte ale naučte sa to Jak sa chcete niečo spýtať alebo vám to bolo málo objasnené napíšte mi na skype tomas.spanik1 ! 1 Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 12. Červen, 2013 Administrátor Share Odesláno: 12. Červen, 2013 Za 1. Píšeš návod tak by měl být všeobecný. Tudíš na nějaké ShowPlayerDialogEx na to si sere bílej tesák.(Byť jsi sem fci dal) 2. Scripty s "řešením" v OnPlayerPickUpPickup kde se menu otevře po vstupu na pickup je už trošku starý nemyslíš ? Jinak je to podle mě strašně nepřehledný... Máš tu wyvysg editor tak si hraj s barvou textu a podobně... A prosím tě tabuj Link to comment Share on other sites More sharing options...
FizzyCZE 4 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 Na co mi bude banka, která neukládá peníze? Hrubý nedostatek TeCHNoToMo... Link to comment Share on other sites More sharing options...
Mivčo 90 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 Ja by som si to dal do modu ale mevidim ukladanie aby sa to niekma aj ukladalo asi si to musim spravit Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 12. Červen, 2013 Author Share Odesláno: 12. Červen, 2013 No dobre.. Aj ukladanie dorobím.. // Už som to opravil je pridané aj ukladanie , ewwe keby sa dalo v tabovať tak by som to určite taboval ale písal som to z hlavy takže.. Až na ten stock a ukladanie Link to comment Share on other sites More sharing options...
Mivčo 90 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 JE to dobre hodim si to do modu Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 12. Červen, 2013 Author Share Odesláno: 12. Červen, 2013 Ale sa s toho aj niečo naúč a nieže len CTRL-C a CTRL-V Link to comment Share on other sites More sharing options...
Adrián Lipták 51 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 JE to dobre hodim si to do modu CTRL C/V :rofl: Mg... Technotomo D:D 1 Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 12. Červen, 2013 Author Share Odesláno: 12. Červen, 2013 CTRL C/V :rofl: Mg... Technotomo D:D ? si sjetéj ? Link to comment Share on other sites More sharing options...
Mivčo 90 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 #define DIALOG_VYBRAT #define DIALOG_VLOZIT toto maš kde v lese? Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 12. Červen, 2013 Author Share Odesláno: 12. Červen, 2013 #define DIALOG_VYBRAT #define DIALOG_VLOZIT toto maš kde v lese? tie názvy dialógov som dal len tak nevieš si dať ID dialógu ešte aj to ti tam mám dať ? Link to comment Share on other sites More sharing options...
TheRohlikar 21 Odesláno: 12. Červen, 2013 Share Odesláno: 12. Červen, 2013 Technotomo - Když je to návod, tak tam má být vše.. Ale toto :"JE to dobre hodim si to do modu " - Je zabité xD Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 12. Červen, 2013 Author Share Odesláno: 12. Červen, 2013 Technotomo - Když je to návod, tak tam má být vše.. Ale toto :"JE to dobre hodim si to do modu " - Je zabité xD vieš rožek Ja robím napr toto že ",ID," if(dialogid == ID) aby sa trocha potrápili.. Veď keby som tam všetko spravil tak už to môžem dať rovno do scriptov.. Link to comment Share on other sites More sharing options...
DaNeX 5 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Po dvou týdnech snažení jsem to vzdal. Kdo mě to pošle ve formě FilterScriptu a trochu povysvětlí dostane odměnu ve formě prázdné krabice. Né ale fakt bych to chtěl funkční v Pawnu abych si zkontroloval veškeré chyby které tam mám. Mě to absolutně nefunguje a píše přes 30 Errorů. Raději jsem to smazal abych si nezasral celý mod. Pište na facebook : Danex Kycmer Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Po dvou týdnech snažení jsem to vzdal. Kdo mě to pošle ve formě FilterScriptu a trochu povysvětlí dostane odměnu ve formě prázdné krabice. Né ale fakt bych to chtěl funkční v Pawnu abych si zkontroloval veškeré chyby které tam mám. Mě to absolutně nefunguje a píše přes 30 Errorů. Raději jsem to smazal abych si nezasral celý mod. Pište na facebook : Danex Kycmer Nojo... to je tím že dáváš ctrl + c a ctrl + v a jak koukám tak tobe trva všechno 2*7 dnu... a gratuluju že si oživil starou temu... Link to comment Share on other sites More sharing options...
INSANE_25_ICON 0 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Po dvou týdnech snažení jsem to vzdal. Kdo mě to pošle ve formě FilterScriptu a trochu povysvětlí dostane odměnu ve formě prázdné krabice. Né ale fakt bych to chtěl funkční v Pawnu abych si zkontroloval veškeré chyby které tam mám. Mě to absolutně nefunguje a píše přes 30 Errorů. Raději jsem to smazal abych si nezasral celý mod. Pište na facebook : Danex Kycmer Asi budeš banned Link to comment Share on other sites More sharing options...
Lusky 4 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Po dvou týdnech snažení jsem to vzdal. Kdo mě to pošle ve formě FilterScriptu a trochu povysvětlí dostane odměnu ve formě prázdné krabice. Né ale fakt bych to chtěl funkční v Pawnu abych si zkontroloval veškeré chyby které tam mám. Mě to absolutně nefunguje a píše přes 30 Errorů. Raději jsem to smazal abych si nezasral celý mod. Pište na facebook : Danex Kycmer Ten návod nie aj tak dobre spravený, zdá sa mi, že sa neukladajú peniaze v banke, takže to je zbytočné. Asi budeš banned Prečo by mal? Tu už dávno nikoho nezaujíma, že niekto oživí starú tému. Link to comment Share on other sites More sharing options...
Miroslav 0 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Ten návod nie aj tak dobre spravený, zdá sa mi, že sa neukladajú peniaze v banke, takže to je zbytočné. Ukladaju sa.... Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 16. Září, 2014 Author Share Odesláno: 16. Září, 2014 Ten návod nie aj tak dobre spravený, zdá sa mi, že sa neukladajú peniaze v banke, takže to je zbytočné. Prečo by mal? Tu už dávno nikoho nezaujíma, že niekto oživí starú tému. Ukladanie by malo byť dobre spravené a ak ti nefunguje tak si sprav vlastne. Myslím že to si už každý dokáže spraviť. Je to tutoriál hlavne na banku a nie na ukládanie ... Link to comment Share on other sites More sharing options...
Lusky 4 Odesláno: 16. Září, 2014 Share Odesláno: 16. Září, 2014 Tak to som si pomýlil s tvojím prvým návodom o banke. Neprečítal som si tému, moja chyba. 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