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
CoD Nowy

[TUT] Zmiana klasy=wyrzucenie perku.Przy zmianie klasy perk ulega "zniszczeniu".

CoD Nowy

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

#1 master.

    Wszechwidzący

  • Użytkownik

Reputacja: 53
Pomocny

  • Postów:228
  • Lokalizacja:C:\Program Files
Offline

Napisano 12.03.2011 15:53

Witam. Jest to moj 1 poradnik wiec proszę o wyrozumialosc.
Mala modyfikacja tak aby wyrzucalo perk po zmianie klasy.

Szukamy:
public UstawNowaKlase(id)
{
	new ret;
		
	new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, klasa_gracza[id]);
	DestroyForward(forward_handle);
		
	forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]);
	DestroyForward(forward_handle);
	
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}

	ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	klasa_gracza[id] = nowa_klasa_gracza[id];
	nowa_klasa_gracza[id] = 0;
	
	WczytajDane(id, klasa_gracza[id]);
	UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);
	return PLUGIN_CONTINUE;
}

I zamiast tego dajemy to:
public UstawNowaKlase(id)
{
	new ret;
		
	new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL);
	ExecuteForward(forward_handle, ret, id);
	DestroyForward(forward_handle);
		
	forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL);
	ExecuteForward(forward_handle, ret, id);
	DestroyForward(forward_handle);
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}

	ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	klasa_gracza[id] = nowa_klasa_gracza[id];
	nowa_klasa_gracza[id] = 0;
	WczytajDane(id, klasa_gracza[id]);
        UstawPerk(id, 0, 0, 0); 
	client_print(id, print_chat, "[COD:MW] Twoj perk ulegl zniszczeniu.");
	return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

#2 Daimyo

    Zaawansowany

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:119
  • Lokalizacja:rzeszow
Offline

Napisano 14.03.2011 07:01

nie dziala ;/
  • +
  • -
  • 0

#3 Vorster

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:22
  • Lokalizacja:Wroclove
Offline

Napisano 14.04.2011 16:15

może ktoś przerobi plugin na wytrzymałość perku bo w nim jest "twój perk uległ zniszczeniu" aby przy zmianie klasy automatycznie ustawiał wytrzymałość na 0 i niszczył ;-)

Mozę na komendę /klasa ?? trochę ryzykowne ale zawsze to coś.
  • +
  • -
  • 0

#4 Człowiek Lasu

    Nowy

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:4
  • Imię:Fajne
  • Lokalizacja:Internet
Offline

Napisano 13.05.2011 20:13

Dobra Odkopie ale pomogę xD.
na samej górze prawie czyli pod includami i definami(oo trudna odmiana)
native cod_set_perk_durability(id, wytrzymalosc);

i w ustaw nowa klase dajesz linijkę
cod_set_perk_durability(id, 0)
Powinno działać jeśli błąd to sory

#5 Pa+hetiC

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:10
  • Imię:Piotr
  • Lokalizacja:Gołębiów
Offline

Napisano 16.05.2011 16:33

Odnajdujesz:

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_doswiadczenie_za_zabojstwo = register_cvar("cod_killxp", "10");
cvar_doswiadczenie_za_obrazenia = register_cvar("cod_damagexp", "1"); // ilosc doswiadczenia za 20 obrazen
cvar_doswiadczenie_za_wygrana = register_cvar("cod_winxp", "50");
cvar_typ_zapisu = register_cvar("cod_savetype", "2"); // 1-Nick; 2-SID dla Steam; 3-IP
cvar_limit_poziomu = register_cvar("cod_maxlevel", "200");
cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35");
cvar_blokada_broni = register_cvar("cod_weaponsblocking", "1");

register_clcmd("say /klasa", "WybierzKlase");
register_clcmd("say /class", "WybierzKlase");
register_clcmd("say /klasy", "OpisKlasy");
register_clcmd("say /classinfo", "OpisKlasy");
register_clcmd("say /perk", "KomendaOpisPerku");
register_clcmd("say /perki", "OpisPerkow");
register_clcmd("say /perks", "OpisPerkow");
register_clcmd("say /item", "Pomoc");
register_clcmd("say /przedmiot", "OpisPerku");
register_clcmd("say /drop", "WyrzucPerk");
register_clcmd("say /wyrzuc", "WyrzucPerk");
register_clcmd("say /reset", "KomendaResetujPunkty");
register_clcmd("say /statystyki", "PrzydzielPunkty");
register_clcmd("say /staty", "PrzydzielPunkty");
register_clcmd("say /pomoc", "Pomoc");
register_clcmd("useperk", "UzyjPerku");
register_clcmd("radio3", "UzyjPerku");
register_clcmd("fullupdate", "BlokujKomende");

register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlasy");

RegisterHam(Ham_TakeDamage, "player", "Obrazenia");
RegisterHam(Ham_TakeDamage, "player", "ObrazeniaPost", 1);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);

RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
RegisterHam(Ham_Touch, "weapon_shield", "DotykBroni");
RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");

register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_EmitSound, "EmitSound");

register_message(get_user_msgid("Health"),"MessageHealth");

register_logevent("PoczatekRundy", 2, "1=Round_Start");

register_event("SendAudio", "WygranaTerro" , "a", "2&%!MRAD_terwin");
register_event("SendAudio", "WygranaCT", "a", "2&%!MRAD_ctwin");
register_event("CurWeapon","CurWeapon","be", "1=1");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");

vault = nvault_open("CodMod");

MsgScreenfade = get_user_msgid("ScreenFade");

SyncHudObj = CreateHudSyncObj();
SyncHudObj2 = CreateHudSyncObj();

perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
klasa_zmieniona = CreateMultiForward("cod_class_changed", ET_CONTINUE, FP_CELL, FP_CELL);

copy(nazwy_perkow[0], MAX_WIELKOSC_NAZWY, "Brak");
copy(opisy_perkow[0], MAX_WIELKOSC_OPISU, "Zabij kogos, aby otrzymac przedmiot");
copy(nazwy_klas[0], MAX_WIELKOSC_NAZWY, "Brak");

set_task(1.0, "plugin_cfg");
}


i zamieniasz na :

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_doswiadczenie_za_zabojstwo = register_cvar("cod_killxp", "10");
cvar_doswiadczenie_za_obrazenia = register_cvar("cod_damagexp", "1"); // ilosc doswiadczenia za 20 obrazen
cvar_doswiadczenie_za_wygrana = register_cvar("cod_winxp", "50");
cvar_typ_zapisu = register_cvar("cod_savetype", "2"); // 1-Nick; 2-SID dla Steam; 3-IP
cvar_limit_poziomu = register_cvar("cod_maxlevel", "200");
cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35");
cvar_blokada_broni = register_cvar("cod_weaponsblocking", "1");

register_clcmd("say /klasa", "WybierzKlase");
register_clcmd("say /class", "WybierzKlase");
register_clcmd("say /klasa", "WyrzucPerk");
register_clcmd("say /class", "WyrzucPerk");
register_clcmd("say /klasy", "OpisKlasy");
register_clcmd("say /classinfo", "OpisKlasy");
register_clcmd("say /perk", "KomendaOpisPerku");
register_clcmd("say /perki", "OpisPerkow");
register_clcmd("say /perks", "OpisPerkow");
register_clcmd("say /item", "Pomoc");
register_clcmd("say /przedmiot", "OpisPerku");
register_clcmd("say /drop", "WyrzucPerk");
register_clcmd("say /wyrzuc", "WyrzucPerk");
register_clcmd("say /reset", "KomendaResetujPunkty");
register_clcmd("say /statystyki", "PrzydzielPunkty");
register_clcmd("say /staty", "PrzydzielPunkty");
register_clcmd("say /pomoc", "Pomoc");
register_clcmd("useperk", "UzyjPerku");
register_clcmd("radio3", "UzyjPerku");
register_clcmd("fullupdate", "BlokujKomende");

register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlasy");

RegisterHam(Ham_TakeDamage, "player", "Obrazenia");
RegisterHam(Ham_TakeDamage, "player", "ObrazeniaPost", 1);
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);

RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
RegisterHam(Ham_Touch, "weapon_shield", "DotykBroni");
RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");

register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_EmitSound, "EmitSound");

register_message(get_user_msgid("Health"),"MessageHealth");

register_logevent("PoczatekRundy", 2, "1=Round_Start");

register_event("SendAudio", "WygranaTerro" , "a", "2&%!MRAD_terwin");
register_event("SendAudio", "WygranaCT", "a", "2&%!MRAD_ctwin");
register_event("CurWeapon","CurWeapon","be", "1=1");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");

vault = nvault_open("CodMod");

MsgScreenfade = get_user_msgid("ScreenFade");

SyncHudObj = CreateHudSyncObj();
SyncHudObj2 = CreateHudSyncObj();

perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
klasa_zmieniona = CreateMultiForward("cod_class_changed", ET_CONTINUE, FP_CELL, FP_CELL);

copy(nazwy_perkow[0], MAX_WIELKOSC_NAZWY, "Brak");
copy(opisy_perkow[0], MAX_WIELKOSC_OPISU, "Zabij kogos, aby otrzymac przedmiot");
copy(nazwy_klas[0], MAX_WIELKOSC_NAZWY, "Brak");

set_task(1.0, "plugin_cfg");
}


I działa :)
  • +
  • -
  • 0

"każda ominięta walka jest walką zwycięską"


Born to be dead.
Pa+hetiC

#6 LubieThcc

    Życzliwy

  • Użytkownik

Reputacja: -5
Nowy

  • Postów:23
  • GG:
  • Imię:Tomasz
  • Lokalizacja:Anglia / Lomza
Offline

Napisano 13.11.2013 13:46

dzięki za plugin mi działa w 100% ;) 


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: CoD Nowy

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

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