Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] jedno zaproszenie na runde


  • Zamknięty Temat jest zamknięty
14 odpowiedzi w tym temacie

#1 Dziku

    Pomocny

  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 04.08.2012 22:22

Witam.
Posiadam starego coda i dzięki Karioo mam u siebie party. Mam jednak problem gdyż gracze zakładający party cały czas spamują innym by dołączyli do nich. Czy można zablokować funkcję zapraszania tak,aby można była zaprosić gracza raz na rundę? Tu daje fragment odpowiadający zaproszeniom. Z góry dziękuje i pozdrawiam.
public menuy(id) {
new menu = menu_create("Kogo chcesz zaprosic ?", "WyborGracza");

new name[48], num;
for(new i=1; i<=32; i++) {
if(is_user_connected(i) && (get_user_team(i) == get_user_team(id)) && id!=i && !jestes_w_party[i]) {
Players[id][num++] = i;

get_user_name(i, name, charsmax(name));
menu_additem(menu, name);
}
}

menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}

public WyborGracza(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new id2 = Players[id][item];

pytanie(id2,id)

new nazwa_lidera[32]
get_user_name(id, nazwa_lidera, 31);

nazwa_lidera_party[id2] = nazwa_lidera
GLOWNE_MENU_PARTY(id)

menu_destroy(menu);
return PLUGIN_HANDLED;
}

  • +
  • -
  • 0

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 01:58

Podaj jeszcze funkcję pytanie()

btw. Tworzysz globalną tablicę 33elementową typu boolean, zapełnioną fałszem.
Po zaproszeniu przez danego gracza, ustawiasz w tablicy o id=id tego gracza wartość true, oznaczającą, że ten gracz już wysłał zaproszenie.
Jeśli wartość tej globalnej tablicy wynosi true dla danego gracza, to nie pozwól na zaproszenie.
Na koniec rundy (ew. po spawnie) ustaw wszystkim graczom wartość w tablicy na false.

#3 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 05.08.2012 11:07

Przepraszam, ale odnośnie btw. to nie bardzo potrafię przenieść to na amxx
Tutaj dołączam funkcje pytanie oraz wyborgraczax(może się przyda)
public pytanie(id,index) {
new nazwa_lidera[32]
get_user_name(index, nazwa_lidera, 11);
new tekst[512]
formatex(tekst, 511, "\r%s \yzaprasza Cie do \r%s \yParty, chcesz dolaczyc ?",nazwa_lidera,nazwa_party[index]);

new menu = menu_create(tekst, "WyborGraczax");

menu_additem(menu, "Tak");
menu_additem(menu, "Nie");

menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}

public WyborGraczax(id, menu, item) {
new player = find_player ( "a", nazwa_lidera_party[id]) ;
if(item == MENU_EXIT) {
jestes_w_party[id]=false
czy_lider[id]=false
nazwa_lidera_party[id]="Brak"
ColorChat(id,GREEN,"[Cs-Mordownia] Gracz wylaczyl menu zaproszenia tym samym odmawiajac !")
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{

jestes_w_party[id]=true
czy_lider[id]=false
ilosc_graczy_party[player]++
nazwa_party[id] = nazwa_party[player]

ColorChat(id,GREEN,"[Cs-Mordownia] Gracz zaakceptowal zaproszenie !")
}
case 1:
{
jestes_w_party[id]=false
czy_lider[id]=false
nazwa_lidera_party[id]="Brak"
ColorChat(id,GREEN,"[Cs-Mordownia] Gracz odmowil !")
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}

  • +
  • -
  • 0

#4 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 06.08.2012 10:17

refresh
  • +
  • -
  • 0

#5 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 08.08.2012 20:46

proszę o pomoc... refresh
  • +
  • -
  • 0

#6 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 19.09.2012 16:16

Odświeżam po dość długiej przerwie, gdyż nadal mam z tym problem. Jest ktoś w stanie mi pomóc?
  • +
  • -
  • 0

#7 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 20.09.2012 16:46

refresh
  • +
  • -
  • 0

#8 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 21.09.2012 19:44

refresh
  • +
  • -
  • 0

#9 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 23.09.2012 07:47

Dobra powiedzmy, że zrobiłem jakieś kroki w tym celu.
Utworzyłem zmienną
new bool:prosba[33] = false;
a następnie w wyborgraczax dodałem

public WyborGraczax(id, menu, item) {
new player = find_player ( "a", nazwa_lidera_party[id]) ;
if(item == MENU_EXIT) {

jestes_w_party[id]=false
czy_lider[id]=false
nazwa_lidera_party[id]="Brak"
ColorChat(id,GREEN,"[Cs-Mordownia] Gracz wylaczyl menu zaproszenia tym samym odmawiajac !")
menu_destroy(menu);

return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{

jestes_w_party[id]=true
czy_lider[id]=false
ilosc_graczy_party[player]++
nazwa_party[id] = nazwa_party[player]

ColorChat(id,GREEN,"[Cs-Mordownia] Gracz zaakceptowal zaproszenie !")
}
case 1:
{
prosba[id]=true//tutaj zmienia wartosc prosby
jestes_w_party[id]=false
czy_lider[id]=false
nazwa_lidera_party[id]="Brak"
menu_destroy(menu);
ColorChat(id,GREEN,"[Cs-Mordownia] Gracz odmowil !")
}

}
if (prosba[id]!=false)//tutaj wymaga wartosci roznej od false, czyli true
{
menu_destroy(menu);
ColorChat(id,GREEN,"[Cs-Mordownia] Mozesz wyslac tylko jedno zaproszenie w ciagu rundy !")
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
ale nadal nie działa. Może ktoś pomóc, albo chociaż naprowadzić?

Użytkownik misiekcrpv edytował ten post 23.09.2012 07:51

  • +
  • -
  • 0

#10 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 24.09.2012 13:34

refresh
  • +
  • -
  • 0

#11 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 25.09.2012 13:26

refresh
  • +
  • -
  • 0

#12 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 28.09.2012 17:23

refresh
  • +
  • -
  • 0

#13 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 28.09.2012 17:48

Zrobiłeś to dobrze, ale w złym miejscu.
sprawdzasz, czy może być wykonane kolejne zaproszenie już po wysłaniu zaproszenia, co nie ma większego sensu.

menu_display(id, menu);
Ta komenda powinna być obwarowana tym warunkiem, tj.
if(prosba[id]){
menu_destroy(menu);
ColorChat(id,GREEN,"[Cs-Mordownia] Mozesz wyslac tylko jedno zaproszenie w ciagu rundy !");
} else {
menu_display(id, menu);
}
Ponadto if(prosba[id]!=false) jest tożsame z if(prosba[id]) i pierwsze sprawdzanie jest zdeczka niepotrzebne,
bo ostatecznie warunek logiczny z nawiasu w if i tak zamieniany jest albo na true, albo na false. To nie PHP, żeby w ten sposób sprawdzać ;)

Jeśli dalej masz problem, podaj całe SMA, to szybko poprawię, póki jestem online i mam AMXX-Studio pod ręką, wystarczy ten warunek przenieść przed wyświetlenie menu.

#14 Dziku

    Pomocny

  • Autor tematu
  • Przyjaciel

Reputacja: 6
Nowy

  • Postów:69
  • Imię:Michał
  • Lokalizacja:Opole
Offline

Napisano 29.09.2012 13:50

Dzięki śliczne do zamknięcia.
  • +
  • -
  • 0

#15 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 29.09.2012 15:25

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych