Jump to content

Snížení možnosti pádu modu


Recommended Posts

Dnes si ukazeme jak snizit moznost padu modu...

 

1. GetMaxPlayers()

 

Pouziti

 

misto

 

for(new i=0;i{
Tento script bude vyvolan 200
}

 

pouzijeme

 

for(new i=0; i{
Tento script bude vyvolan pouze tolikrat, kolik je hracu na serveru a ne 200
}

 

2. ELSE

 

pokud mate nejaky public kde je

 

if(neco
}
if(neco
}
if(neco
}

 

napriklad

 

if (strcmp(name, "Chytrakl", true)!= 0)
{
if (Vyber[playerid]==114) {
SetPlayerSkinEx(playerid,2);
}}
if (strcmp(name, "[CRYCZ]CNIRY", true)!= 0) {
if (Vyber[playerid]==113) {
SetPlayerSkinEx(playerid,23);
}}

 

pouzijeme

 

if(neco // prvni if zustava stejne
}
else if(neco // u dalsiho if uz je else
}
else if(neco // dalsi if s else
}

 

priklad

 

if (strcmp(name, "Chytrakl", true)!= 0)

{

if (Vyber[playerid]==114) {

SetPlayerSkinEx(playerid,2);

}}

else if (strcmp(name, "[CRYCZ]CNIRY", true)!= 0) {

if (Vyber[playerid]==113) {

SetPlayerSkinEx(playerid,23);

}}

 

Poznamka plati jen pro if, ktere jsou za dalsi zavorkou a nemaji s prvnim kodem co delat

 

prikad spatneho pouziti

 

Na tomto prikladu muzeme videt podminku , dalsi podminku v tom samem kodu,

ale je tam else, else davame az do dalsiho kodu

 

if (strcmp(name, "Chytrakl", true)!= 0)

{

else if (Vyber[playerid]==114) {

SetPlayerSkinEx(playerid,2);

}}

else if (strcmp(name, "[CRYCZ]CNIRY", true)!= 0) {

else if (Vyber[playerid]==113) {

SetPlayerSkinEx(playerid,23);

}}

 

3. ELSE v prikazech

 

Pokud mame prikazy napr takto

if(strcmp(cmd, "/help", true) == 0) {
return 1;
}
if(strcmp(cmd, "/objective", true) == 0) {
return 1;
}
if(strcmp(cmd, "/tips", true) == 0) {
return 1;
}

 

tak ke druhemu a kazdemu dalsimu if, ktery vyvolaval cely prikaz pridame else

 

ukazka

 

if(strcmp(cmd, "/help", true) == 0) {
return 1;
}
else if(strcmp(cmd, "/objective", true) == 0) {
return 1;
}
else if(strcmp(cmd, "/tips", true) == 0) {
return 1;
}

 

4. Nove vyuziti promenych

 

TUT Bude dopsan zitra rano

Link to comment
Share on other sites

prepac, ale ta musim upozornit, ze nemas ani zakladne vedomosti o programovani (nevies ako funguje FOR cyklus) a pises tutorialy:

 

Pouziti
misto

for(new i=0;i{
Tento script bude vyvolan 200
}

pouzijeme

for(new i=0;i{
Tento script bude vyvolan pouze tolikrat, kolik je hracu na serveru a ne 200
}

 

premenna Slots bude obsahovat len pocet hracov na servery. FOR cyklus vykonava naslednu postupnost prikazov pre kazdu premenu i z intervalu 0 az Slots, cize 0 az pocet hracov na servery. Klasicky FOR cyklus c MAX_PLAYERS sa vykonava pre vsetky cisla 0-200. To, ze ty v cykle pouzijes pocet hracov moze zapricinit ze ak niekto ma vecsie playerid ako je pocet hracov tak sa pre neho nevykona cyklus.

Link to comment
Share on other sites

FOR cyklus sa vyuziva na pracu s playerid, nie na pocet hracov, playerid sa nemeni, pocet hracov ano, takziez playerid moze byt vecsie ako je pvoet hracov

 

priklad:

na servery je 50 hracov, odpoja sa hraci s playerid, 10,15,20, na servery zostane 47 hracov, ten cyklus vykona funkcie len pre hracov do playerid 47 ale na servery su hraci s playerid 48,49,50, pre tych sa cyklus nevykona

Link to comment
Share on other sites

Viz ja ted spis myslel, kdybych udelal toto

 

#define MAX_PLAYERS_FOR 60

 

to by mnelo jit ne? protoze se cyklus jen snizi a nepreskakuje jako u Slots

Link to comment
Share on other sites

Guest MaverickCZE

ještě tě upozorním na jednu chybku, a to je při používání else if v příkazech, když máš správně dané returny na koncích příkazů, else if nepotřebuješ jelikož po nalezení správného příkazu se ukončí script (return 1;) a tudíž ani netestuje další podmínky, v tomto případě bych spíš využil řazení příkazů podle priority, neboli dát například /help před /bleeetajnyprikaz, protože je větší pravděpodobnost, že /help bude napsán častěji a nebude se muset testovat tolik podmínek, ale bez timeru ti jsou tyto "ulehčováky" celkem k ničemu

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...