←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
[ROZWIĄZANE] Problem z komendą /daj

Zablokowany

  • +
  • -
Bll - zdjęcie Bll 26.02.2013

Witam, mam problem z tą komendą, używałem tego kodu:
new oddaj_id[33];
new bool:dostal_przedmiot[33];
public OddajPrzedmiot(id)
{
	    new menu = menu_create("Oddaj przedmiot", "OddajPrzedmiot_Handle");
	    new cb = menu_makecallback("OddajPrzedmiot_Callback");
	    new numer_przedmiotu;
	    for(new i=0; i<=32; i++)
	    {
			    if(!is_user_connected(i))
					    continue;
			    oddaj_id[numer_przedmiotu++] = i;
			    menu_additem(menu, nazwa_gracza[i], "0", 0, cb);
	    }
	    menu_display(id, menu);
}
public OddajPrzedmiot_Handle(id, menu, item)
{
	    if(!is_user_connected(oddaj_id[item]))
	    {
			    client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
			    return PLUGIN_CONTINUE;
	    }
	    if(dostal_przedmiot[id])
	    {
			    client_print(id, print_chat, "Musisz poczekac 1 runde.");
			    return PLUGIN_CONTINUE;
	    }
	    if(!informacje_przedmiotu_gracza[id][0])
	    {
			    client_print(id, print_chat, "Nie masz zadnego przedmiotu.");
			    return PLUGIN_CONTINUE;
	    }
	    if(informacje_przedmiotu_gracza[oddaj_id[item]][0])
	    {
			    client_print(id, print_chat, "Ten gracz ma juz przedmiot.");
			    return PLUGIN_CONTINUE;
	    }
	    dostal_przedmiot[oddaj_id[item]] = true;
	    DajPrzedmiot(oddaj_id[item], informacje_przedmiotu_gracza[id][0]);
	    informacje_przedmiotu_gracza[oddaj_id[item]][1] = informacje_przedmiotu_gracza[id][1];
	    client_print(id, print_chat, "Przekazales %s graczowi %s.",nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]] , nazwa_gracza[oddaj_id[item]]);
	    client_print(oddaj_id[item], print_chat, "Dostales %s od gracza %s.",nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]] , nazwa_gracza[id]);
	    UsunPrzedmiot(id);
	    return PLUGIN_CONTINUE;
}
public OddajPrzedmiot_Callback(id, menu, item)
{
	    if(oddaj_id[item] == id)
			    return ITEM_DISABLED;
	    return ITEM_ENABLED;
}


Komenda działa do pierwszego oddania itemu, przy każdej kolejnej próbie przez resztę mapy wyskakuje "musisz poczekac 1 runde",
jeśli ktoś wie co jest nie tak z tym kodem to proszę o poprawienie.
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 26.02.2013

Do funkcji plugin_init() dodaj
register_logevent("nowa_runda", 2, "0=World triggered", "1=Round_Start")

Na koniec kodu wklej to
public nowa_runda()
{
    
    for(new i=1; i<=32; i++)
    {
        
        if(is_user_connected(id))
        {
            dostal_przedmiot[id] = false;
            
        }
    }
}

Powinno działać, ale nie testowałem, więc jak coś to pisz.
Użytkownik norbi1952 edytował ten post 26.02.2013 17:28
Odpowiedz

  • +
  • -
Bll - zdjęcie Bll 26.02.2013

Niestety dalej to samo.
Odpowiedz

  • +
  • -
Jamdzam - zdjęcie Jamdzam 26.02.2013

usun to


if(dostal_przedmiot[id])
{
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}


tez mialem z tym problem ale poradzilem sobie ja pamietam powiedzialem dobrze mozesz dawac tyle razu itemy ile chcesz bo usuwasz warunek czy gracz dostal przedmiot
Odpowiedz

  • +
  • -
Bll - zdjęcie Bll 26.02.2013

Ok działa, dzięki za pomoc, można zamknąć.
Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 26.02.2013

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
Odpowiedz
Zablokowany