Skocz do zawartości
ByczekTV

komenda /mandat

Rekomendowane odpowiedzi

Witam!

Otóż chciałbym napisać komendę /mandat dla policji, natomiast nie wiem zupełnie jak się do tego zabrać, że kwota wpisana jest pobierana etc...

Ktoś coś? ;/

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Masz google? tak wgl to nikt ci tego nie jest w stanie napisać, bo nikt nie wie jak masz stworzoną grupę policji, czy to w zmiennej czy jakiś pobór nicku z mysql etc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprobuj coś w tym stylu

 

CMD:mandat(playerid, params[], help)
{
    new string[128];
    if(pInfo[playerid][gracz_admin] == 0) return SendClientMessage(playerid, COLOR_RED, "Nie masz uprawnien.");
    new
        targetid, kwota, reason[48];
    if(sscanf(params, "us[48]", targetid, kwota, reason)) return SendClientMessage(playerid, COLOR_RED, "Tip: /mandat [id] [koszt] [powod]");
    if(targetid == IPI) return SendClientMessage(playerid, COLOR_RED, "Nie ma takiego gracza.");
    format(string, sizeof(string),"Otrzymujesz mandat od %s w wysokosci %s, powod: %s ", pInfo[playerid][gracz_nick], kwota, reason);
    SendClientMessage(targetid, COLOR_RED, string);
    GivePlayerMoney(playerid, -kwota);
    return 1;
}

Musisz sobie edytować, bo dałem komende pod admina bo nie wiem jak masz system frakcji, zmień sobie pod frakcje.

