LYRIcS 88 Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 Cawte, spravil som tut na inventar, snad sa to niekomu hodi ;-), v inventari su len pre ukazku 4 predmety, ak chcete dorobte si dalsie. #include // zakladny includ #include // ak nemate includ tak si ho stiahnite, sluzi na ukladanie dat #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 // definicia dcmd new Rozky[MAX_PLAYERS]; // new pre Rozky new Bagety[MAX_PLAYERS]; // new pre Bagety new Vino[MAX_PLAYERS]; // new pre Vina new Pivo[MAX_PLAYERS]; // new pre Piva new Obchod; // pickup na obchod #define C_ORANGE 0xFF7700FF // definicia farby #define C_RED 0xFF0000FF // definicia farby #define SCM SendClientMessage // ulahcime si pisanie :-) #define GPM GivePlayerMoney // ulahcime si pisanie :-) #pragma tabsize 0 // taka sprostost aby vam nepisalo zbytocne warningy, ak to uz vo FS/GM mate tak to zmazte public OnFilterScriptInit() { Obchod = CreatePickup(1239,23,X,Y,Z,0); // miesto X Y Z si doplnte vase suradnice kam chcete dat pickup return 1; } public OnPlayerConnect(playerid) // pri pripojeni to automaticky nastavi hracove Rozky, Bagety... { new Meno[30]; GetPlayerName(playerid,Meno,30); // zisti hracove meno new road[40]; // 40 je maximalny pocet pismen ktore moze naformatovany text obsahovat format(road,40,"Inventar/%s.cfg",Meno); // naformatujeme si cestu k suboru (subor sa bude volat ako hrac) if(!dini_Exists(road)) { // ak subor s hracovym menom neexistuje... dini_Create(road); // vytvori subor dini_IntSet(road,"Rozky",0); // do suboru napise ze hrac ma 0 rozkov, ale pri disconnecte tam uz neda nulu, ale pocet hracovych rozkov (teda "Rozky[playerid", uz ne "0"); dini_IntSet(road,"Bagety",0); // to iste dini_IntSet(road,"Vino",0); // to iste dini_IntSet(road,"Pivo",0); // to iste } if(dini_Exists(road)) { // ak subor s hracovym menom existuje... Rozky[playerid]=dini_Int(road,"Rozky"); // nastavi to hracovi taky pocet rozkov aky je zapisany v subore Bagety[playerid]=dini_Int(road,"Bagety"); // to iste Vino[playerid]=dini_Int(road,"Vino"); // to iste Pivo[playerid]=dini_Int(road,"Pivo"); // to iste } return 1; } public OnPlayerDisconnect(playerid, reason) // pri odpojeni to automaticky ulozi hracove Rozky, Bagety... { new Meno[30]; GetPlayerName(playerid,Meno,30); new road[40]; format(road,40,"Inventar/%s.cfg",Meno); if(!dini_Exists(road)) { dini_Create(road); dini_IntSet(road,"Rozky",Rozky[playerid]); // vlozi do suboru pocet hracovych rozkov dini_IntSet(road,"Bagety",Bagety[playerid]); // to iste dini_IntSet(road,"Vino",Vino[playerid]); // to iste dini_IntSet(road,"Pivo",Pivo[playerid]); // to iste } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(inventar,8, cmdtext); // prikaz "/inventar" return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == Obchod) { // ked vojde hrac do pickupu "Obchod" tak... ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Obchod","Rožok (10$)\nBageta (40$)\nVino (250$)\nPivo (50$)","Kúpiť","Cancel"); // ukaze hracovi dialog } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) // dialog s dislom 1 { if(response == 1) // 1. Tlacitko ("Kúpiť") { //-------------------------- if(listitem == 0) // prvy riadok { if(GetPlayerMoney(playerid)<10) return SCM(playerid,C_RED,"[ ! ] Potrebuješ aspoň 10$ !"); // ak ma hrac menej penazi ako 10$ (9$, 8$, 7$...) posle spravu else { // ak nieje splnena prva podmienka tak... SCM(playerid,C_ORANGE,"Kúpil si si Rožok !"); // posle spravu Rozky[playerid]++; // prida hracovi 1 rozok GPM(playerid,-10); // uberie mu to 10$ } } //-------------------------- if(listitem == 1) // druhy riadok... { if(GetPlayerMoney(playerid)<40) return SCM(playerid,C_RED,"[ ! ] Potrebuješ aspoň 40$ !"); else { SCM(playerid,C_ORANGE,"Kúpil si si Bagetu !"); Bagety[playerid]++; GPM(playerid,-40); } } //-------------------------- if(listitem == 2) { if(GetPlayerMoney(playerid)<250) return SCM(playerid,C_RED,"[ ! ] Potrebuješ aspoň 250$ !"); else { SCM(playerid,C_ORANGE,"Kúpil si si Víno !"); Vino[playerid]++; GPM(playerid,-250); } } //-------------------------- if(listitem == 3) { if(GetPlayerMoney(playerid)<50) return SCM(playerid,C_RED,"[ ! ] Potrebuješ aspoň 50$ !"); else { SCM(playerid,C_ORANGE,"Kúpil si si Pivo !"); Pivo[playerid]++; GPM(playerid,-50); } } //-------------------------- } } if(dialogid == 2) // dialog s dislom 1 { if(response == 1) // 1. Tlacitko ("Použiť") { //-------------------------- if(listitem == 0) // prvy riadok... { if(Rozky[playerid]<=0) return SCM(playerid,C_RED,"[ ! ] Nemáš žiadne Rožky !"); // ak nema hrac ziadne rozky tak mu to zasle spravu if(Rozky[playerid]>=1) // ak ma hrac 1 alebo viac rozkov (1,2,3,4...) { Rozky[playerid]--; // uberie to hracovi 1 rozok SCM(playerid,C_ORANGE,"Zjedol si Rožok !"); // posle spravu new Float:health; // novy Float GetPlayerHealth(playerid,health); // zisti hracov zivot SetPlayerHealth(playerid,health+15); // prida hracovi 15 zivota if(health > 100) return SetPlayerHealth(playerid,100); // ak by mal hrac viac zivota ako 100 tak mu to nastavi zivot na 100 (neviem ci je to blbost ale nektore jednoduche anticheaty maju ze ak ma hrac viac zivota ako 100 tak ho to vyhodi, tak aby si to hraca nepomylilo z cheaterom) } } //-------------------------- if(listitem == 1) { if(Bagety[playerid]<=0) return SCM(playerid,C_RED,"[ ! ] Nemáš žiadne Bagety !"); if(Bagety[playerid]>=1) { Bagety[playerid]--; SCM(playerid,C_ORANGE,"Zjedol si Bagetu !"); new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+35); if(health > 100) return SetPlayerHealth(playerid,100); } } //-------------------------- if(listitem == 2) { if(Vino[playerid]<=0) return SCM(playerid,C_RED,"[ ! ] Nemáš žiadne Víno !"); if(Vino[playerid]>=1) { Vino[playerid]--; SCM(playerid,C_ORANGE,"Vypil si Víno !"); new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+20); if(health > 100) return SetPlayerHealth(playerid,100); SetPlayerDrunkLevel(playerid,GetPlayerDrunkLevel(playerid)+1000); // prida hracovi DrunkLevel 1000 (bude opity) } } //-------------------------- if(listitem == 3) { if(Pivo[playerid]<=0) return SCM(playerid,C_RED,"[ ! ] Nemáš žiadne Pivo !"); if(Pivo[playerid]>=1) { Pivo[playerid]--; SCM(playerid,C_ORANGE,"Vypil si Pivo !"); new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+10); if(health > 100) return SetPlayerHealth(playerid,100); SetPlayerDrunkLevel(playerid,GetPlayerDrunkLevel(playerid)+500); // prida hracovi DrunkLevel 500 (bude opity) } } //-------------------------- } } return 1; } dcmd_inventar(playerid, params[]) // co sa stane ked hrac napise prikaz "/inventar" { #pragma unused params // nebudeme pouzivat ziadne parametre new inventar[256]; // 256 je maximalny pocet pismen ktore moze naformatovany text obsahovat format(inventar,256,"Rožky: %d ks\nBagety: %d ks\nVína: %d ks\nPivá: %d", Rozky[playerid], Bagety[playerid], Vino[playerid], Pivo[playerid]); // naformatuje text, miesto "%d" sa doplni kolko ma hrac rozkov, bagiet... ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"Inventár",inventar,"Použiť","Cancel"); // ukaze hracovi dialog ("inventar" je ten naformatovany text) return 1; } Je potrebné vytvoriť si zložku Inventar v scriptfiles !!! 1 Link to comment Share on other sites More sharing options...
ajko 0 Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 Pekne toto využijem Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 4. Květen, 2011 Author Share Odesláno: 4. Květen, 2011 aspon nekomu sa to bude hodit Link to comment Share on other sites More sharing options...
Kavi 1 Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 pěkné ale zbytečné je normal inventar v inc kde se ti to uklada samo a delaš si to jednodušej.. ale jinak good tut 7/10 Link to comment Share on other sites More sharing options...
Guest Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 Podľa popisov súdim že pawn nevieš... btw nič moc iba premena++ Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 4. Květen, 2011 Author Share Odesláno: 4. Květen, 2011 co mas proti mojmu podpisu? Link to comment Share on other sites More sharing options...
Guest SpiRinG Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 ja som si to zobral a viskusal hace to errori komu ties nech si prida new X; new Y; new Z; Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 4. Květen, 2011 Author Share Odesláno: 4. Květen, 2011 lol xD si zabil! omg miesto XYZ si daj suradnice! napr: 1265.23644,-340.224875,17.2536885 Link to comment Share on other sites More sharing options...
Guest Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 Nic nového + je to lehké... 2/10 Link to comment Share on other sites More sharing options...
Guest SpiRinG Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 lol xD si zabil! omg miesto XYZ si daj suradnice! napr: 1265.23644,-340.224875,17.2536885 ja vime uz som nato prisiel Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 4. Květen, 2011 Author Share Odesláno: 4. Květen, 2011 sak ja viem ze to je lahke, robil som to pre tych co to nevedia Link to comment Share on other sites More sharing options...
MinecraftPlayer 0 Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 1/10 za snahu Link to comment Share on other sites More sharing options...
Lamborghini 0 Odesláno: 4. Květen, 2011 Share Odesláno: 4. Květen, 2011 Sry ale toto nepatří do TUTU ale spíše do SCRIPTU Link to comment Share on other sites More sharing options...
Daves 0 Odesláno: 19. Květen, 2011 Share Odesláno: 19. Květen, 2011 Proč když jsem si do ukladani a disconetu přidal novou proměnou s novou věcí tak mi ji to nezapíše ani nenačte a neuloží, v příkazu /inventař to sice mám ale neuklada se mi počet kusu a ve scriptfiles v inventáři taky tu další proměnou nemám Link to comment Share on other sites More sharing options...
2killer2 0 Odesláno: 19. Květen, 2011 Share Odesláno: 19. Květen, 2011 Mě se to líbí ale nevyužiju to 8/10 Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 19. Květen, 2011 Author Share Odesláno: 19. Květen, 2011 Proč když jsem si do ukladani a disconetu přidal novou proměnou s novou věcí tak mi ji to nezapíše ani nenačte a neuloží, v příkazu /inventař to sice mám ale neuklada se mi počet kusu a ve scriptfiles v inventáři taky tu další proměnou nemám mas doplene v disconnecte a connecte dini_Int(...) a v disconnecte dini_IntSet(...)? ak hej tak skus vymazat ten subor s tvojim menom v scriptfiles a malo by to ist, ak stale nepojde posli pwn, opravim Link to comment Share on other sites More sharing options...
DonMafia 14 Odesláno: 19. Květen, 2011 Share Odesláno: 19. Květen, 2011 Dalo by sa to spraviť lepšie a jednoduchšie...Zbytočne si to spravil zložité. Link to comment Share on other sites More sharing options...
Daves 0 Odesláno: 19. Květen, 2011 Share Odesláno: 19. Květen, 2011 Ok díky už se mi tam ta další proměná zapsala,ale nějak se mi nekladají všecky položky jako bagety atd koupim si to v inventari to je ale když se odhlasim tak se mi to neuloží to co mám neví někdo čím to je ? Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 20. Květen, 2011 Author Share Odesláno: 20. Květen, 2011 mas v disconnecte to dini_IntSet(.....); ?! Link to comment Share on other sites More sharing options...
Daves 0 Odesláno: 20. Květen, 2011 Share Odesláno: 20. Květen, 2011 jj mám v disconete mám to to : new Meno[30]; GetPlayerName(playerid,Meno,30); new road[40]; format(road,40,"Inventar/%s.cfg",Meno); if(!dini_Exists(road)) { dini_Create(road); dini_IntSet(road,"Ciga",Ciga[playerid]); // vlozi do suboru pocet hracovych rozkov dini_IntSet(road,"Bagety",Bagety[playerid]); // to iste dini_IntSet(road,"Vino",Vino[playerid]); // to iste dini_IntSet(road,"Pivo",Pivo[playerid]); // to iste dini_IntSet(road,"Trava",ganja[playerid]); A v Connect: new Meno[30]; GetPlayerName(playerid,Meno,30); // zisti hracove meno new road[40]; // 40 je maximalny pocet pismen ktore moze naformatovany text obsahovat format(road,40,"Inventar/%s.cfg",Meno); // naformatujeme si cestu k suboru (subor sa bude volat ako hrac) if(!dini_Exists(road)) { // ak subor s hracovym menom neexistuje... dini_Create(road); // vytvori subor dini_IntSet(road,"Ciga",0); // do suboru napise ze hrac ma 0 rozkov, ale pri disconnecte tam uz neda nulu, ale pocet hracovych rozkov (teda "Rozky[playerid", uz ne "0"); dini_IntSet(road,"Bagety",0); dini_IntSet(road,"Vino",0); dini_IntSet(road,"Pivo",0); dini_IntSet(road,"Trava",0); } if(dini_Exists(road)) { Ciga[playerid]=dini_Int(road,"Ciga"); Bagety[playerid]=dini_Int(road,"Bagety"); Vino[playerid]=dini_Int(road,"Vino"); Pivo[playerid]=dini_Int(road,"Pivo"); ganja[playerid]=dini_Int(road,"Trava"); } ale počty kusů se mi neukladají Link to comment Share on other sites More sharing options...
Guest Dr.Ondrej Odesláno: 20. Květen, 2011 Share Odesláno: 20. Květen, 2011 Moc dobrý tut 10/10 ale nevyužiju. Link to comment Share on other sites More sharing options...
LYRIcS 88 Odesláno: 21. Květen, 2011 Author Share Odesláno: 21. Květen, 2011 jj mám v disconete mám to to : new Meno[30]; GetPlayerName(playerid,Meno,30); new road[40]; format(road,40,"Inventar/%s.cfg",Meno); if(!dini_Exists(road)) { dini_Create(road); dini_IntSet(road,"Ciga",Ciga[playerid]); // vlozi do suboru pocet hracovych rozkov dini_IntSet(road,"Bagety",Bagety[playerid]); // to iste dini_IntSet(road,"Vino",Vino[playerid]); // to iste dini_IntSet(road,"Pivo",Pivo[playerid]); // to iste dini_IntSet(road,"Trava",ganja[playerid]); A v Connect: new Meno[30]; GetPlayerName(playerid,Meno,30); // zisti hracove meno new road[40]; // 40 je maximalny pocet pismen ktore moze naformatovany text obsahovat format(road,40,"Inventar/%s.cfg",Meno); // naformatujeme si cestu k suboru (subor sa bude volat ako hrac) if(!dini_Exists(road)) { // ak subor s hracovym menom neexistuje... dini_Create(road); // vytvori subor dini_IntSet(road,"Ciga",0); // do suboru napise ze hrac ma 0 rozkov, ale pri disconnecte tam uz neda nulu, ale pocet hracovych rozkov (teda "Rozky[playerid", uz ne "0"); dini_IntSet(road,"Bagety",0); dini_IntSet(road,"Vino",0); dini_IntSet(road,"Pivo",0); dini_IntSet(road,"Trava",0); } if(dini_Exists(road)) { Ciga[playerid]=dini_Int(road,"Ciga"); Bagety[playerid]=dini_Int(road,"Bagety"); Vino[playerid]=dini_Int(road,"Vino"); Pivo[playerid]=dini_Int(road,"Pivo"); ganja[playerid]=dini_Int(road,"Trava"); } ale počty kusů se mi neukladají skus vymazat ten subor s tvojim menom v scriptfiles, a potom by to vsetko malo ist, ak ne daj cele pwn Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 26. Červen, 2011 Share Odesláno: 26. Červen, 2011 vypisuje chyby : .pwn(85) : error 017: undefined symbol "Rozky" .pwn(85) : warning 215: expression has no effect .pwn(85) : error 001: expected token: ";", but found "]" .pwn(85) : error 029: invalid expression, assumed zero .pwn(85) : fatal error 107: too many error messages on one line riadok : Rozky[playerid] = dini_Int(road,"Rozky"); a mam aj new new Rozky[MAX_PLAYERS]; Link to comment Share on other sites More sharing options...
_Martin_ 10 Odesláno: 26. Červen, 2011 Share Odesláno: 26. Červen, 2011 A kde máš new ? To musí byť hore v móde v žiadnom publicu. Ale pre istotu daj riadok nad a pod Link to comment Share on other sites More sharing options...
Brunes 1 Odesláno: 26. Červen, 2011 Share Odesláno: 26. Červen, 2011 Práveže tam mám.. preto sa pýtam čo s tým je... 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