Skocz do zawartości
Intre

Przypisanie komendy do określonego gracza

Rekomendowane odpowiedzi

Witam. Mam pytanie odnośnie takiego kawałka kodu:

if(strcmp(cmd, "/wyplata", true)==0)
{
SendClientMessage(playerid, COLOR_LIGHTGREEN, "          Wypłata                    ");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"|-----------------------------------------|");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"| /wyplatas - Wypłata Score");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"| /wyplatap - Wypłata Pieniądze");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"| www.psttruck.servhost.pl");
SendClientMessage(playerid, COLOR_LIGHTBLUE,"|-----------------------------------------|");
return 1;
}
if(strcmp(cmd, "/wyplatas", true)==0)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(!strcmp(name,"",true) || !strcmp(name, "",true) || !strcmp(name, "",true) || !strcmp(name, "",true))
{

Chodzi mi o kawałek zaznaczony kolorem czerwonym. Czy można wstawić tam nick? Chodzi o przypisanie działania tej komendy do określonego gracza, ponieważ każdy może przez to dodać sobie score lub $$.

Z góry dziękuję za pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
if(!strcmp(name,"",true) || !strcmp(name, "",true) || !strcmp(name, "",true) || !strcmp(name, "",true))
{

Wystarczy, żebyś wpisał nicki w " " + zamień te "true" na "false" żeby sprawdzało wielkości znaków

Edytowane przez Maku

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jakiej zmiennej użyjesz taka będziesz miał. Zmienne które wymieniłeś różnią się między sobą tylko ich nazwa.

Jesli użyjesz np. zmiennej name pamiętaj aby w warunku zmienić nazwę zmiennej na wybraną przez ciebie.

Edit:

Dodam rowież, że w zmiennej masz string dovmax 24 znaków ponieważ nie potrzeba więcej z tego powody iż samp ma ograniczoną ilość znaków w nicku. Jeżeli nie wiesz to definicja MAX_PLAYER_NAME określa się do 24 znaków i jest to definicja pochodząca z include a_samp.

Mam nadzieję, że coś pomogłem. :)

Pozdrawiam.

Edytowane przez ziom123

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Możesz tak użyć, jeśli czujesz taką potrzebę :)

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

Jednakże nie widzę sensu za każdym razem tworzyć nowej zmiennej przechowującej  nick gracza tylko po to by w jednej komendzie się do niej odwołać. Korzystaj z tego:

PlayerName(playerid){
  new name[MAX_PLAYER_NAME];
  GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  return name;
}
Edytowane przez dawid4157

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hmm... Nie chcę tworzyć po raz kolejny nowego tematu, więc wypowiem się jeszcze w tym.

Mianowicie nie pojawiają mi się wgrane obiekty na serwerze. Użyłem tego kodu:

#include <a_samp>
public OnFilterScriptInit(){
//nasze obiekty
return 1;
}

Tak jak mi znajomy polecił.

Wszystkie obiekty wziąłem pod ten kod. Skompilowałem plik do .amx . Przez panel sevhost.pl wgrałem jako skrypt. Tj. Obsługa skryptów>Dodawanie skryptu>[Dodałem ten plik]

Potem >Zarządzanie skryptami>[Zaznaczyłem skrypt żeby był "włączony"]

Teraz patrzę i nie ma obiektów na serwerze, wszystko zrobiłem tak jak mówił mi znajomy(poprzedni właściciel serwera). Mam je wrzucić do GMa? Czy jak?

Edytowane przez Intre

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wejdź do zarządzania -> WebFTP -> folder filterscript -> dodaj plik (obiekty) -> cofnij -> wejdź do server.cfg (plik) -> dopisz tam nazwę swojego FS-ka i zrestartuj serwer.

Edytowane przez ziom123

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@ziom123 zrobiłem tak jak mówiłeś, nadal nic nie ma

@Programista PAWN wrzuciłem do GMa za pośrednictwem tego kodu: 

public OnGameModeInit()
{
//Tu obiekty
return 1;
}

i wyskoczyły mi takie errory:

J:\TST\de_mape_pst_test.pwn(468) : error 029: invalid expression, assumed zero
J:\TST\de_mape_pst_test.pwn(469) : error 001: expected token: ";", but found "{"
J:\TST\de_mape_pst_test.pwn(470) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(471) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(472) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(473) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(474) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(475) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(476) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(477) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(478) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(479) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(480) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(481) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(482) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(483) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(484) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(485) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(486) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(487) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(488) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(489) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(490) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(491) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(492) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(493) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(494) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(495) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(496) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(497) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(498) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(499) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(500) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(501) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(502) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(503) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(504) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(505) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(506) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(507) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(508) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(509) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(510) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(511) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(512) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(513) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(514) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(515) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(516) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(517) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(518) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(519) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(520) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(521) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(522) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(523) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(524) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(525) : warning 202: number of arguments does not match definition
J:\TST\de_mape_pst_test.pwn(570) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(571) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(572) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(573) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(575) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(576) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(577) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(578) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(579) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(580) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(581) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(582) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(583) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(584) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(585) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(586) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(587) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(588) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(589) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(590) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(592) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(593) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(594) : error 017: undefined symbol "Create3DTextLabel"
J:\TST\de_mape_pst_test.pwn(595) : error 017: undefined symbol "Create3DTextLabel"
Edytowane przez dawid4157

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pobierz i zaaktualuzj. Powinno pyknac. https://github.com/samp-incognito/samp-streamer-plugin/releases/download/v2.7.5/streamer-plugin-2.7.5.zip

Edit:

Podaj kod tych linijek

J:\TST\de_mape_pst_test.pwn(468) : error 029: invalid expression, assumed zero
J:\TST\de_mape_pst_test.pwn(469) : error 001: expected token: ";", but found "{"
Edytowane przez ziom123

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Możesz tak użyć, jeśli czujesz taką potrzebę :)

new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
Jednakże nie widzę sensu za każdym razem tworzyć nowej zmiennej przechowującej  nick gracza tylko po to by w jednej komendzie się do niej odwołać. Korzystaj z tego:

PlayerName(playerid){
  new name[MAX_PLAYER_NAME];
  GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  return name;
}
ta funkcja tak samo za każdym razem tworzy tablicę, lepiej nick pobrać tylko raz w OnPlayerConnect przecież to rzecz stała :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oczywiście masz rację. Chodziło o to, żeby ułatwić pracę nie pisząc kilka razy tego samego i użyć z dwojga złego tej funkcji. W efekcie wyjdzie na to samo ale nie będzie zbędnego kodu. Ale tak jak piszesz użycie w OnPlayerConnect będzie najlepsze.

Edytowane przez dawid4157

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ę.

×