Linux` Opublikowano Kwiecień 17, 2016 o 18:25 Udostępnij Opublikowano Kwiecień 17, 2016 o 18:25 (edytowane) W tym prostym poradniku opisze w jaki sposób dodamy item znany z amxx, nanosuit. Tak więc na początku tworzymy prosty item, bez żadnych umiejętności, czyli: #include <sourcemod> #include <sdkhooks> #include <sdktools> #include <cstrike> #include <codmod> new const String:nazwa[] = "Nanosuit"; new const String:opis[] = "Posiadasz odpornosc na umiejetnosci wszystkich klas oraz itemow"; public OnPluginStart() { CreateConVar(nazwa, "1.0", "Linux`"); cod_register_item(nazwa, opis, 0, 0); } Następnie musimy otworzyć wszystkie nasze klasy bądż itemy (w zależności od tego na co chcemy mieć odporność) i dodać odpowiedni warunek, nad wykonaniem wybranej funkcji: if(cod_get_user_item(ofiara) == cod_get_itemid("Nanosuit")) oczywiście zamiast indexu (ofiara) wpisujemy id naszej ofiary a następnie blokujemy funkcje (return, continue, return Plugin_Continue), wszystko w zależności od tego gdzie dodajemy warunek. Niżej przykładowa klasa Komandos z odpornością na item: #include <sourcemod> #include <sdkhooks> #include <sdktools> #include <cstrike> #include <codmod> new const String:nazwa[] = "Komandos"; new const String:opis[] = "Posiada natychmiastowe zabicie z noza (+ppm)"; new const String:bronie[] = "#weapon_deagle"; new const inteligencja = 0; new const zdrowie = 40; new const obrazenia = 0; new const wytrzymalosc = 0; new const kondycja = 60; new bool:ma_klase[65]; public OnPluginStart() { CreateConVar(nazwa, "1.0", "Linux`"); cod_register_class(nazwa, opis, bronie, inteligencja, zdrowie, obrazenia, wytrzymalosc, kondycja); } public OnClientPutInServer(client) { SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public OnClientDisconnect(client) { SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public cod_class_enabled(client) { ma_klase[client] = true; } public cod_class_disabled(client) { ma_klase[client] = false; } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype) { if(!IsValidClient(victim) || !IsValidClient(attacker)) return Plugin_Continue; if(!ma_klase[attacker] || GetClientTeam(victim) == GetClientTeam(attacker)) return Plugin_Continue; if(cod_get_user_item(victim) == cod_get_itemid("Nanosuit")) return Plugin_Continue; new String:weapon[32]; GetClientWeapon(attacker, weapon, sizeof(weapon)); if(StrEqual(weapon, "weapon_knife") && damagetype & DMG_SLASH && GetClientButtons(attacker) & IN_ATTACK2) { new obrazenia_gracza = GetClientHealth(victim)+1; cod_inflict_damage(victim, attacker, 0, obrazenia_gracza); } return Plugin_Changed; } Oczywiście tym sposobem, możemy również dodać odporność na rakiety, miny itp. A w wypadku odporności na klasę funkcja będzie wyglądać tak: if(cod_get_user_class(ofiara) == cod_get_classid("Nazwa Klasy")) Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze. Edytowane Kwiecień 22, 2016 o 13:01 przez Linux` Call Of Duty Mod Nowy v1.1 CS:GO https://mygo.pl/topic/4986-call-of-duty-mod-nowy-v11/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się