rEf 53 Odesláno: 29. Červenec, 2013 Share Odesláno: 29. Červenec, 2013 (upraveno) Verze 2013 Zdravím trochu jsem se nudil a tak jsem si udělal do modů Náhodné texty no dám vám to i sem...Jak to funguje?Každých 10 minut se do chatu vypíše '' Bla bla bla náhodný text zza $bla bla bla ''.Pokud hráč napíše jako první náhodný text, automaticky dostane peníze a náhodný text se vypne což znamená že pokud někdo napíše další ten náhodný text už to nic udělá.Pokud žádný hráč nenapíše náhodný text automaticky se vypne do 2 minut což znamená že pokud někdo napíše náhodný text už to nic neudělá.Dělal jsem to chvilku nejspíš to jde i lépe tak tady to máte i trochu popsané. ( )1. Někam nahoru do modů. new RandomCode1[MAX_PLAYERS]; // Náhodný text číslo 1. new RandomCode2[MAX_PLAYERS]; // Náhodný text číslo 2. new RandomCode3[MAX_PLAYERS]; // Náhodný text číslo 3. new RandomCodeStopTimer[MAX_PLAYERS]; // Pro Timer který vypne náhodný text v případě že ho nikdo do 2 minut nenapíše nebo pokud ho hráč napíše aby se za 2 minuty nevypnul bude zničen. 2. Do public OnFilterScriptInit() nebo public OnGamemodeInit() někam nahoru. SetTimer("RandomCode", 600000, true); // 600000 = 10 minut 3. Někam do modů spíše nahoře no nevím. ( ) forward RandomCode(); // Forward. public RandomCode() { new string[256]; new rcode = random(3); // Vybere jeden ze 3 nahodných textu. switch(rcode) { case 0: { for (new i = 0; i < GetMaxPlayers(); i++) { RandomCode1[i] = 1; RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false); // Za 2 minuty náhodný text vypne pokud nikdo neodpovi. } // Zapne všem hráčum náhodný text číslo 1 a stop timer. format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' a5bXOq56i '' získá {33AA33}$50 000{FFFFFF}."); SendClientMessageToAll(0xFFFFFFAA,string); } case 1: { for (new i = 0; i < GetMaxPlayers(); i++) { RandomCode2[i] = 1; RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false); // Za 2 minuty náhodný text vypne pokud nikdo neodpovi. } // Zapne všem hráčum náhodný text číslo 2 a stop timer. format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' eBo13zEtp '' získá {33AA33}$55 000{FFFFFF}."); SendClientMessageToAll(0xFFFFFFAA,string); } case 3: { for (new i = 0; i < GetMaxPlayers(); i++) { RandomCode3[i] = 1; RandomCodeStopTimer[i] = SetTimer("RandomCodeStop", 120000, false); // Za 2 minuty náhodný text vypne pokud nikdo neodpovi. } // Zapne všem hráčum náhodný text číslo 3 a stop timer. format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Kdo první napíše náhodný text do 2m. '' fIXk54fg6 '' získá {33AA33}$35 000{FFFFFF}."); SendClientMessageToAll(0xFFFFFFAA,string); } } return 1; } forward RandomCodeStop(); // Forward. public RandomCodeStop() // Tento Public nastaví hodnoty RandomCode 1-3 na 0 ciže kdo napíše náhodný text po 2 minutách nic to neudělá. { SendClientMessageToAll(-1, "[ {C2A2DA}Text{FFFFFF} ] Nikdo nenapsal náhodný text do 2 minut, náhodný text byl zrušen."); for (new i = 0; i < GetMaxPlayers(); i++) { // Nastaví všem hráčum na serveru na 0. RandomCode1[i] = 0; // Vypne náhodný text číslo 1. RandomCode2[i] = 0; // Vypne náhodný text číslo 2. RandomCode3[i] = 0; // Vypne náhodný text číslo 3. } return 0; } 4. Do public OnPlayerText(playerid, text[]). if(RandomCode1[playerid] == 1){ // Pokud je zapnutý. if(!strcmp(text, "a5bXOq56i", true)) // Napíše tento text do chatu. { format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' a5bXOq56i '' hráč %s získal {33AA33}$50 000{FFFFFF}.",Jmeno(playerid)); SendClientMessageToAll(0xFFFFFFAA,string); GivePlayerMoney(playerid, 50000); // Dá peníze. for (new i = 0; i < GetMaxPlayers(); i++) // Pro všechny hráče. { KillTimer(RandomCodeStopTimer[i]); // Zruší timer který měl za 2 minuty vypnout náhodný text nebot hráč už odpovědel. RandomCode1[i] = 0; // Nastaví na 0 ciže na vypnuto pokud jeden z hráču napíše dobře jako první. } } } // if(RandomCode2[playerid] == 1){ // Pokud je zapnutý. if(!strcmp(text, "eBo13zEtp", true)) // Napíše tento text do chatu. { format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' eBo13zEtp '' hráč %s získal {33AA33}$55 000{FFFFFF}.",Jmeno(playerid)); SendClientMessageToAll(0xFFFFFFAA,string); GivePlayerMoney(playerid, 55000); // Dá peníze. for (new i = 0; i < GetMaxPlayers(); i++) // Pro všechny hráče. { KillTimer(RandomCodeStopTimer[i]); // Zruší timer který měl za 2 minuty vypnout náhodný text nebot hráč už odpovědel. RandomCode2[i] = 0; // Nastaví na 0 ciže na vypnuto pokud jeden z hráču napíše dobře jako první. } } } // if(RandomCode3[playerid] == 1){ // Pokud je zapnutý. if(!strcmp(text, "fIXk54fg6", true)) // Napíše tento text do chatu. { format(string, sizeof(string), "[ {C2A2DA}Text{FFFFFF} ] Jako první napsal náhodný text '' fIXk54fg6 '' hráč %s získal {33AA33}$35 000{FFFFFF}.",Jmeno(playerid)); SendClientMessageToAll(0xFFFFFFAA,string); GivePlayerMoney(playerid, 35000); // Dá peníze. for (new i = 0; i < GetMaxPlayers(); i++) // Pro všechny hráče. { KillTimer(RandomCodeStopTimer[i]); // Zruší timer který měl za 2 minuty vypnout náhodný text nebot hráč už odpovědel. RandomCode3[i] = 0; // Nastaví na 0 ciže na vypnuto pokud jeden z hráču napíše dobře jako první. } } } No a to je vše pak už si to jen upravte podle sebe S pozdravem Ref. Update 2017 Možná bych udělal takový menší update protože by mě bylo líto kdyby to vážně někdo používal v dnešní době... Píše to konkrétně různé znaky včetně písmen (je to udělané jako includ). V případě že máte nějaké upomínky jak zjednodušit cokoliv konkrétně ve scriptu níže klidně můžete psát. Jinak PlayerName si snad každý dokáže sepsat + RandomEx stock a SCMTAF je zjednodušená zpráva SCMTA přes formát. new Random_text[9] = "none"; // do OnGameModeInit: SetTimer("Show_random_text", 60000*6, true); forward Show_random_text(); public Show_random_text(){ format(Random_text, 9, "%c%c%c%c%c%c%c%c", Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter()); SCMTAF(-1, "Napiš jako první do chatu [ %s ] a získej náhodnou částku.", Random_text); return true; } stock randomText_OnPlayerText(playerid, text[]){ // do OnPlayerText: randomText_OnPlayerText(playerid, text); if(strcmp(Random_text, "none", true)){ if(!strcmp(text, Random_text, true)){ new amount = RandomEx(3000,5000); SCMTAF(-1, "Hráč %s(%d) napsal jako první do chatu [ %s ] a získal $%d.", PlayerName(playerid), playerid, Random_text, amount); format(Random_text, 9, "none"); GivePlayerMoney(playerid, amount); } } return true; } stock Get_random_letter(){ return 65 + random(52); } Edited 19. Duben, 2017 by rEf Link to comment Share on other sites More sharing options...
Mivčo 90 Odesláno: 29. Červenec, 2013 Share Odesláno: 29. Červenec, 2013 Moc pekný tut 9,99/10,1 Link to comment Share on other sites More sharing options...
wroxx 37 Odesláno: 29. Červenec, 2013 Share Odesláno: 29. Červenec, 2013 Copy & Paste tutorial vhodný akurát tak pre Dobar Dan-a. Nedávaj celý kod ale vysvetli to slovami teoreticky ako na to a aké funkcie, proste aby sa to nedalo skopírovať Link to comment Share on other sites More sharing options...
Fr0st 23 Odesláno: 29. Červenec, 2013 Share Odesláno: 29. Červenec, 2013 Pekné Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 29. Červenec, 2013 Author Share Odesláno: 29. Červenec, 2013 Wroxx proto to tu je aby si to hráči kopírovaly a dali si to kam oni udají za vhodné. A vysvětlení je za // v kódě. Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 29. Červenec, 2013 Author Share Odesláno: 29. Červenec, 2013 Já osobně mam v modů jenom zatím to co tu vidíš ale každý si muže sám přidělat, i já sám si přidělám nemusí každý mít vše co sem dám stejné tak jako to mam já v modů. Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 29. Červenec, 2013 Author Share Odesláno: 29. Červenec, 2013 No říkám ale to už není můj problém, podívej se na ten návod je uplně jednoduché si dodělat pár náhodných textu. Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 29. Červenec, 2013 Author Share Odesláno: 29. Červenec, 2013 if(!isnull(RandomString)){ ? Nadefinoval sem si isnull a furt errory Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 29. Červenec, 2013 Administrátor Share Odesláno: 29. Červenec, 2013 Ty frajer .... 4 cykly string do scm 256 GetMaxPlayers v cyklech.... To není zrovna dobrý... Dalo by se to udělat v jednom cyklu Do SCM jen 128 znaků GetMaxPlayers načítá hodnotu z cfg.. takže je tam nějaká přístupová doba... V každým projetí cyklu ? úúúúúúúú... Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 29. Červenec, 2013 Author Share Odesláno: 29. Červenec, 2013 Mě to muže být už jedno Já to mam funkční a trochu jinak tohle byl muj první pokus o náhodný text. Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 19. Duben, 2017 Author Share Odesláno: 19. Duben, 2017 (upraveno) Možná bych udělal takový menší update protože by mě bylo líto kdyby to vážně někdo používal v dnešní době... Píše to konkrétně různé znaky včetně písmen (je to udělané jako includ). V případě že máte nějaké upomínky jak zjednodušit cokoliv konkrétně ve scriptu níže klidně můžete psát. Jinak PlayerName si snad každý dokáže sepsat + RandomEx stock a SCMTAF je zjednodušená zpráva SCMTA přes formát. new Random_text[9] = "none"; // do OnGameModeInit: SetTimer("Show_random_text", 60000*6, true); forward Show_random_text(); public Show_random_text(){ format(Random_text, 9, "%c%c%c%c%c%c%c%c", Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter(), Get_random_letter()); SCMTAF(-1, "Napiš jako první do chatu [ %s ] a získej náhodnou částku.", Random_text); return true; } stock randomText_OnPlayerText(playerid, text[]){ // do OnPlayerText: randomText_OnPlayerText(playerid, text); if(strcmp(Random_text, "none", true)){ if(!strcmp(text, Random_text, true)){ new amount = RandomEx(3000,5000); SCMTAF(-1, "Hráč %s(%d) napsal jako první do chatu [ %s ] a získal $%d.", PlayerName(playerid), playerid, Random_text, amount); format(Random_text, 9, "none"); GivePlayerMoney(playerid, amount); } } return true; } stock Get_random_letter(){ return 65 + random(52); } Edited 19. Duben, 2017 by rEf Link to comment Share on other sites More sharing options...
Administrátor Ewwe 434 Odesláno: 19. Duben, 2017 Administrátor Share Odesláno: 19. Duben, 2017 A kde máš hooky Proč to není hookované Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 19. Duben, 2017 Globální moderátor Share Odesláno: 19. Duben, 2017 (upraveno) Lze to ještě zjednodušit na for(new i = 0; i < 8; i ++) // 9 - 1 kvůli nulovému znaku Random_text[i] = 65 + random(52); Text: if(!Random_text[0]) { strcmp... Random_text[0] = 0; } A uživatel potom upravuje jen svoji délku v cyklu fajnšmekr by si všiml, že se jedná o znaky ASCII, tak by využil jiného "datového" typu Edited 19. Duben, 2017 by HighPrint Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 19. Duben, 2017 Author Share Odesláno: 19. Duben, 2017 (upraveno) Okey. Edited 19. Duben, 2017 by rEf 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