[POMOC] Strcmp u YCMD

Započeo 032.Marcus
20. Feb. 2013. Zaključano
742
pregleda
12
postova
032.Marcus
4
Made Man
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
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?
gLava
5
Crime Lord
20. Feb. 2013.
Return je 1 valjda
032.Marcus
4
Made Man
20. Feb. 2013.
A je l' dobro ovo za komandu?
Blaeks_Biofor
5
Forum Don
20. Feb. 2013.
sscanf  "u" ti je parametar za igracev id ili deo imena, dobro je
032.Marcus
4
Made Man
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?
Blaeks_Biofor
5
Forum Don
20. Feb. 2013.
ti imas skockanu komandu znaci, i ukoliko igrac ne ispuni sve parametre koje komanda zahteva on ce mu ispisati tu poruku cisto radi podsecanja
032.Marcus
4
Made Man
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?
Blaeks_Biofor
5
Forum Don
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 isto
Marjan_King
5
Kingpin
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;
}
032.Marcus
4
Made Man
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? 😄
Marjan_King
5
Kingpin
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? 😄


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 🙂
032.Marcus
4
Made Man
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 ?
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

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha