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

Resetowanie poziomu.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 ELOS

    No i pozamiatane ;*

  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 06.07.2012 00:09

W dzisiejszym tutorialu pokaże wam jak w łatwy sposób można przedłużyć graczom osiągnięcia maksimum na serwerze typu xp.

Na początek wprowadzę was trochę w jaki sposób to działa i w jaki powinniśmy tego używać. Użytkowanie tej modyfikacji jest bardzo proste dajemy graczowi wybór czy chce rezygnować ze swojego dużego poziomu aby rozwijać się dalej czy ma zostać przy swoim pięknie rozwiniętym poziomem. Aby dać właśnie taki wybór graczom wprowadzamy komendę /reset która zeruje nasz exp oraz poziom lub inne w zamian za daną ilość Punktów Powrotu. PP będzie można wymienić na stałe dodatki w sklepie.

Na prośbę użytkowników będę konfigurował system pp do różnych modów oraz dodawał Przedmioty do Sklepu (ewentualnie coś zmieniał)

No to zacznijmy od najłatwiejszej rzeczy. Rejestrujemy komendy do wywołania publica Sklep_PP oraz PP_Reset.

register_clcmd("say /reset", "PP_Reset");
register_clcmd("say /ppsklep", "Sklep_PP");

Gdy już to mamy powinniśmy zając się zmiennymi na których będziemy pracować, w naszym przypadku potrzebujemy tylko jednej zmiennej ponieważ aktualny tutorial tworze bez żadnej podstawy.
pp_gracza[33];

Gdy mamy już zmienną czas wziąć się za nasze publicy w których mamy najważniejszy kod.

Naszym pierwszym publicem będzie PP_Reset aby uprościć sprawę zrobię to na przykładzie własnych zmiennych.

public PP_Reset(id)
{
new menu = menu_create("\wZa reset otrzymasz \r2 PP^n\yCzy Resetowac?", "PP_Reset_Select");
menu_additem(menu, "\rTak", "1", 0);
menu_additem(menu, "\yNie", "2", 0);

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, menu, 0);
}
Gdy posiadamy już funkcje na wyświetlanie menu powinniśmy dodać teraz funkcje na wykonywanie wyboru itp. W naszym przypadku to PP_Reset_Select najlepiej abyśmy go umieścili od razu pod powyższym kodem.


public PP_Reset_Select(id, menu, item)
{
new data[6], iName[64];
new zaccess, callback;
menu_item_getinfo(menu, item, zaccess, data,5, iName, 64, callback);
new key = str_to_num(data)
new nick[32];
get_user_name(id,nick,31);

switch(key)
{
case 1:
{
if(poziom_gracza[id] == POTRZEBNY_POZIOM)
{
pp_gracza[id] += 2;  // dwa to ilość punktów powrotu jaką otrzyma gracz po resecie
poziom_gracza[id] = 0; // zerujemy poziom gracza
exp_gracza[id] = 0; // resetujemy exp gracza
client_print(0, print_chat, "Gracz %s zzerowal swoj poziom w zamian otrzymal 2 punkty powrotu!", nick)
}
else // Gdy nie posiadamy potrzebnego poziomu
{
client_print(id, print_chat, "Nie posiadasz xx poziomu")
}
}
case 2:
{
menu_destroy(menu)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}


Posiadamy już wymianę poziomu na punkty powrotu. Teraz Sklep niestety na chwile obecną umieszczam tylko kod na menu wraz z funkcją zabierania pp.

public Sklep_PP(id)
{
new tytul[25], aaa[65];
new MyMenuFun=menu_makecallback("CallbackMenu");
format(tytul, 24, "\rPosiadasz: %i Punktow Powrotu\w^nWybierz Opcje", pp_gracza[id]);

formatex(aaa, 64, "\yXXXX \r[Koszt: X PP]");
new menu = menu_create(tytul, "wymien_powrot2");

menu_additem(menu, aaa, "1");

menu_display(id, menu);
}
public wymien_powrot2(id, menu, item)
{
if(!is_user_alive(id) || !is_user_connected(id))
  return PLUGIN_CONTINUE;
if(item == MENU_EXIT)
{
  menu_destroy(menu);
  return PLUGIN_CONTINUE;
}

switch(item)
{
  case 0:
  {
   if(pp_gracza[id] >= ILOSC)
   {
	powrot_gracza[id]-=ILOSC;
	// Tutaj umiesc funkcje po kupnie
	client_print(id, print_chat, "Kupiles ...")
   }
   else
   {
	client_print(id, print_chat, "Nie posiadasz wystarczajacej ilosci PP")
   }
  }
}
return PLUGIN_HANDLED;
}
Pozostałe modyfikacje, edycje itp. będę robił za prośbą użytkowników do czasu wydania pluginu który ułatwi tą sprawę.
  • +
  • -
  • 1

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#2 TheRock

    Wszechobecny

  • Użytkownik

Reputacja: 233
Wszechwidzący

  • Postów:402
  • GG:
  • Imię:Łukasz
  • Lokalizacja:Zloczew
Offline

Napisano 06.07.2012 12:34

osz ty a myślałem Elos że tylko u nas na zombi tak będzie ;(
a nie doczytałem

Użytkownik TheRock edytował ten post 06.07.2012 12:38

  • +
  • -
  • 0




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

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