Započeo 032.Marcus
•20. Feb. 2013.• Zaključano[POMOC] Strcmp u YCMD
756
pregleda
12
postova
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
20. Feb. 2013.
Scripta: Ravens RolePlay
Problem: Ovako, poceo sam da sredjujem komande, pa sam uradio samo jednu da bi ste vi proverili da li valja. Molim vas recite mi da li je dobro. I imam pitanje jedno koje cu navesti ispod
Code:
YCMD
STRCMP
PITANJE:
Zasto ovde ide return, to je ako ne ukuca broj tj parametar u onda mu ispisuje poruku koliko sam skapirao (prekopirao sam ovaj kod iz drugog moda)?
Koju vrednost return ima kad se stavi samo return ? 0?
Problem: Ovako, poceo sam da sredjujem komande, pa sam uradio samo jednu da bi ste vi proverili da li valja. Molim vas recite mi da li je dobro. I imam pitanje jedno koje cu navesti ispod
Code:
YCMD
YCMD:alkotest(playerid,params[],help)
{
#pragma unused help
if(IsPlayerConnected(playerid))
{
if (IsACop(playerid))
{
if(sscanf(params,"u",giveplayerid)) return SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]");
new level = GetPlayerDrunkLevel(giveplayerid);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 3)
{
if(level > 600)
{
format(string, sizeof(string), "* %s uzima uzima uredjaj za test alkohola i stavlja ga u %s'ova usta.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SCM(playerid, COLOR_LIGHTBLUE, "** Rezultat: Pozitivan **");
GameTextForPlayer(playerid,"~w~Ovaj igrac~n~~r~je pijan", 8000, 1);
return 1;
}
else
{
format(string, sizeof(string), "* %s uzima uzima uredjaj za test alkohola i stavlja ga u %s'ova usta.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SCM(playerid, COLOR_LIGHTBLUE, "** Rezultat: Negativan **");
GameTextForPlayer(playerid,"~w~Ovaj igrac~n~~r~nije pijan", 8000, 1);
return 1;
}
}
}
}
else
{
SCM(playerid, COLOR_GRAD1, " Ovaj igrac je offline !");
}
}
else
{
SCM(playerid, COLOR_GRAD1, " Niste ovlasceni da koristite ovu komandu! (Policajci samo)");
}
}
return 1;
}STRCMP
if (strcmp(cmd, "/breathtest", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (IsACop(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /breathtest [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
new level = GetPlayerDrunkLevel(giveplayerid);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 3)
{
if(level > 600)
{
format(string, sizeof(string), "* %s grabs their breathalyzer and puts the tube into %s's mouth.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "** Breathalyzer Result: Intoxicated **");
GameTextForPlayer(playerid,"~w~This player is~n~~r~Drunk", 8000, 1);
return 1;
}
else
{
format(string, sizeof(string), "* %s grabs their breathalyzer and puts the tube into %s's mouth.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "** Breathalyzer Result: Not Intoxicated **");
GameTextForPlayer(playerid,"~w~This player is~n~~r~Not Drunk", 8000, 1);
return 1;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " This player is offline !");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not authorized to use this command! (Cops Only)");
}
}
return 1;
}PITANJE:
if(sscanf(params,"u",giveplayerid)) return SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]");Zasto ovde ide return, to je ako ne ukuca broj tj parametar u onda mu ispisuje poruku koliko sam skapirao (prekopirao sam ovaj kod iz drugog moda)?
Koju vrednost return ima kad se stavi samo return ? 0?
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
20. Feb. 2013.
if(sscanf(params,"u",giveplayerid)) return SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]");Mozes jos ovo da mi pojasnis, ovo mi ne ide u glavu, kad ce se pojaviti ovo za KORISCENJE.
I ovo za help za YCMD komande, naprimer, ako ja stavim if(help) bla bla, kad igrac kuca /help, njemu ce da stampa svaku komandu koja koristi ovo help?
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
20. Feb. 2013.
Aha, znaci ako ne upise broj, njemu ce da prekine dalju radnju i ispisace komandu, znaci samo return je isto sto i return 0?
Forum Don
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
7,407
Postovi:
93
Teme:
Pridružio se:Nov. 2011
20. Feb. 2013.
ne, xd, return u toj poruci znaci da mu returna poruku, tacnije da mu je salje, to je moglo i ovako izgledati
if(sscanf(params,"u",giveplayerid)) { SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]"); } isti princip, samo je preko returna krace a znacenje istoKingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,126
Postovi:
91
Teme:
Pridružio se:Jul 2010
20. Feb. 2013.
Dobro je sve, samo bi sve to mogao krace i jednostavnije da napravis. Kao npr ovako: Ako ti neÅ¡to nije jasno, pitaj slobodno, pomoći ću ti. PoÅ¡to vidim da te zanima i da hoćeÅ¡ da nauÄiÅ¡ 🙂
YCMD:alkotest(playerid,params[],help)
{
#pragma unused help
if (!IsACop(playerid)) return SCM(playerid, COLOR_GRAD1, "Niste ovlasceni da koristite ovu komandu! (Policajci samo)");
{
if(sscanf(params,"u",giveplayerid)) return SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]");
new level = GetPlayerDrunkLevel(giveplayerid);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(!IsPlayerConnected(giveplayerid)) return SCM(playerid, COLOR_LIGHTBLUE, "Igrac nije konektovan.");
if(giveplayerid == INVALID_PLAYER_ID) return SCM(playerid, COLOR_LIGHTBLUE, "Pogresan player ID.");
if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 3) return SCM(playerid, COLOR_LIGHTBLUE, "Igrac nije blizu vas.");
if(level > 600)
{
format(string, sizeof(string), "* %s uzima uzima uredjaj za test alkohola i stavlja ga u %s'ova usta.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SCM(playerid, COLOR_LIGHTBLUE, "** Rezultat: Pozitivan **");
GameTextForPlayer(playerid,"~w~Ovaj igrac~n~~r~je pijan", 8000, 1);
return 1;
}
else
{
format(string, sizeof(string), "* %s uzima uzima uredjaj za test alkohola i stavlja ga u %s'ova usta.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SCM(playerid, COLOR_LIGHTBLUE, "** Rezultat: Negativan **");
GameTextForPlayer(playerid,"~w~Ovaj igrac~n~~r~nije pijan", 8000, 1);
return 1;
}
}
return 1;
}Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
20. Feb. 2013.
Hvala vam, shvatio sam sad, pokusacu sto vise da vezbam i da prebacujem komande, pa kad budem imao greske pitacu, nadam se da ce te mi pomoci.
A mozete mi odgovoriti samo za jos ono sto sam pitao za help.
Ako stavim if(help), da li onda kada neko kuca /help ce da mu stampa svaku komandu koja koristi help ?
I jos uvek me buni ovo za sscanf, razumem svaku proveru "if(blabla) {blabla}", ali ovo sve mislim da ce da mu ispise poruku ako ukuca broj, a ne ako ne ukuca? 😄
A mozete mi odgovoriti samo za jos ono sto sam pitao za help.
Ako stavim if(help), da li onda kada neko kuca /help ce da mu stampa svaku komandu koja koristi help ?
I jos uvek me buni ovo za sscanf, razumem svaku proveru "if(blabla) {blabla}", ali ovo sve mislim da ce da mu ispise poruku ako ukuca broj, a ne ako ne ukuca? 😄
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,126
Postovi:
91
Teme:
Pridružio se:Jul 2010
20. Feb. 2013.
032.Marcus wrote on February 20, 2013, 10:36 pm:
A mozete mi odgovoriti samo za jos ono sto sam pitao za help.
Ako stavim if(help), da li onda kada neko kuca /help ce da mu stampa svaku komandu koja koristi help ?
I jos uvek me buni ovo za sscanf, razumem svaku proveru "if(blabla) {blabla}", ali ovo sve mislim da ce da mu ispise poruku ako ukuca broj, a ne ako ne ukuca? 😄
Ako stavim if(help), da li onda kada neko kuca /help ce da mu stampa svaku komandu koja koristi help ?
I jos uvek me buni ovo za sscanf, razumem svaku proveru "if(blabla) {blabla}", ali ovo sve mislim da ce da mu ispise poruku ako ukuca broj, a ne ako ne ukuca? 😄
Ovo za help > http://samp-scripts.com/post/36/y_commands_(YCMD)_-_Most_flexible_and_fastest_command_processor/Y_Less/other/include
Sve ti je lepo objasnjeno. Shvatices
A ovo za sscanf sto ti nije jasno, lepo ti je blaeks objasnio. Udjes u igru, i ukucas komandu pa vidis sta ce da ispise, pa onda failujes komandu(upises pogresno) pa ces videti sta ispise. I tako neces morati da pitas ovako prosta pitanja. Snadji se malo 🙂
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
111
Teme:
Pridružio se:Jun 2011
21. Feb. 2013.
Ne razumes me, ali nema veze 🙂 Razumem ja proveru i to, ali evo ovako lakse da te pitam sto bi mi pojasnilo.
Da li ovo return posle provere zamenjuje ono esle tj ima isto znacenje samo sto je krace ?
Vidis, ovde ako igrac nije konektovan ispisuje mu poruku.
A ovo za sscanf nema, znam ja da ce ta komanda da radi, ali bih da razumem posto me buni, sve drugo razumem 😄 . Ne znam kako drugacije da obljasnim, aj da probam ovako:
Jos jednom kazem, ne znam kako da ti obljasnim. I hvala za ovo sto si mi drugo obljasnio sve sam razumeo 😉
Da li ovo return posle provere zamenjuje ono esle tj ima isto znacenje samo sto je krace ?
if(!IsPlayerConnected(giveplayerid)) return SCM(playerid, COLOR_LIGHTBLUE, "Igrac nije konektovan.");Vidis, ovde ako igrac nije konektovan ispisuje mu poruku.
A ovo za sscanf nema, znam ja da ce ta komanda da radi, ali bih da razumem posto me buni, sve drugo razumem 😄 . Ne znam kako drugacije da obljasnim, aj da probam ovako:
if(sscanf(params,"u",giveplayerid)) - Ovo je provera ako ukuca parametar u tj ako ukuca to sto zahteva parametar, dakle u pozitivnom smislu je, ako ukuca.return SCM(playerid, COLOR_GREY, "KORISCENJE: /alkotest [playerID/DeoImena]"); - A ovo mu ispisuje, a nigde nema else ili tako nesto. 😄Jos jednom kazem, ne znam kako da ti obljasnim. I hvala za ovo sto si mi drugo obljasnio sve sam razumeo 😉
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava