Emppu 2 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 [TuT] Povolání přes dialog Obtížnost: (podle pravidel doplní tuteři) Obsah: [*:1tohn3rv] Úvod[*:1tohn3rv] Co je to dialog?[*:1tohn3rv] Co budeme využívat?[*:1tohn3rv] Kódy a vysvětlení Upozornění: Výplaty nejsou součástí tutorialu, toto je pouze vysvětlení principu Úvod: Pro začátek - vím, že to tu je, ale žádný není v sekci "Návody", proto se ho tam pokusím dostat. Proč tedy zrovna přes dialog? Dle mého názoru se tam hodí. My budeme vytvářet dialog s dvěma možnostmi: Chceš se přidat k taxikářům? (Ano) (Ne). Po tomto kroku hráč dostane zbraně a skin. Co je to dialog? Dialog je okno, kde je otázka, 1 - 2 tlačítka, popřípadě seznam. Ten co budeme využívat my vypadá asi takto: Myslím, že na vysvětlní Co je to dialog to zatím stačí. Pawněním a samozdřejmě i hraním se seznámíte s více druhy dialogu. Co budeme využívat? 1) Samozdřejmě proměnné 2) Barvy 3) Různé zkratky, jako třeba SCM 4) IsPlayerInSphere 5) Dialogy 6) }else{ 7) if(... Kódy a vysvětlení Takže, budeme potřebovat includ a_samp (v novém scriptu už je): #include Přidáme pragmu kvůli tabování: #pragma tabsize 0 Teď bychom si měli udělat definice: #define COLOR_YELLOW 0xFFFF00AA #define taxikar 4 #define SCM SendClienMessage #define COLOR_YELLOW 0xFFFF00AA #define taxikar 4 #define SCM SendClienMessage Definujeme si COLOR_RED jako barvu Definujeme "taxikar" jako dialog s ID 4 Pro ulehčení - nadefinujeme SCM jako SendClientMessage Teď si musíme vytvořit nějaké proměnné new Job; new taxikarpick[1]; new Job; new taxikarpick[1]; Proměnná povolání Proměnná pickupu Teď se přesuneme k publicu OnGameModeInit... Zde si vytvoříme pickup na námi určených souřadnicích X, Y a Z. (Souřadnice tam dávám jako ukázkové) taxikarpick[0] = CreatePickup(1581,1,2183.6685,1805.3363,11.0000); taxikarpick[0] = CreatePickup(1581,1,2183.6685,1805.3363,11.0000); Vytvoří pickup s id 1581 na zapsaných souřadnicích. Dovolí jej vyvolávat jako "taxikar" Nyní se přesuneme k publicu OnPlayerPickuPickup a vytvoříme si dialog: if(pickupid == taxikar) { ShowPlayerDialog(playerid,taxikarpick[0],DIALOG_STYLE_MSGBOX,"Zaměstnání - Taxikář", "Chceš se zaměstnat jako taxikář?","Ano","Ne"); } if(pickupid == taxikar) { ShowPlayerDialog(playerid,taxikar,DIALOG_STYLE_MSGBOX,"Zaměstnání - Taxikář", "Chceš se zaměstnat jako taxikář?","Ano","Ne"); } Pokud je ID pickupu Ukáže hráči dialog s ID playerid (Nahoře jsme jej definovali). Typ dialogu bude MSGBOX, nadpis Zaměstnání - Taxikář, otázka Chceš se zaměstnant jako taxikář? Odpovědi - Ano, Ne A nyní nás čeká poslední a asi nejtěžší část - public OnDialogResponse. Přejdeme k němu: if(dialogid == taxikar) { if(response == 1) { if(Job==1) { SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); } else { SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako taxikář"); GivePlayerWeapon(playerid,22,100); SetPlayerSkin(playerid, 171); } } if(dialogid == taxikar) { if(response == 1) { if(Job==1) { SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); } else { SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako taxikář"); GivePlayerWeapon(playerid,22,100); SetPlayerSkin(playerid, 171); } } Pokud je dialog "taxikar" { Pokud hráč klikne na tlačítko 1 { Pokud je již jeho povolání "1" Pošle zprávu pokud není zaměstnán jako "1" Pošle zprávu o tom, že se úspěšně zaměstnal Dá hráči skin a zbraně (můžetes si upravit). } } GivePlayerWeapon(playerid,IDZBRANE,NABOJE); SetPlayerSkin(playerid, IDSKINU); Autor: dadanek1999 Poděkování: Uživatel TonySVK za pomoc při mé epické chybě Doba tvorby v Pawnu: cca 7 minut Doba tvorby TuTu: přes hodinu Tip: Prosím, nekopírujte to. Projděte si vysvětlivky, pochopte funkce, princip, jakým se tvoří povolání ať tomu rozumíte. Než napíšete komenář typu: "Mě to háže error..." skuste se zamyslet, co by to mohlo způsobit //EDIT: Ještě je možno použít IsPlayerInSphere http://www.pawno.cz/jak-zabranit-prohaz ... 23652.html Link to comment Share on other sites More sharing options...
boban88 6 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 sry ale 1/10 len koli uprave ale toto je tu x krat + rovno si to mal robit cez IPIS a ne PU a cele mi to pride trochu copy odtych co tu uz su :thumbdown: Link to comment Share on other sites More sharing options...
Mattsy 29 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 Zbytočný tut....povolanie tu je milionkrát, dialog tu tiež je vysvetlený a ako povedla boban, IPIS je lepšie ako PU 2/10 - Za úpravy a vysvetlenie Link to comment Share on other sites More sharing options...
Emppu 2 Odesláno: 25. Leden, 2012 Author Share Odesláno: 25. Leden, 2012 sry ale 1/10 len koli uprave ale toto je tu x krat + rovno si to mal robit cez IPIS a ne PU a cele mi to pride trochu copy odtych co tu uz su :thumbdown: Copy to není, je to vytažené z mého módu Link to comment Share on other sites More sharing options...
boban88 6 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 to neznamena ze to neni copy 97% sk/cz serverov su copy scripty Link to comment Share on other sites More sharing options...
Emppu 2 Odesláno: 25. Leden, 2012 Author Share Odesláno: 25. Leden, 2012 to neznamena ze to neni copy 97% sk/cz serverov su copy scripty Doba kdy jsem kopíroval skončila tak před půl rokem Pochopil jsem, že to nikam nevede a začal si tvořit vlastní věci Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 10/10 dikii velmi mi to pomohlo .. fakt diik Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 mohlo to byt aj krajšie aj lepšie =)) Link to comment Share on other sites More sharing options...
Guest Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 načo pole o s jednou premenou ? Link to comment Share on other sites More sharing options...
paulie2907 12 Odesláno: 25. Leden, 2012 Share Odesláno: 25. Leden, 2012 to neznamena ze to neni copy 97% sk/cz serverov su copy scripty a jedno procento je můj mód myslím to z těch 3 Link to comment Share on other sites More sharing options...
LuK3Z 3 Odesláno: 27. Únor, 2012 Share Odesláno: 27. Únor, 2012 Hazi mi to C:\Users\Lukinek\Desktop\Moje pawno vyrobky\Admin Povolani.pwn(43) : error 017: undefined symbol "SCM" C:\Users\Lukinek\Desktop\Moje pawno vyrobky\Admin Povolani.pwn(45) : error 017: undefined symbol "SCM" Radek 43: SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); Radek 45: SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako admins"); Link to comment Share on other sites More sharing options...
Mattsy 29 Odesláno: 27. Únor, 2012 Share Odesláno: 27. Únor, 2012 Hazi mi to C:\Users\Lukinek\Desktop\Moje pawno vyrobky\Admin Povolani.pwn(43) : error 017: undefined symbol "SCM" C:\Users\Lukinek\Desktop\Moje pawno vyrobky\Admin Povolani.pwn(45) : error 017: undefined symbol "SCM" Radek 43: SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); Radek 45: SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako admins"); daj si hore pod INC #define SCM SendClientMessage Link to comment Share on other sites More sharing options...
.JokeR. 0 Odesláno: 1. Duben, 2012 Share Odesláno: 1. Duben, 2012 nechápu hned mám chybu u new Job; Link to comment Share on other sites More sharing options...
mattmatt 20 Odesláno: 1. Duben, 2012 Share Odesláno: 1. Duben, 2012 Ano je to tu ae tak každý pochopí jiný tut takže neni od věci když je to víckrát Podle mě je to pěkná práce 9/10 1 Link to comment Share on other sites More sharing options...
Domm 11 Odesláno: 20. Červenec, 2012 Share Odesláno: 20. Červenec, 2012 Pěkná práce + se mi teď hodí takže 9/10 Link to comment Share on other sites More sharing options...
Arthom 6 Odesláno: 20. Červenec, 2012 Share Odesláno: 20. Červenec, 2012 Pěkná práce + se mi teď hodí takže 9/10 OMG si pozri dátum kedy to je napísané do starých topicov ako návod môžes písať ked potrebuješ help a ne hodnotiť Link to comment Share on other sites More sharing options...
bobo 0 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 zaměstnání se mi povedlo ale mám problém mam v public OnDialogResponse 2 veci regiset a ten jobs ale ono se mi to vždy spojí jobs a register jak to rozdelím public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) { if(response == 1) { if (udb_Exists(PlayerName(playerid))) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Přihlaš se ! napiš heslo","OK","QUIT"); if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Registrace","Musíš napsat heslo !","OK","QUIT"); if (udb_Create(PlayerName(playerid),inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Vyborně, nyní napiš znovu heslo !","OK","QUIT"); }else Kick(playerid); } //============================================================================== if(dialogid == 2) { if(response == 1) { if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Musíš zadat heslo !\nNapiš heslo !","OK","QUIT"); if (udb_CheckLogin(PlayerName(playerid),inputtext)) { GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); PLAYERLIST_authed[playerid] = true; return SendClientMessage(playerid, 0xEFEFF7AA, "Úspěšně přihlášen !");} return GameTextForPlayer(playerid,"SA-MP Welcome to San Fiero",5000,5); return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Nespravne heslo !","OK","QUIT"); }else Kick(playerid); } //==================================jobs======================================== if(dialogid == taxikar) { if(response == 1) { if(Job==1) { SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); } else { SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako taxikář"); GivePlayerWeapon(playerid,22,100); SetPlayerSkin(playerid, 171); } } //==================================jobs======================================== return 1; } errors C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(69) : warning 235: public function lacks forward declaration (symbol "ScoreUpdate") C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(861) : warning 213: tag mismatch C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(870) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(887) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(900) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(900) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(901) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(902) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(902) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(910) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(911) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(913) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(915) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(916) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(918) : warning 225: unreachable code C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(918) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(931) : error 017: undefined symbol "SendClienMessage" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(933) : error 017: undefined symbol "SendClienMessage" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(945) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(948) : error 029: invalid expression, assumed zero C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(948) : error 004: function "OnPlayerClickPlayer" is not implemented C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(950) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(953) : warning 225: unreachable code C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(953) : error 017: undefined symbol "PlayerName" C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(957) : error 090: public functions may not return arrays (symbol "OnDialogResponse") C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(959) : warning 225: unreachable code C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(959) : error 029: invalid expression, assumed zero C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(959) : error 004: function "OnVehicleSpawn" is not implemented C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(964) : error 079: inconsistent return types (array & non-array) C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(967) : warning 225: unreachable code C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(967) : error 029: invalid expression, assumed zero C:\Documents and Settings\Laďa\Plocha\server+pawn\pawno\mod.pwn(967) : error 004: function "OnVehicleDeath" is not implemented Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 26 Errors. Link to comment Share on other sites More sharing options...
fabbeN 3 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 nemáš rovnake id dialogu? Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) { if(response == 1) { if (udb_Exists(PlayerName(playerid))) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Přihlaš se ! napiš heslo","OK","QUIT"); if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Registrace","Musíš napsat heslo !","OK","QUIT"); if (udb_Create(PlayerName(playerid),inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Vyborně, nyní napiš znovu heslo !","OK","QUIT"); }else Kick(playerid); } //============================================================================== if(dialogid == 2) { if(response == 1) { if (strlen(inputtext)==0) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrace","Musíš zadat heslo !\nNapiš heslo !","OK","QUIT"); if (udb_CheckLogin(PlayerName(playerid),inputtext)) { GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); PLAYERLIST_authed[playerid] = true; SendClientMessage(playerid, 0xEFEFF7AA, "Úspěšně přihlášen !"); GameTextForPlayer(playerid,"SA-MP Welcome to San Fiero",5000,5); } else return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Registrace","Nespravne heslo !","OK","QUIT"); } } //==================================jobs======================================== if(dialogid == taxikar) { if(response == 1) { if(Job==1) { SCM(playerid,COLOR_YELLOW,"[POVOLÁNÍ] Zde už jsi zaměstnán"); } else { SCM(playerid, COLOR_YELLOW, "[POVOLÁNÍ] Zaměstnal jsi se jako taxikář"); GivePlayerWeapon(playerid,22,100); SetPlayerSkin(playerid, 171); } } } //==================================jobs======================================== return 1; } proč furt kopíruješ? myslíš že se tim něco naučíš? tuty sou udělaný aby učili né ničili ! Link to comment Share on other sites More sharing options...
bobo 0 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 já sem to dělal podle navodu a ted budu dělat další jobs řídiče autobusu Link to comment Share on other sites More sharing options...
AvestX 5 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 takže zase nové stupidní helpy .. Link to comment Share on other sites More sharing options...
Guest Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 A co to zkusit opravit sám??? To, že to tam vložíš CTRL + C & CTRL + V a pak ti to vyplivne errory, ani se nepodíváš kde a hned to dáváš sem?? Link to comment Share on other sites More sharing options...
bobo 0 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 mort ale já sem to skoušel opravit sem myslel že je to tym registerem Link to comment Share on other sites More sharing options...
bobo 0 Odesláno: 27. Červenec, 2012 Share Odesláno: 27. Červenec, 2012 neznáte lepší tut na povolání ??? uzivatel dostal varovani za spam (Om3n) Link to comment Share on other sites More sharing options...
1Kubad1 18 Odesláno: 6. Listopad, 2012 Share Odesláno: 6. Listopad, 2012 neukazuje to ten dialog nocomment 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