Edytowane przez Nieprzewidywalny
Zmieniam bo był błąd

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mandat jak mandat, pierw musisz oczywiście użyć sscanfa gdzie pobierzesz id gracza, to będzie główną funkcją, przykład użycia, pierw tworzysz zmienną do której przypiszesz id gracza, czyli new id;, potem zaczyna sie zabawa z sscanfem, stawiamy warunek, jeżeli dane z komendy (sscanfa) nie zostały pobrane to nie pozwalamy iść dalej i dajemy return 1, najprosciej wytlumaczyc ta funkcje to po prostu zwraca 1; czyli wróć :D wracając do samego sscanfa to musimy oczywiście do czego przypinamy to id gracza, oczywiscie do parametrów, czyli params (zalezy od systemu cmd) if(sscanf(params, "d"id)) tak powinno to wyglądać w całości, czyli do params przypisaliśmy "d" czyli nasza zmienna stworzona wczesniej, potem juz tylko nastepne warunki w postaci czy gracz jest podlaczony (IsPlayerConnected(id) w tym przypadku id bo sprawdzamy czy id gracza ktorego wpisalismy po /mandat jest podlaczone, jezeli dojdziemy do konca warunkow to wtedy użyjemy format gdzie pokazemu kto nam zabrał kase i ile, oczywiscie mozemy dodac sobie parametry w postaci /mandat id kwota, wtedy mozemy zrobic tak ze GivePlayerMoney(id, -kwota); czyli zabieramy komu? id czyli id ktore wpisalismy, kwota czyli to co wpisalismy po id. Mysle ze po przeczytaniu tego wszystkiego zoorientujesz sie jak pisać komendy z parametrami, osobiscie polecam zcmd :D

 

PS: Mogą być male literowki bo pisane na telefonie

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
13 godzin temu, Zamek napisał:

Mandat jak mandat, pierw musisz oczywiście użyć sscanfa gdzie pobierzesz id gracza, to będzie główną funkcją, przykład użycia, pierw tworzysz zmienną do której przypiszesz id gracza, czyli new id;, potem zaczyna sie zabawa z sscanfem, stawiamy warunek, jeżeli dane z komendy (sscanfa) nie zostały pobrane to nie pozwalamy iść dalej i dajemy return 1, najprosciej wytlumaczyc ta funkcje to po prostu zwraca 1; czyli wróć :D wracając do samego sscanfa to musimy oczywiście do czego przypinamy to id gracza, oczywiscie do parametrów, czyli params (zalezy od systemu cmd) if(sscanf(params, "d"id)) tak powinno to wyglądać w całości, czyli do params przypisaliśmy "d" czyli nasza zmienna stworzona wczesniej, potem juz tylko nastepne warunki w postaci czy gracz jest podlaczony (IsPlayerConnected(id) w tym przypadku id bo sprawdzamy czy id gracza ktorego wpisalismy po /mandat jest podlaczone, jezeli dojdziemy do konca warunkow to wtedy użyjemy format gdzie pokazemu kto nam zabrał kase i ile, oczywiscie mozemy dodac sobie parametry w postaci /mandat id kwota, wtedy mozemy zrobic tak ze GivePlayerMoney(id, -kwota); czyli zabieramy komu? id czyli id ktore wpisalismy, kwota czyli to co wpisalismy po id. Mysle ze po przeczytaniu tego wszystkiego zoorientujesz sie jak pisać komendy z parametrami, osobiscie polecam zcmd :D

 

PS: Mogą być male literowki bo pisane na telefonie

Pozdrawiam

playerid/nickname == u w sscanf, więc polecam ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Byczek dam ci caly kod komendy /mandat jeśli masz dcmd

Oto Kodzik :

 

dcmd_mandat(playerid, params[])
{
    new id;
    new powod[128];
    new mandati;
    new stringpowod1[300]; //String karanego
    new Gname1[MAX_PLAYER_NAME]; //Nazwa karanego
    new Gname2[MAX_PLAYER_NAME]; //Nazwa dajacego kare
    if(sscanf(params, "uis", id, mandati, powod)){SendClientMessage(playerid, COLOR_WHITE, "Uzyj /kara IDGRACZA POWOD ILOSC");return 1;}
    else if(id == INVALID_PLAYER_ID){SendClientMessage(playerid, COLOR_RED, "Podany gracz nie istnieje !");return 1;}
    else{
        GetPlayerName(id,Gname1,sizeof(Gname1));
        GetPlayerName(playerid,Gname2,sizeof(Gname2));
        format(stringpowod1,sizeof(stringpowod1),"Otrzymales Mandat w wysokosci %i $ przez %s. Powod: %s",mandati,Gname2, powod);
        SendClientMessage(id, COLOR_RED, stringpowod1);
        GivePlayerMoney(playerid, -mandati);
        return 1;
    }
    return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
O 30.06.2016 o 19:09, Zamek napisał:

Mandat jak mandat, pierw musisz oczywiście użyć sscanfa gdzie pobierzesz id gracza, to będzie główną funkcją, przykład użycia, pierw tworzysz zmienną do której przypiszesz id gracza, czyli new id;, potem zaczyna sie zabawa z sscanfem, stawiamy warunek, jeżeli dane z komendy (sscanfa) nie zostały pobrane to nie pozwalamy iść dalej i dajemy return 1, najprosciej wytlumaczyc ta funkcje to po prostu zwraca 1; czyli wróć :D wracając do samego sscanfa to musimy oczywiście do czego przypinamy to id gracza, oczywiscie do parametrów, czyli params (zalezy od systemu cmd) if(sscanf(params, "d"id)) tak powinno to wyglądać w całości, czyli do params przypisaliśmy "d" czyli nasza zmienna stworzona wczesniej, potem juz tylko nastepne warunki w postaci czy gracz jest podlaczony (IsPlayerConnected(id) w tym przypadku id bo sprawdzamy czy id gracza ktorego wpisalismy po /mandat jest podlaczone, jezeli dojdziemy do konca warunkow to wtedy użyjemy format gdzie pokazemu kto nam zabrał kase i ile, oczywiscie mozemy dodac sobie parametry w postaci /mandat id kwota, wtedy mozemy zrobic tak ze GivePlayerMoney(id, -kwota); czyli zabieramy komu? id czyli id ktore wpisalismy, kwota czyli to co wpisalismy po id. Mysle ze po przeczytaniu tego wszystkiego zoorientujesz sie jak pisać komendy z parametrami, osobiscie polecam zcmd :D

 

PS: Mogą być male literowki bo pisane na telefonie

Pozdrawiam

Twoje rady zawsze się przydadzą! <3 :o

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
O 1.07.2016 o 20:57, NeoPL napisał:

Byczek dam ci caly kod komendy /mandat jeśli masz dcmd

Oto Kodzik :

 

dcmd_mandat(playerid, params[])
{
    new id;
    new powod[128];
    new mandati;
    new stringpowod1[300]; //String karanego
    new Gname1[MAX_PLAYER_NAME]; //Nazwa karanego
    new Gname2[MAX_PLAYER_NAME]; //Nazwa dajacego kare
    if(sscanf(params, "uis", id, mandati, powod)){SendClientMessage(playerid, COLOR_WHITE, "Uzyj /kara IDGRACZA POWOD ILOSC");return 1;}
    else if(id == INVALID_PLAYER_ID){SendClientMessage(playerid, COLOR_RED, "Podany gracz nie istnieje !");return 1;}
    else{
        GetPlayerName(id,Gname1,sizeof(Gname1));
        GetPlayerName(playerid,Gname2,sizeof(Gname2));
        format(stringpowod1,sizeof(stringpowod1),"Otrzymales Mandat w wysokosci %i $ przez %s. Powod: %s",mandati,Gname2, powod);
        SendClientMessage(id, COLOR_RED, stringpowod1);
        GivePlayerMoney(playerid, -mandati);
        return 1;
    }
    return 1;
}

Neo, po jasnego uja robić sobie pod gorke robiac dwa GetPlayerName robisz new name[MAX_PLAYER_NAME][MAX_PLAYERS]

GetPlayerName(playerid, name[playerid], sizeof(name));

I wtedy tylko jak chcesz gracza ktory wystawia to name[id] i tyle, zaoszczedziles czasu i klopotow. Pomysl czasami, i robisz jakis dziwny stringpowod1, pisz to krocej np str, szybciej i tyle.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×