Diff
checker
Text
Text
Bilder
Dokumente
Excel
Ordner
Legal
Enterprise
Desktop-App
Preise
Einloggen
Diffchecker Desktop herunterladen
Texte vergleichen
Finde den Unterschied zwischen zwei Textdateien
Werkzeuge
Verlauf
Live-Editor
Gleiches ausblenden
Zeilenumbruch aus
Ansicht
Zweispaltig
Einspaltig
Vergleichsgenauigkeit
Intelligent
Wort
Zeichen
Syntaxhervorhebung
Syntax auswählen
Ignorieren
Text umwandeln
Zur ersten Änderung
Eingabe bearbeiten
Diffchecker Desktop
Der sicherste Weg, Diffchecker zu nutzen. Hol dir die Desktop-App: Deine Diffs verlassen nie deinen Computer!
Desktop holen
Copy4u
Erstellt
vor 3 Jahren
Diff läuft nie ab
Löschen
Exportieren
Teilen
Erklären
16 Entfernungen
Zeilen
Gesamt
Entfernt
Zeichen
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
481 Zeilen
Kopieren
13 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Zeichen
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
481 Zeilen
Kopieren
/* Plugin generated by AMXX-Studio */
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmodx>
#include <hamsandwich>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta>
#include <cstrike>
#include <cstrike>
#include <nvault>
#include <nvault>
#include <colorchat>
#include <colorchat>
Kopieren
Kopiert
Kopieren
Kopiert
#include <jailbreak>
static const name[] = "JB: Skin System";
static const version[] = "1.0";
static const author[] = "edit amxx4u";
static const url_author[] = "https://amxx4u.pl/";
native cs_set_player_model(id, model[]);
native cs_set_player_model(id, model[]);
Kopieren
Kopiert
Kopieren
Kopiert
native get_user_jbpack(id);
native set_user_jbpack(id, ile);
#define MAX_ILOSC_SKINOW 8
#define MAX_ILOSC_SKINOW 8
enum { NOZ = 0, TT, CT };
enum { NOZ = 0, TT, CT };
enum { SZLUGI = 0, FLAGI };
enum { SZLUGI = 0, FLAGI };
#define NAZWA_RODZAJU(%1) (%1==0)?"noza":((%1==1)?"wieznia":"klawisza")
#define NAZWA_RODZAJU(%1) (%1==0)?"noza":((%1==1)?"wieznia":"klawisza")
new g_szNazwaSkina[3][MAX_ILOSC_SKINOW+1][32];
new g_szNazwaSkina[3][MAX_ILOSC_SKINOW+1][32];
new g_szSciezkaSkina[3][MAX_ILOSC_SKINOW+1][256];
new g_szSciezkaSkina[3][MAX_ILOSC_SKINOW+1][256];
new g_szSciezkaSkina2[3][MAX_ILOSC_SKINOW+1][256];
new g_szSciezkaSkina2[3][MAX_ILOSC_SKINOW+1][256];
new g_iRodzajWymogowSkina[3][MAX_ILOSC_SKINOW+1];
new g_iRodzajWymogowSkina[3][MAX_ILOSC_SKINOW+1];
new g_iWymogiSkina[3][MAX_ILOSC_SKINOW+1];
new g_iWymogiSkina[3][MAX_ILOSC_SKINOW+1];
new g_iRodzajNoza[MAX_ILOSC_SKINOW+1];
new g_iRodzajNoza[MAX_ILOSC_SKINOW+1];
new g_iIloscSkinow[3];
new g_iIloscSkinow[3];
new g_iVault;
new g_iVault;
new g_iSkinGracza[33][3];
new g_iSkinGracza[33][3];
new g_iWyborRodzajuGracza[33];
new g_iWyborRodzajuGracza[33];
public plugin_init() {
public plugin_init() {
Kopieren
Kopiert
Kopieren
Kopiert
register_plugin(
name, version, author, url_author
);
register_plugin(
"Jail: Skiny", "1.0", "d0naciak.pl"
);
register_clcmd("say /skiny", "cmd_Skiny");
register_clcmd("say /skiny", "cmd_Skiny");
register_clcmd("say /modele", "cmd_Skiny");
register_clcmd("say /modele", "cmd_Skiny");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_WybralNoz_Post", 1);
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_WybralNoz_Post", 1);
RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_DostalNoz_Post", 1);
RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_DostalNoz_Post", 1);
RegisterHam(Ham_Spawn, "player", "fw_Odrodzenie_Post", 1);
RegisterHam(Ham_Spawn, "player", "fw_Odrodzenie_Post", 1);
register_forward(FM_EmitSound, "fw_EmitSound");
register_forward(FM_EmitSound, "fw_EmitSound");
g_iVault = nvault_open("SkinyJailBreak");
g_iVault = nvault_open("SkinyJailBreak");
}
}
public plugin_natives() {
public plugin_natives() {
register_native("jail_show_skins_menu", "cmd_Skiny", 1);
register_native("jail_show_skins_menu", "cmd_Skiny", 1);
}
}
public plugin_precache() {
public plugin_precache() {
WczytajSkiny();
WczytajSkiny();
precache_sound("weapons/prawy_przycisk.wav");
precache_sound("weapons/prawy_przycisk.wav");
precache_sound("weapons/uderzenie_mur.wav");
precache_sound("weapons/uderzenie_mur.wav");
precache_sound("weapons/hit1.wav");
precache_sound("weapons/hit1.wav");
precache_sound("weapons/hit2.wav");
precache_sound("weapons/hit2.wav");
precache_sound("weapons/machanie.wav");
precache_sound("weapons/machanie.wav");
}
}
public plugin_end() {
public plugin_end() {
nvault_close(g_iVault);
nvault_close(g_iVault);
}
}
public client_authorized(id) {
public client_authorized(id) {
set_task(2.0, "task_WczytajSkinyGracza", id);
set_task(2.0, "task_WczytajSkinyGracza", id);
}
}
Kopieren
Kopiert
Kopieren
Kopiert
public client_disconnect
ed
(id) {
public client_disconnect
(id) {
remove_task(id);
remove_task(id);
}
}
public cmd_Skiny(id) {
public cmd_Skiny(id) {
new iMenu = menu_create("Menu skinow, wybierz rodzaj: ", "Skiny_Handler");
new iMenu = menu_create("Menu skinow, wybierz rodzaj: ", "Skiny_Handler");
menu_additem(iMenu, "Skiny noza");
menu_additem(iMenu, "Skiny noza");
menu_additem(iMenu, "Skiny wieznia");
menu_additem(iMenu, "Skiny wieznia");
menu_additem(iMenu, "Skiny klawisza");
menu_additem(iMenu, "Skiny klawisza");
menu_setprop(iMenu, MPROP_EXITNAME, "Wyjscie");
menu_setprop(iMenu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, iMenu);
menu_display(id, iMenu);
return PLUGIN_HANDLED;
return PLUGIN_HANDLED;
}
}
public Skiny_Handler(id, iMenu, iItem) {
public Skiny_Handler(id, iMenu, iItem) {
if(iItem == MENU_EXIT) {
if(iItem == MENU_EXIT) {
menu_destroy(iMenu);
menu_destroy(iMenu);
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
g_iWyborRodzajuGracza[id] = iItem;
g_iWyborRodzajuGracza[id] = iItem;
ListaSkinow(id);
ListaSkinow(id);
menu_destroy(iMenu);
menu_destroy(iMenu);
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
public ListaSkinow(id) {
public ListaSkinow(id) {
new iRodzaj = g_iWyborRodzajuGracza[id];
new iRodzaj = g_iWyborRodzajuGracza[id];
if(!g_iIloscSkinow[iRodzaj]) {
if(!g_iIloscSkinow[iRodzaj]) {
PokazWiadomosc(id, "Nie znaleziono skinow dla %s.", NAZWA_RODZAJU(iRodzaj));
PokazWiadomosc(id, "Nie znaleziono skinow dla %s.", NAZWA_RODZAJU(iRodzaj));
return;
return;
}
}
new szItem[128], szKluczVault[128], szNick[32], iMenu;
new szItem[128], szKluczVault[128], szNick[32], iMenu;
formatex(szItem, 127, "Lista skinow \w%s^nKliknij, aby poznac szczegoly", NAZWA_RODZAJU(iRodzaj));
formatex(szItem, 127, "Lista skinow \w%s^nKliknij, aby poznac szczegoly", NAZWA_RODZAJU(iRodzaj));
iMenu = menu_create(szItem, "ListaSkinow_Handler");
iMenu = menu_create(szItem, "ListaSkinow_Handler");
get_user_name(id, szNick, 31);
get_user_name(id, szNick, 31);
for(new i = 1; i <= g_iIloscSkinow[iRodzaj]; i++) {
for(new i = 1; i <= g_iIloscSkinow[iRodzaj]; i++) {
formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, i);
formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, i);
if(nvault_get(g_iVault, szKluczVault) || (g_iRodzajWymogowSkina[iRodzaj][i] == FLAGI && get_user_flags(id) & g_iWymogiSkina[iRodzaj][i])) {
if(nvault_get(g_iVault, szKluczVault) || (g_iRodzajWymogowSkina[iRodzaj][i] == FLAGI && get_user_flags(id) & g_iWymogiSkina[iRodzaj][i])) {
formatex(szItem, 127, "\y%s", g_szNazwaSkina[iRodzaj][i]);
formatex(szItem, 127, "\y%s", g_szNazwaSkina[iRodzaj][i]);
menu_additem(iMenu, szItem, "1");
menu_additem(iMenu, szItem, "1");
} else {
} else {
formatex(szItem, 127, "%s", g_szNazwaSkina[iRodzaj][i]);
formatex(szItem, 127, "%s", g_szNazwaSkina[iRodzaj][i]);
menu_additem(iMenu, szItem, "0");
menu_additem(iMenu, szItem, "0");
}
}
}
}
menu_setprop(iMenu, MPROP_EXITNAME, "\yDomyslny");
menu_setprop(iMenu, MPROP_EXITNAME, "\yDomyslny");
menu_setprop(iMenu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(iMenu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(iMenu, MPROP_NEXTNAME, "Nastepna strona");
menu_setprop(iMenu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, iMenu); //dodaj pod exit skiny 'domyslny' (czy na pewno?)
menu_display(id, iMenu); //dodaj pod exit skiny 'domyslny' (czy na pewno?)
}
}
public ListaSkinow_Handler(id, iMenu, iItem) {
public ListaSkinow_Handler(id, iMenu, iItem) {
new iRodzaj = g_iWyborRodzajuGracza[id];
new iRodzaj = g_iWyborRodzajuGracza[id];
if(iItem < 0) {
if(iItem < 0) {
if(iItem == MENU_EXIT) {
if(iItem == MENU_EXIT) {
UstawSkina(id, iRodzaj, 0); //dodaj pod 0 domyslne skiny
UstawSkina(id, iRodzaj, 0); //dodaj pod 0 domyslne skiny
cmd_Skiny(id);
cmd_Skiny(id);
menu_destroy(iMenu);
menu_destroy(iMenu);
}
}
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
new iAccess, iCb, szMaDostep[4], iIdSkina = iItem + 1;
new iAccess, iCb, szMaDostep[4], iIdSkina = iItem + 1;
menu_item_getinfo(iMenu, iItem, iAccess, szMaDostep, 3, _, _, iCb);
menu_item_getinfo(iMenu, iItem, iAccess, szMaDostep, 3, _, _, iCb);
menu_destroy(iMenu);
menu_destroy(iMenu);
if(str_to_num(szMaDostep) == 1) {
if(str_to_num(szMaDostep) == 1) {
UstawSkina(id, iRodzaj, iIdSkina);
UstawSkina(id, iRodzaj, iIdSkina);
cmd_Skiny(id);
cmd_Skiny(id);
} else {
} else {
new szItem[128], szIdSkina[4];
new szItem[128], szIdSkina[4];
formatex(szItem, 127, "Info o skinie %s: \w%s", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
formatex(szItem, 127, "Info o skinie %s: \w%s", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
new iNoweMenu = menu_create(szItem, "Skin_Handler");
new iNoweMenu = menu_create(szItem, "Skin_Handler");
num_to_str(iIdSkina, szIdSkina, 3);
num_to_str(iIdSkina, szIdSkina, 3);
menu_additem(iNoweMenu, "Podglad skina", szIdSkina);
menu_additem(iNoweMenu, "Podglad skina", szIdSkina);
if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
formatex(szItem, 127, "Kup za \y%d szlug(i/ow)", g_iWymogiSkina[iRodzaj][iIdSkina]);
formatex(szItem, 127, "Kup za \y%d szlug(i/ow)", g_iWymogiSkina[iRodzaj][iIdSkina]);
} else {
} else {
copy(szItem, 127, "Kup skina");
copy(szItem, 127, "Kup skina");
}
}
menu_additem(iNoweMenu, szItem, szIdSkina);
menu_additem(iNoweMenu, szItem, szIdSkina);
menu_setprop(iNoweMenu, MPROP_EXITNAME, "Powrot");
menu_setprop(iNoweMenu, MPROP_EXITNAME, "Powrot");
menu_display(id, iNoweMenu);
menu_display(id, iNoweMenu);
}
}
//cmd_Skiny(id);
//cmd_Skiny(id);
//menu_destroy(iMenu);
//menu_destroy(iMenu);
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
public Skin_Handler(id, iMenu, iItem) {
public Skin_Handler(id, iMenu, iItem) {
if(iItem < 0) {
if(iItem < 0) {
if(iItem == MENU_EXIT) {
if(iItem == MENU_EXIT) {
ListaSkinow(id);
ListaSkinow(id);
menu_destroy(iMenu);
menu_destroy(iMenu);
}
}
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
new iAccess, iCb, szIdSkina[4],iRodzaj = g_iWyborRodzajuGracza[id], iIdSkina;
new iAccess, iCb, szIdSkina[4],iRodzaj = g_iWyborRodzajuGracza[id], iIdSkina;
menu_item_getinfo(iMenu, iItem, iAccess, szIdSkina, 3, _, _, iCb);
menu_item_getinfo(iMenu, iItem, iAccess, szIdSkina, 3, _, _, iCb);
iIdSkina = str_to_num(szIdSkina);
iIdSkina = str_to_num(szIdSkina);
if(!iItem) {
if(!iItem) {
PodgladSkinaMotd(id, iRodzaj, iIdSkina);
PodgladSkinaMotd(id, iRodzaj, iIdSkina);
menu_display(id, iMenu);
menu_display(id, iMenu);
} else {
} else {
if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
Kopieren
Kopiert
Kopieren
Kopiert
new iCena = g_iWymogiSkina[iRodzaj][iIdSkina], iIloscSzlugow =
amxx4u_
get_
joint
(id);
new iCena = g_iWymogiSkina[iRodzaj][iIdSkina], iIloscSzlugow =
get_
user_jbpack
(id);
if(iIloscSzlugow >= iCena) {
if(iIloscSzlugow >= iCena) {
new szNick[32], szKluczVault[128];
new szNick[32], szKluczVault[128];
get_user_name(id, szNick, 31);
get_user_name(id, szNick, 31);
formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, iIdSkina);
formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, iIdSkina);
nvault_set(g_iVault, szKluczVault, "1");
nvault_set(g_iVault, szKluczVault, "1");
Kopieren
Kopiert
Kopieren
Kopiert
amxx4u_
set_
joint
(id, iIloscSzlugow - iCena);
set_
user_jbpack
(id, iIloscSzlugow - iCena);
PokazWiadomosc(id, "Kupiles skina %s^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
PokazWiadomosc(id, "Kupiles skina %s^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
menu_destroy(iMenu);
menu_destroy(iMenu);
ListaSkinow(id);
ListaSkinow(id);
} else {
} else {
PokazWiadomosc(id, "Brakuje Ci szlugow na tego skina!");
PokazWiadomosc(id, "Brakuje Ci szlugow na tego skina!");
menu_display(id, iMenu);
menu_display(id, iMenu);
}
}
} else {
} else {
PokazWiadomosc(id, "Nie masz dostepu do tego skina!");
PokazWiadomosc(id, "Nie masz dostepu do tego skina!");
PokazWiadomosc(id, "Aby go zdobyc, uzyj komendy^x03 /sklepsms");
PokazWiadomosc(id, "Aby go zdobyc, uzyj komendy^x03 /sklepsms");
menu_display(id, iMenu);
menu_display(id, iMenu);
}
}
}
}
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
public fw_DostalNoz_Post(iEnt, id) {
public fw_DostalNoz_Post(iEnt, id) {
if(!pev_valid(iEnt) || !is_user_alive(id)) {
if(!pev_valid(iEnt) || !is_user_alive(id)) {
return HAM_IGNORED;
return HAM_IGNORED;
}
}
if(cs_get_weapon_id(iEnt) == CSW_KNIFE) {
if(cs_get_weapon_id(iEnt) == CSW_KNIFE) {
set_task(0.1, "task_DostalNoz", id);
set_task(0.1, "task_DostalNoz", id);
}
}
return HAM_IGNORED;
return HAM_IGNORED;
}
}
public task_DostalNoz(id) {
public task_DostalNoz(id) {
if(!is_user_alive(id)) {
if(!is_user_alive(id)) {
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
if(get_user_weapon(id) == CSW_KNIFE) {
if(get_user_weapon(id) == CSW_KNIFE) {
new iIdSkina = g_iSkinGracza[id][NOZ];
new iIdSkina = g_iSkinGracza[id][NOZ];
if(iIdSkina) {
if(iIdSkina) {
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
}
}
}
}
}
}
return PLUGIN_CONTINUE;
return PLUGIN_CONTINUE;
}
}
public fw_WybralNoz_Post(iEnt) {
public fw_WybralNoz_Post(iEnt) {
if(!pev_valid(iEnt)) {
if(!pev_valid(iEnt)) {
return HAM_IGNORED;
return HAM_IGNORED;
}
}
new id = pev(iEnt, pev_owner);
new id = pev(iEnt, pev_owner);
if(!is_user_alive(id)) {
if(!is_user_alive(id)) {
return HAM_IGNORED;
return HAM_IGNORED;
}
}
new iIdSkina = g_iSkinGracza[id][NOZ];
new iIdSkina = g_iSkinGracza[id][NOZ];
if(iIdSkina) {
if(iIdSkina) {
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
}
}
}
}
return HAM_IGNORED;
return HAM_IGNORED;
}
}
public fw_Odrodzenie_Post(id) {
public fw_Odrodzenie_Post(id) {
if(!is_user_alive(id)) {
if(!is_user_alive(id)) {
return HAM_IGNORED;
return HAM_IGNORED;
}
}
new iTeam = get_user_team(id);
new iTeam = get_user_team(id);
if(!(1 <= iTeam <= 2)) {
if(!(1 <= iTeam <= 2)) {
return HAM_IGNORED;
return HAM_IGNORED;
}
}
new iIdSkina = g_iSkinGracza[id][iTeam];
new iIdSkina = g_iSkinGracza[id][iTeam];
cs_set_player_model(id, g_szSciezkaSkina[iTeam][iIdSkina]);
cs_set_player_model(id, g_szSciezkaSkina[iTeam][iIdSkina]);
Kopieren
Kopiert
Kopieren
Kopiert
if(iIdSkina) {
server_print("MA SKINA %s", g_szSciezkaSkina[iTeam][iIdSkina]);
}
return HAM_IGNORED;
return HAM_IGNORED;
}
}
public fw_EmitSound(id, channel, sample[])
public fw_EmitSound(id, channel, sample[])
{
{
if(!is_user_alive(id))
if(!is_user_alive(id))
return FMRES_IGNORED;
return FMRES_IGNORED;
if(equal(sample, "weapons/knife_", 14))
if(equal(sample, "weapons/knife_", 14))
{
{
new iSkin = g_iSkinGracza[id][NOZ];
new iSkin = g_iSkinGracza[id][NOZ];
if(g_iRodzajNoza[iSkin]) {
if(g_iRodzajNoza[iSkin]) {
switch(sample[17])
switch(sample[17])
{
{
case ('b'): emit_sound(id, CHAN_WEAPON, "weapons/prawy_przycisk.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
case ('b'): emit_sound(id, CHAN_WEAPON, "weapons/prawy_przycisk.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
case ('w'): emit_sound(id, CHAN_WEAPON, "weapons/uderzenie_mur.wav", 1.0, ATTN_NORM, 0, PITCH_LOW);
case ('w'): emit_sound(id, CHAN_WEAPON, "weapons/uderzenie_mur.wav", 1.0, ATTN_NORM, 0, PITCH_LOW);
case ('s'): emit_sound(id, CHAN_WEAPON, "weapons/machanie.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
case ('s'): emit_sound(id, CHAN_WEAPON, "weapons/machanie.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
case ('1'): emit_sound(id, CHAN_WEAPON, "weapons/hit1.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
case ('1'): emit_sound(id, CHAN_WEAPON, "weapons/hit1.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
case ('2'): emit_sound(id, CHAN_WEAPON, "weapons/hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
case ('2'): emit_sound(id, CHAN_WEAPON, "weapons/hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM);
}
}
return FMRES_SUPERCEDE;
return FMRES_SUPERCEDE;
}
}
}
}
if(equal(sample, "common/wpn_denyselect.wav"))
if(equal(sample, "common/wpn_denyselect.wav"))
return FMRES_SUPERCEDE;
return FMRES_SUPERCEDE;
return FMRES_IGNORED;
return FMRES_IGNORED;
}
}
UstawSkina(id, iRodzaj, iIdSkina) {
UstawSkina(id, iRodzaj, iIdSkina) {
new szNick[32], szKluczVault[128], szIdSkina[4];
new szNick[32], szKluczVault[128], szIdSkina[4];
g_iSkinGracza[id][iRodzaj] = iIdSkina;
g_iSkinGracza[id][iRodzaj] = iIdSkina;
get_user_name(id, szNick, 31);
get_user_name(id, szNick, 31);
formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, iRodzaj);
formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, iRodzaj);
num_to_str(iIdSkina, szIdSkina, 3);
num_to_str(iIdSkina, szIdSkina, 3);
nvault_set(g_iVault, szKluczVault, szIdSkina);
nvault_set(g_iVault, szKluczVault, szIdSkina);
if(iRodzaj == NOZ && get_user_weapon(id) == CSW_KNIFE/* && get_user_team(id) == 1*/) {
if(iRodzaj == NOZ && get_user_weapon(id) == CSW_KNIFE/* && get_user_team(id) == 1*/) {
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
if(g_szSciezkaSkina2[iRodzaj][iIdSkina][0]) {
if(g_szSciezkaSkina2[iRodzaj][iIdSkina][0]) {
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[iRodzaj][iIdSkina]);
set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[iRodzaj][iIdSkina]);
}
}
}
}
PokazWiadomosc(id, "Jako skin %s ustawiono^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
PokazWiadomosc(id, "Jako skin %s ustawiono^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
}
}
PodgladSkinaMotd(id, iRodzaj, iIdSkina) {
PodgladSkinaMotd(id, iRodzaj, iIdSkina) {
new szSciezka[256], szMOTD[512];
new szSciezka[256], szMOTD[512];
static szFD[128];
static szFD[128];
if(!szFD[0]) {
if(!szFD[0]) {
get_cvar_string("sv_downloadurl", szFD, 127);
get_cvar_string("sv_downloadurl", szFD, 127);
}
}
if(iRodzaj == NOZ) {
if(iRodzaj == NOZ) {
copy(szSciezka, 255, g_szSciezkaSkina[NOZ][iIdSkina]);
copy(szSciezka, 255, g_szSciezkaSkina[NOZ][iIdSkina]);
replace(szSciezka, 255, ".mdl", ".png");
replace(szSciezka, 255, ".mdl", ".png");
} else {
} else {
formatex(szSciezka, 255, "models/player/%s/%s.png", g_szSciezkaSkina[iRodzaj][iIdSkina], g_szSciezkaSkina[iRodzaj][iIdSkina]);
formatex(szSciezka, 255, "models/player/%s/%s.png", g_szSciezkaSkina[iRodzaj][iIdSkina], g_szSciezkaSkina[iRodzaj][iIdSkina]);
}
}
formatex(szMOTD, 511, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s/%s^">", szFD, szSciezka);
formatex(szMOTD, 511, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s/%s^">", szFD, szSciezka);
show_motd(id, szMOTD, "Podglad skina");
show_motd(id, szMOTD, "Podglad skina");
}
}
public task_WczytajSkinyGracza(id) {
public task_WczytajSkinyGracza(id) {
new szNick[32], szKluczVault[128], iIdSkina;
new szNick[32], szKluczVault[128], iIdSkina;
get_user_name(id, szNick, 31);
get_user_name(id, szNick, 31);
for(new i = 0; i < 3; i++) {
for(new i = 0; i < 3; i++) {
formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, i);
formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, i);
iIdSkina = g_iSkinGracza[id][i] = nvault_get(g_iVault, szKluczVault);
iIdSkina = g_iSkinGracza[id][i] = nvault_get(g_iVault, szKluczVault);
if(g_iRodzajWymogowSkina[i][iIdSkina] == FLAGI && !(get_user_flags(id) & g_iWymogiSkina[i][iIdSkina])) {
if(g_iRodzajWymogowSkina[i][iIdSkina] == FLAGI && !(get_user_flags(id) & g_iWymogiSkina[i][iIdSkina])) {
g_iSkinGracza[id][i] = 0;
g_iSkinGracza[id][i] = 0;
nvault_remove(g_iVault, szKluczVault);
nvault_remove(g_iVault, szKluczVault);
}
}
}
}
}
}
WczytajSkiny() { //sprawdz caly public
WczytajSkiny() { //sprawdz caly public
new iPlik = fopen("addons/amxmodx/configs/skiny.ini", "r");
new iPlik = fopen("addons/amxmodx/configs/skiny.ini", "r");
if(!iPlik) {
if(!iPlik) {
return 0;
return 0;
}
}
//DODAJ TO W CVARACH MOZE EJJ
//DODAJ TO W CVARACH MOZE EJJ
copy(g_szNazwaSkina[NOZ][0], 31, "Domyslny");
copy(g_szNazwaSkina[NOZ][0], 31, "Domyslny");
copy(g_szNazwaSkina[TT][0], 31, "Domyslny");
copy(g_szNazwaSkina[TT][0], 31, "Domyslny");
copy(g_szNazwaSkina[CT][0], 31, "Domyslny");
copy(g_szNazwaSkina[CT][0], 31, "Domyslny");
copy(g_szSciezkaSkina[NOZ][0], 255, "models/v_bknuckles.mdl");
copy(g_szSciezkaSkina[NOZ][0], 255, "models/v_bknuckles.mdl");
copy(g_szSciezkaSkina2[NOZ][0], 255, "models/p_bknuckles.mdl");
copy(g_szSciezkaSkina2[NOZ][0], 255, "models/p_bknuckles.mdl");
Kopieren
Kopiert
Kopieren
Kopiert
copy(g_szSciezkaSkina[TT][0], 255, "
wiezien_cypis
");
copy(g_szSciezkaSkina[TT][0], 255, "
jbemodel
");
copy(g_szSciezkaSkina[CT][0], 255, "
klawisz_cypis
");
copy(g_szSciezkaSkina[CT][0], 255, "
straznik_d0naciak
");
g_iRodzajNoza[0] = 1;
g_iRodzajNoza[0] = 1;
precache_model("models/v_bknuckles.mdl");
precache_model("models/v_bknuckles.mdl");
precache_model("models/p_bknuckles.mdl");
precache_model("models/p_bknuckles.mdl");
Kopieren
Kopiert
Kopieren
Kopiert
precache_model("models/player/
wiezien_cypis/wiezien_cypis
.mdl");
precache_model("models/player/
jbemodel/jbemodel
.mdl");
precache_model("models/player/
klawisz_cypis/klawisz_cypis
.mdl");
precache_model("models/player/
straznik_d0naciak/straznik_d0naciak
.mdl");
while(!feof(iPlik)) {
while(!feof(iPlik)) {
// "nazwa" "rodzaj" "cena" "sciezka1" "sciezka2"
// "nazwa" "rodzaj" "cena" "sciezka1" "sciezka2"
new szLinia[512], szNazwa[32], szRodzaj[4], szRodzajNoza[4], szWymogi[8], szSciezka[2][256], iRodzaj, iIdSkina;
new szLinia[512], szNazwa[32], szRodzaj[4], szRodzajNoza[4], szWymogi[8], szSciezka[2][256], iRodzaj, iIdSkina;
fgets(iPlik, szLinia, 511);
fgets(iPlik, szLinia, 511);
trim(szLinia);
trim(szLinia);
if(szLinia[0] == ';' || !szLinia[0])
if(szLinia[0] == ';' || !szLinia[0])
continue;
continue;
parse(szLinia, szNazwa, 31, szRodzaj, 3, szWymogi, 7, szSciezka[0], 255, szSciezka[1], 255, szRodzajNoza, 3);
parse(szLinia, szNazwa, 31, szRodzaj, 3, szWymogi, 7, szSciezka[0], 255, szSciezka[1], 255, szRodzajNoza, 3);
iRodzaj = str_to_num(szRodzaj);
iRodzaj = str_to_num(szRodzaj);
if(g_iIloscSkinow[iRodzaj] >= MAX_ILOSC_SKINOW) {
if(g_iIloscSkinow[iRodzaj] >= MAX_ILOSC_SKINOW) {
server_print("[JAIL:SKINY] Za duzo skinow rodzaju %d. Pominieto wczytanie skina %s", iRodzaj, szNazwa);
server_print("[JAIL:SKINY] Za duzo skinow rodzaju %d. Pominieto wczytanie skina %s", iRodzaj, szNazwa);
continue;
continue;
}
}
iIdSkina = ++g_iIloscSkinow[iRodzaj];
iIdSkina = ++g_iIloscSkinow[iRodzaj];
precache_model(szSciezka[0]);
precache_model(szSciezka[0]);
if(szSciezka[1][0]) {
if(szSciezka[1][0]) {
precache_model(szSciezka[1]);
precache_model(szSciezka[1]);
}
}
if(iRodzaj != NOZ) {
if(iRodzaj != NOZ) {
copy(szSciezka[0], 255, szSciezka[0][14]);
copy(szSciezka[0], 255, szSciezka[0][14]);
copy(szSciezka[0], 255, szSciezka[0][contain(szSciezka[0], "/")+1]);
copy(szSciezka[0], 255, szSciezka[0][contain(szSciezka[0], "/")+1]);
copy(szSciezka[0][strlen(szSciezka[0])-4], 251, "");
copy(szSciezka[0][strlen(szSciezka[0])-4], 251, "");
} else {
} else {
if(szSciezka[1][0]) {
if(szSciezka[1][0]) {
copy(g_szSciezkaSkina2[iRodzaj][iIdSkina], 255, szSciezka[1]);
copy(g_szSciezkaSkina2[iRodzaj][iIdSkina], 255, szSciezka[1]);
}
}
g_iRodzajNoza[iIdSkina] = str_to_num(szRodzajNoza);
g_iRodzajNoza[iIdSkina] = str_to_num(szRodzajNoza);
}
}
copy(g_szNazwaSkina[iRodzaj][iIdSkina], 31, szNazwa);
copy(g_szNazwaSkina[iRodzaj][iIdSkina], 31, szNazwa);
copy(g_szSciezkaSkina[iRodzaj][iIdSkina], 255, szSciezka[0]);
copy(g_szSciezkaSkina[iRodzaj][iIdSkina], 255, szSciezka[0]);
if(isdigit(szWymogi[0])) {
if(isdigit(szWymogi[0])) {
g_iWymogiSkina[iRodzaj][iIdSkina] = str_to_num(szWymogi);
g_iWymogiSkina[iRodzaj][iIdSkina] = str_to_num(szWymogi);
g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = SZLUGI;
g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = SZLUGI;
} else {
} else {
g_iWymogiSkina[iRodzaj][iIdSkina] = read_flags(szWymogi);
g_iWymogiSkina[iRodzaj][iIdSkina] = read_flags(szWymogi);
g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = FLAGI;
g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = FLAGI;
}
}
}
}
for(new i = 0; i < 3; i++) {
for(new i = 0; i < 3; i++) {
server_print("[JAIL:SKINY] Wczytano %d skinow %s", g_iIloscSkinow[i], NAZWA_RODZAJU(i));
server_print("[JAIL:SKINY] Wczytano %d skinow %s", g_iIloscSkinow[i], NAZWA_RODZAJU(i));
}
}
return 1;
return 1;
}
}
PokazWiadomosc(id, szText[], any:...)
PokazWiadomosc(id, szText[], any:...)
{
{
new szOutPut[256];
new szOutPut[256];
vformat(szOutPut, 255, szText, 3);
vformat(szOutPut, 255, szText, 3);
ColorChat(id, GREEN, "[JB:SKINY]^x01 %s", szOutPut);
ColorChat(id, GREEN, "[JB:SKINY]^x01 %s", szOutPut);
return 1;
return 1;
}
}
Gespeicherte Diffs
Originaltext
Datei öffnen
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <cstrike> #include <nvault> #include <colorchat> #include <jailbreak> static const name[] = "JB: Skin System"; static const version[] = "1.0"; static const author[] = "edit amxx4u"; static const url_author[] = "https://amxx4u.pl/"; native cs_set_player_model(id, model[]); #define MAX_ILOSC_SKINOW 8 enum { NOZ = 0, TT, CT }; enum { SZLUGI = 0, FLAGI }; #define NAZWA_RODZAJU(%1) (%1==0)?"noza":((%1==1)?"wieznia":"klawisza") new g_szNazwaSkina[3][MAX_ILOSC_SKINOW+1][32]; new g_szSciezkaSkina[3][MAX_ILOSC_SKINOW+1][256]; new g_szSciezkaSkina2[3][MAX_ILOSC_SKINOW+1][256]; new g_iRodzajWymogowSkina[3][MAX_ILOSC_SKINOW+1]; new g_iWymogiSkina[3][MAX_ILOSC_SKINOW+1]; new g_iRodzajNoza[MAX_ILOSC_SKINOW+1]; new g_iIloscSkinow[3]; new g_iVault; new g_iSkinGracza[33][3]; new g_iWyborRodzajuGracza[33]; public plugin_init() { register_plugin(name, version, author, url_author); register_clcmd("say /skiny", "cmd_Skiny"); register_clcmd("say /modele", "cmd_Skiny"); RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_WybralNoz_Post", 1); RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_DostalNoz_Post", 1); RegisterHam(Ham_Spawn, "player", "fw_Odrodzenie_Post", 1); register_forward(FM_EmitSound, "fw_EmitSound"); g_iVault = nvault_open("SkinyJailBreak"); } public plugin_natives() { register_native("jail_show_skins_menu", "cmd_Skiny", 1); } public plugin_precache() { WczytajSkiny(); precache_sound("weapons/prawy_przycisk.wav"); precache_sound("weapons/uderzenie_mur.wav"); precache_sound("weapons/hit1.wav"); precache_sound("weapons/hit2.wav"); precache_sound("weapons/machanie.wav"); } public plugin_end() { nvault_close(g_iVault); } public client_authorized(id) { set_task(2.0, "task_WczytajSkinyGracza", id); } public client_disconnected(id) { remove_task(id); } public cmd_Skiny(id) { new iMenu = menu_create("Menu skinow, wybierz rodzaj: ", "Skiny_Handler"); menu_additem(iMenu, "Skiny noza"); menu_additem(iMenu, "Skiny wieznia"); menu_additem(iMenu, "Skiny klawisza"); menu_setprop(iMenu, MPROP_EXITNAME, "Wyjscie"); menu_display(id, iMenu); return PLUGIN_HANDLED; } public Skiny_Handler(id, iMenu, iItem) { if(iItem == MENU_EXIT) { menu_destroy(iMenu); return PLUGIN_CONTINUE; } g_iWyborRodzajuGracza[id] = iItem; ListaSkinow(id); menu_destroy(iMenu); return PLUGIN_CONTINUE; } public ListaSkinow(id) { new iRodzaj = g_iWyborRodzajuGracza[id]; if(!g_iIloscSkinow[iRodzaj]) { PokazWiadomosc(id, "Nie znaleziono skinow dla %s.", NAZWA_RODZAJU(iRodzaj)); return; } new szItem[128], szKluczVault[128], szNick[32], iMenu; formatex(szItem, 127, "Lista skinow \w%s^nKliknij, aby poznac szczegoly", NAZWA_RODZAJU(iRodzaj)); iMenu = menu_create(szItem, "ListaSkinow_Handler"); get_user_name(id, szNick, 31); for(new i = 1; i <= g_iIloscSkinow[iRodzaj]; i++) { formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, i); if(nvault_get(g_iVault, szKluczVault) || (g_iRodzajWymogowSkina[iRodzaj][i] == FLAGI && get_user_flags(id) & g_iWymogiSkina[iRodzaj][i])) { formatex(szItem, 127, "\y%s", g_szNazwaSkina[iRodzaj][i]); menu_additem(iMenu, szItem, "1"); } else { formatex(szItem, 127, "%s", g_szNazwaSkina[iRodzaj][i]); menu_additem(iMenu, szItem, "0"); } } menu_setprop(iMenu, MPROP_EXITNAME, "\yDomyslny"); menu_setprop(iMenu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(iMenu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, iMenu); //dodaj pod exit skiny 'domyslny' (czy na pewno?) } public ListaSkinow_Handler(id, iMenu, iItem) { new iRodzaj = g_iWyborRodzajuGracza[id]; if(iItem < 0) { if(iItem == MENU_EXIT) { UstawSkina(id, iRodzaj, 0); //dodaj pod 0 domyslne skiny cmd_Skiny(id); menu_destroy(iMenu); } return PLUGIN_CONTINUE; } new iAccess, iCb, szMaDostep[4], iIdSkina = iItem + 1; menu_item_getinfo(iMenu, iItem, iAccess, szMaDostep, 3, _, _, iCb); menu_destroy(iMenu); if(str_to_num(szMaDostep) == 1) { UstawSkina(id, iRodzaj, iIdSkina); cmd_Skiny(id); } else { new szItem[128], szIdSkina[4]; formatex(szItem, 127, "Info o skinie %s: \w%s", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); new iNoweMenu = menu_create(szItem, "Skin_Handler"); num_to_str(iIdSkina, szIdSkina, 3); menu_additem(iNoweMenu, "Podglad skina", szIdSkina); if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) { formatex(szItem, 127, "Kup za \y%d szlug(i/ow)", g_iWymogiSkina[iRodzaj][iIdSkina]); } else { copy(szItem, 127, "Kup skina"); } menu_additem(iNoweMenu, szItem, szIdSkina); menu_setprop(iNoweMenu, MPROP_EXITNAME, "Powrot"); menu_display(id, iNoweMenu); } //cmd_Skiny(id); //menu_destroy(iMenu); return PLUGIN_CONTINUE; } public Skin_Handler(id, iMenu, iItem) { if(iItem < 0) { if(iItem == MENU_EXIT) { ListaSkinow(id); menu_destroy(iMenu); } return PLUGIN_CONTINUE; } new iAccess, iCb, szIdSkina[4],iRodzaj = g_iWyborRodzajuGracza[id], iIdSkina; menu_item_getinfo(iMenu, iItem, iAccess, szIdSkina, 3, _, _, iCb); iIdSkina = str_to_num(szIdSkina); if(!iItem) { PodgladSkinaMotd(id, iRodzaj, iIdSkina); menu_display(id, iMenu); } else { if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) { new iCena = g_iWymogiSkina[iRodzaj][iIdSkina], iIloscSzlugow = amxx4u_get_joint(id); if(iIloscSzlugow >= iCena) { new szNick[32], szKluczVault[128]; get_user_name(id, szNick, 31); formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, iIdSkina); nvault_set(g_iVault, szKluczVault, "1"); amxx4u_set_joint(id, iIloscSzlugow - iCena); PokazWiadomosc(id, "Kupiles skina %s^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); menu_destroy(iMenu); ListaSkinow(id); } else { PokazWiadomosc(id, "Brakuje Ci szlugow na tego skina!"); menu_display(id, iMenu); } } else { PokazWiadomosc(id, "Nie masz dostepu do tego skina!"); PokazWiadomosc(id, "Aby go zdobyc, uzyj komendy^x03 /sklepsms"); menu_display(id, iMenu); } } return PLUGIN_CONTINUE; } public fw_DostalNoz_Post(iEnt, id) { if(!pev_valid(iEnt) || !is_user_alive(id)) { return HAM_IGNORED; } if(cs_get_weapon_id(iEnt) == CSW_KNIFE) { set_task(0.1, "task_DostalNoz", id); } return HAM_IGNORED; } public task_DostalNoz(id) { if(!is_user_alive(id)) { return PLUGIN_CONTINUE; } if(get_user_weapon(id) == CSW_KNIFE) { new iIdSkina = g_iSkinGracza[id][NOZ]; if(iIdSkina) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]); if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]); } } } return PLUGIN_CONTINUE; } public fw_WybralNoz_Post(iEnt) { if(!pev_valid(iEnt)) { return HAM_IGNORED; } new id = pev(iEnt, pev_owner); if(!is_user_alive(id)) { return HAM_IGNORED; } new iIdSkina = g_iSkinGracza[id][NOZ]; if(iIdSkina) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]); if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]); } } return HAM_IGNORED; } public fw_Odrodzenie_Post(id) { if(!is_user_alive(id)) { return HAM_IGNORED; } new iTeam = get_user_team(id); if(!(1 <= iTeam <= 2)) { return HAM_IGNORED; } new iIdSkina = g_iSkinGracza[id][iTeam]; cs_set_player_model(id, g_szSciezkaSkina[iTeam][iIdSkina]); return HAM_IGNORED; } public fw_EmitSound(id, channel, sample[]) { if(!is_user_alive(id)) return FMRES_IGNORED; if(equal(sample, "weapons/knife_", 14)) { new iSkin = g_iSkinGracza[id][NOZ]; if(g_iRodzajNoza[iSkin]) { switch(sample[17]) { case ('b'): emit_sound(id, CHAN_WEAPON, "weapons/prawy_przycisk.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); case ('w'): emit_sound(id, CHAN_WEAPON, "weapons/uderzenie_mur.wav", 1.0, ATTN_NORM, 0, PITCH_LOW); case ('s'): emit_sound(id, CHAN_WEAPON, "weapons/machanie.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); case ('1'): emit_sound(id, CHAN_WEAPON, "weapons/hit1.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM); case ('2'): emit_sound(id, CHAN_WEAPON, "weapons/hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM); } return FMRES_SUPERCEDE; } } if(equal(sample, "common/wpn_denyselect.wav")) return FMRES_SUPERCEDE; return FMRES_IGNORED; } UstawSkina(id, iRodzaj, iIdSkina) { new szNick[32], szKluczVault[128], szIdSkina[4]; g_iSkinGracza[id][iRodzaj] = iIdSkina; get_user_name(id, szNick, 31); formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, iRodzaj); num_to_str(iIdSkina, szIdSkina, 3); nvault_set(g_iVault, szKluczVault, szIdSkina); if(iRodzaj == NOZ && get_user_weapon(id) == CSW_KNIFE/* && get_user_team(id) == 1*/) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]); if(g_szSciezkaSkina2[iRodzaj][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[iRodzaj][iIdSkina]); } } PokazWiadomosc(id, "Jako skin %s ustawiono^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); } PodgladSkinaMotd(id, iRodzaj, iIdSkina) { new szSciezka[256], szMOTD[512]; static szFD[128]; if(!szFD[0]) { get_cvar_string("sv_downloadurl", szFD, 127); } if(iRodzaj == NOZ) { copy(szSciezka, 255, g_szSciezkaSkina[NOZ][iIdSkina]); replace(szSciezka, 255, ".mdl", ".png"); } else { formatex(szSciezka, 255, "models/player/%s/%s.png", g_szSciezkaSkina[iRodzaj][iIdSkina], g_szSciezkaSkina[iRodzaj][iIdSkina]); } formatex(szMOTD, 511, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s/%s^">", szFD, szSciezka); show_motd(id, szMOTD, "Podglad skina"); } public task_WczytajSkinyGracza(id) { new szNick[32], szKluczVault[128], iIdSkina; get_user_name(id, szNick, 31); for(new i = 0; i < 3; i++) { formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, i); iIdSkina = g_iSkinGracza[id][i] = nvault_get(g_iVault, szKluczVault); if(g_iRodzajWymogowSkina[i][iIdSkina] == FLAGI && !(get_user_flags(id) & g_iWymogiSkina[i][iIdSkina])) { g_iSkinGracza[id][i] = 0; nvault_remove(g_iVault, szKluczVault); } } } WczytajSkiny() { //sprawdz caly public new iPlik = fopen("addons/amxmodx/configs/skiny.ini", "r"); if(!iPlik) { return 0; } //DODAJ TO W CVARACH MOZE EJJ copy(g_szNazwaSkina[NOZ][0], 31, "Domyslny"); copy(g_szNazwaSkina[TT][0], 31, "Domyslny"); copy(g_szNazwaSkina[CT][0], 31, "Domyslny"); copy(g_szSciezkaSkina[NOZ][0], 255, "models/v_bknuckles.mdl"); copy(g_szSciezkaSkina2[NOZ][0], 255, "models/p_bknuckles.mdl"); copy(g_szSciezkaSkina[TT][0], 255, "wiezien_cypis"); copy(g_szSciezkaSkina[CT][0], 255, "klawisz_cypis"); g_iRodzajNoza[0] = 1; precache_model("models/v_bknuckles.mdl"); precache_model("models/p_bknuckles.mdl"); precache_model("models/player/wiezien_cypis/wiezien_cypis.mdl"); precache_model("models/player/klawisz_cypis/klawisz_cypis.mdl"); while(!feof(iPlik)) { // "nazwa" "rodzaj" "cena" "sciezka1" "sciezka2" new szLinia[512], szNazwa[32], szRodzaj[4], szRodzajNoza[4], szWymogi[8], szSciezka[2][256], iRodzaj, iIdSkina; fgets(iPlik, szLinia, 511); trim(szLinia); if(szLinia[0] == ';' || !szLinia[0]) continue; parse(szLinia, szNazwa, 31, szRodzaj, 3, szWymogi, 7, szSciezka[0], 255, szSciezka[1], 255, szRodzajNoza, 3); iRodzaj = str_to_num(szRodzaj); if(g_iIloscSkinow[iRodzaj] >= MAX_ILOSC_SKINOW) { server_print("[JAIL:SKINY] Za duzo skinow rodzaju %d. Pominieto wczytanie skina %s", iRodzaj, szNazwa); continue; } iIdSkina = ++g_iIloscSkinow[iRodzaj]; precache_model(szSciezka[0]); if(szSciezka[1][0]) { precache_model(szSciezka[1]); } if(iRodzaj != NOZ) { copy(szSciezka[0], 255, szSciezka[0][14]); copy(szSciezka[0], 255, szSciezka[0][contain(szSciezka[0], "/")+1]); copy(szSciezka[0][strlen(szSciezka[0])-4], 251, ""); } else { if(szSciezka[1][0]) { copy(g_szSciezkaSkina2[iRodzaj][iIdSkina], 255, szSciezka[1]); } g_iRodzajNoza[iIdSkina] = str_to_num(szRodzajNoza); } copy(g_szNazwaSkina[iRodzaj][iIdSkina], 31, szNazwa); copy(g_szSciezkaSkina[iRodzaj][iIdSkina], 255, szSciezka[0]); if(isdigit(szWymogi[0])) { g_iWymogiSkina[iRodzaj][iIdSkina] = str_to_num(szWymogi); g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = SZLUGI; } else { g_iWymogiSkina[iRodzaj][iIdSkina] = read_flags(szWymogi); g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = FLAGI; } } for(new i = 0; i < 3; i++) { server_print("[JAIL:SKINY] Wczytano %d skinow %s", g_iIloscSkinow[i], NAZWA_RODZAJU(i)); } return 1; } PokazWiadomosc(id, szText[], any:...) { new szOutPut[256]; vformat(szOutPut, 255, szText, 3); ColorChat(id, GREEN, "[JB:SKINY]^x01 %s", szOutPut); return 1; }
Bearbeitung
Datei öffnen
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <hamsandwich> #include <fakemeta> #include <cstrike> #include <nvault> #include <colorchat> native cs_set_player_model(id, model[]); native get_user_jbpack(id); native set_user_jbpack(id, ile); #define MAX_ILOSC_SKINOW 8 enum { NOZ = 0, TT, CT }; enum { SZLUGI = 0, FLAGI }; #define NAZWA_RODZAJU(%1) (%1==0)?"noza":((%1==1)?"wieznia":"klawisza") new g_szNazwaSkina[3][MAX_ILOSC_SKINOW+1][32]; new g_szSciezkaSkina[3][MAX_ILOSC_SKINOW+1][256]; new g_szSciezkaSkina2[3][MAX_ILOSC_SKINOW+1][256]; new g_iRodzajWymogowSkina[3][MAX_ILOSC_SKINOW+1]; new g_iWymogiSkina[3][MAX_ILOSC_SKINOW+1]; new g_iRodzajNoza[MAX_ILOSC_SKINOW+1]; new g_iIloscSkinow[3]; new g_iVault; new g_iSkinGracza[33][3]; new g_iWyborRodzajuGracza[33]; public plugin_init() { register_plugin("Jail: Skiny", "1.0", "d0naciak.pl"); register_clcmd("say /skiny", "cmd_Skiny"); register_clcmd("say /modele", "cmd_Skiny"); RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_WybralNoz_Post", 1); RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_DostalNoz_Post", 1); RegisterHam(Ham_Spawn, "player", "fw_Odrodzenie_Post", 1); register_forward(FM_EmitSound, "fw_EmitSound"); g_iVault = nvault_open("SkinyJailBreak"); } public plugin_natives() { register_native("jail_show_skins_menu", "cmd_Skiny", 1); } public plugin_precache() { WczytajSkiny(); precache_sound("weapons/prawy_przycisk.wav"); precache_sound("weapons/uderzenie_mur.wav"); precache_sound("weapons/hit1.wav"); precache_sound("weapons/hit2.wav"); precache_sound("weapons/machanie.wav"); } public plugin_end() { nvault_close(g_iVault); } public client_authorized(id) { set_task(2.0, "task_WczytajSkinyGracza", id); } public client_disconnect(id) { remove_task(id); } public cmd_Skiny(id) { new iMenu = menu_create("Menu skinow, wybierz rodzaj: ", "Skiny_Handler"); menu_additem(iMenu, "Skiny noza"); menu_additem(iMenu, "Skiny wieznia"); menu_additem(iMenu, "Skiny klawisza"); menu_setprop(iMenu, MPROP_EXITNAME, "Wyjscie"); menu_display(id, iMenu); return PLUGIN_HANDLED; } public Skiny_Handler(id, iMenu, iItem) { if(iItem == MENU_EXIT) { menu_destroy(iMenu); return PLUGIN_CONTINUE; } g_iWyborRodzajuGracza[id] = iItem; ListaSkinow(id); menu_destroy(iMenu); return PLUGIN_CONTINUE; } public ListaSkinow(id) { new iRodzaj = g_iWyborRodzajuGracza[id]; if(!g_iIloscSkinow[iRodzaj]) { PokazWiadomosc(id, "Nie znaleziono skinow dla %s.", NAZWA_RODZAJU(iRodzaj)); return; } new szItem[128], szKluczVault[128], szNick[32], iMenu; formatex(szItem, 127, "Lista skinow \w%s^nKliknij, aby poznac szczegoly", NAZWA_RODZAJU(iRodzaj)); iMenu = menu_create(szItem, "ListaSkinow_Handler"); get_user_name(id, szNick, 31); for(new i = 1; i <= g_iIloscSkinow[iRodzaj]; i++) { formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, i); if(nvault_get(g_iVault, szKluczVault) || (g_iRodzajWymogowSkina[iRodzaj][i] == FLAGI && get_user_flags(id) & g_iWymogiSkina[iRodzaj][i])) { formatex(szItem, 127, "\y%s", g_szNazwaSkina[iRodzaj][i]); menu_additem(iMenu, szItem, "1"); } else { formatex(szItem, 127, "%s", g_szNazwaSkina[iRodzaj][i]); menu_additem(iMenu, szItem, "0"); } } menu_setprop(iMenu, MPROP_EXITNAME, "\yDomyslny"); menu_setprop(iMenu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(iMenu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, iMenu); //dodaj pod exit skiny 'domyslny' (czy na pewno?) } public ListaSkinow_Handler(id, iMenu, iItem) { new iRodzaj = g_iWyborRodzajuGracza[id]; if(iItem < 0) { if(iItem == MENU_EXIT) { UstawSkina(id, iRodzaj, 0); //dodaj pod 0 domyslne skiny cmd_Skiny(id); menu_destroy(iMenu); } return PLUGIN_CONTINUE; } new iAccess, iCb, szMaDostep[4], iIdSkina = iItem + 1; menu_item_getinfo(iMenu, iItem, iAccess, szMaDostep, 3, _, _, iCb); menu_destroy(iMenu); if(str_to_num(szMaDostep) == 1) { UstawSkina(id, iRodzaj, iIdSkina); cmd_Skiny(id); } else { new szItem[128], szIdSkina[4]; formatex(szItem, 127, "Info o skinie %s: \w%s", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); new iNoweMenu = menu_create(szItem, "Skin_Handler"); num_to_str(iIdSkina, szIdSkina, 3); menu_additem(iNoweMenu, "Podglad skina", szIdSkina); if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) { formatex(szItem, 127, "Kup za \y%d szlug(i/ow)", g_iWymogiSkina[iRodzaj][iIdSkina]); } else { copy(szItem, 127, "Kup skina"); } menu_additem(iNoweMenu, szItem, szIdSkina); menu_setprop(iNoweMenu, MPROP_EXITNAME, "Powrot"); menu_display(id, iNoweMenu); } //cmd_Skiny(id); //menu_destroy(iMenu); return PLUGIN_CONTINUE; } public Skin_Handler(id, iMenu, iItem) { if(iItem < 0) { if(iItem == MENU_EXIT) { ListaSkinow(id); menu_destroy(iMenu); } return PLUGIN_CONTINUE; } new iAccess, iCb, szIdSkina[4],iRodzaj = g_iWyborRodzajuGracza[id], iIdSkina; menu_item_getinfo(iMenu, iItem, iAccess, szIdSkina, 3, _, _, iCb); iIdSkina = str_to_num(szIdSkina); if(!iItem) { PodgladSkinaMotd(id, iRodzaj, iIdSkina); menu_display(id, iMenu); } else { if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) { new iCena = g_iWymogiSkina[iRodzaj][iIdSkina], iIloscSzlugow = get_user_jbpack(id); if(iIloscSzlugow >= iCena) { new szNick[32], szKluczVault[128]; get_user_name(id, szNick, 31); formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, iIdSkina); nvault_set(g_iVault, szKluczVault, "1"); set_user_jbpack(id, iIloscSzlugow - iCena); PokazWiadomosc(id, "Kupiles skina %s^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); menu_destroy(iMenu); ListaSkinow(id); } else { PokazWiadomosc(id, "Brakuje Ci szlugow na tego skina!"); menu_display(id, iMenu); } } else { PokazWiadomosc(id, "Nie masz dostepu do tego skina!"); PokazWiadomosc(id, "Aby go zdobyc, uzyj komendy^x03 /sklepsms"); menu_display(id, iMenu); } } return PLUGIN_CONTINUE; } public fw_DostalNoz_Post(iEnt, id) { if(!pev_valid(iEnt) || !is_user_alive(id)) { return HAM_IGNORED; } if(cs_get_weapon_id(iEnt) == CSW_KNIFE) { set_task(0.1, "task_DostalNoz", id); } return HAM_IGNORED; } public task_DostalNoz(id) { if(!is_user_alive(id)) { return PLUGIN_CONTINUE; } if(get_user_weapon(id) == CSW_KNIFE) { new iIdSkina = g_iSkinGracza[id][NOZ]; if(iIdSkina) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]); if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]); } } } return PLUGIN_CONTINUE; } public fw_WybralNoz_Post(iEnt) { if(!pev_valid(iEnt)) { return HAM_IGNORED; } new id = pev(iEnt, pev_owner); if(!is_user_alive(id)) { return HAM_IGNORED; } new iIdSkina = g_iSkinGracza[id][NOZ]; if(iIdSkina) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]); if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]); } } return HAM_IGNORED; } public fw_Odrodzenie_Post(id) { if(!is_user_alive(id)) { return HAM_IGNORED; } new iTeam = get_user_team(id); if(!(1 <= iTeam <= 2)) { return HAM_IGNORED; } new iIdSkina = g_iSkinGracza[id][iTeam]; cs_set_player_model(id, g_szSciezkaSkina[iTeam][iIdSkina]); if(iIdSkina) { server_print("MA SKINA %s", g_szSciezkaSkina[iTeam][iIdSkina]); } return HAM_IGNORED; } public fw_EmitSound(id, channel, sample[]) { if(!is_user_alive(id)) return FMRES_IGNORED; if(equal(sample, "weapons/knife_", 14)) { new iSkin = g_iSkinGracza[id][NOZ]; if(g_iRodzajNoza[iSkin]) { switch(sample[17]) { case ('b'): emit_sound(id, CHAN_WEAPON, "weapons/prawy_przycisk.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); case ('w'): emit_sound(id, CHAN_WEAPON, "weapons/uderzenie_mur.wav", 1.0, ATTN_NORM, 0, PITCH_LOW); case ('s'): emit_sound(id, CHAN_WEAPON, "weapons/machanie.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); case ('1'): emit_sound(id, CHAN_WEAPON, "weapons/hit1.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM); case ('2'): emit_sound(id, CHAN_WEAPON, "weapons/hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM); } return FMRES_SUPERCEDE; } } if(equal(sample, "common/wpn_denyselect.wav")) return FMRES_SUPERCEDE; return FMRES_IGNORED; } UstawSkina(id, iRodzaj, iIdSkina) { new szNick[32], szKluczVault[128], szIdSkina[4]; g_iSkinGracza[id][iRodzaj] = iIdSkina; get_user_name(id, szNick, 31); formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, iRodzaj); num_to_str(iIdSkina, szIdSkina, 3); nvault_set(g_iVault, szKluczVault, szIdSkina); if(iRodzaj == NOZ && get_user_weapon(id) == CSW_KNIFE/* && get_user_team(id) == 1*/) { set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]); if(g_szSciezkaSkina2[iRodzaj][iIdSkina][0]) { set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[iRodzaj][iIdSkina]); } } PokazWiadomosc(id, "Jako skin %s ustawiono^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]); } PodgladSkinaMotd(id, iRodzaj, iIdSkina) { new szSciezka[256], szMOTD[512]; static szFD[128]; if(!szFD[0]) { get_cvar_string("sv_downloadurl", szFD, 127); } if(iRodzaj == NOZ) { copy(szSciezka, 255, g_szSciezkaSkina[NOZ][iIdSkina]); replace(szSciezka, 255, ".mdl", ".png"); } else { formatex(szSciezka, 255, "models/player/%s/%s.png", g_szSciezkaSkina[iRodzaj][iIdSkina], g_szSciezkaSkina[iRodzaj][iIdSkina]); } formatex(szMOTD, 511, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s/%s^">", szFD, szSciezka); show_motd(id, szMOTD, "Podglad skina"); } public task_WczytajSkinyGracza(id) { new szNick[32], szKluczVault[128], iIdSkina; get_user_name(id, szNick, 31); for(new i = 0; i < 3; i++) { formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, i); iIdSkina = g_iSkinGracza[id][i] = nvault_get(g_iVault, szKluczVault); if(g_iRodzajWymogowSkina[i][iIdSkina] == FLAGI && !(get_user_flags(id) & g_iWymogiSkina[i][iIdSkina])) { g_iSkinGracza[id][i] = 0; nvault_remove(g_iVault, szKluczVault); } } } WczytajSkiny() { //sprawdz caly public new iPlik = fopen("addons/amxmodx/configs/skiny.ini", "r"); if(!iPlik) { return 0; } //DODAJ TO W CVARACH MOZE EJJ copy(g_szNazwaSkina[NOZ][0], 31, "Domyslny"); copy(g_szNazwaSkina[TT][0], 31, "Domyslny"); copy(g_szNazwaSkina[CT][0], 31, "Domyslny"); copy(g_szSciezkaSkina[NOZ][0], 255, "models/v_bknuckles.mdl"); copy(g_szSciezkaSkina2[NOZ][0], 255, "models/p_bknuckles.mdl"); copy(g_szSciezkaSkina[TT][0], 255, "jbemodel"); copy(g_szSciezkaSkina[CT][0], 255, "straznik_d0naciak"); g_iRodzajNoza[0] = 1; precache_model("models/v_bknuckles.mdl"); precache_model("models/p_bknuckles.mdl"); precache_model("models/player/jbemodel/jbemodel.mdl"); precache_model("models/player/straznik_d0naciak/straznik_d0naciak.mdl"); while(!feof(iPlik)) { // "nazwa" "rodzaj" "cena" "sciezka1" "sciezka2" new szLinia[512], szNazwa[32], szRodzaj[4], szRodzajNoza[4], szWymogi[8], szSciezka[2][256], iRodzaj, iIdSkina; fgets(iPlik, szLinia, 511); trim(szLinia); if(szLinia[0] == ';' || !szLinia[0]) continue; parse(szLinia, szNazwa, 31, szRodzaj, 3, szWymogi, 7, szSciezka[0], 255, szSciezka[1], 255, szRodzajNoza, 3); iRodzaj = str_to_num(szRodzaj); if(g_iIloscSkinow[iRodzaj] >= MAX_ILOSC_SKINOW) { server_print("[JAIL:SKINY] Za duzo skinow rodzaju %d. Pominieto wczytanie skina %s", iRodzaj, szNazwa); continue; } iIdSkina = ++g_iIloscSkinow[iRodzaj]; precache_model(szSciezka[0]); if(szSciezka[1][0]) { precache_model(szSciezka[1]); } if(iRodzaj != NOZ) { copy(szSciezka[0], 255, szSciezka[0][14]); copy(szSciezka[0], 255, szSciezka[0][contain(szSciezka[0], "/")+1]); copy(szSciezka[0][strlen(szSciezka[0])-4], 251, ""); } else { if(szSciezka[1][0]) { copy(g_szSciezkaSkina2[iRodzaj][iIdSkina], 255, szSciezka[1]); } g_iRodzajNoza[iIdSkina] = str_to_num(szRodzajNoza); } copy(g_szNazwaSkina[iRodzaj][iIdSkina], 31, szNazwa); copy(g_szSciezkaSkina[iRodzaj][iIdSkina], 255, szSciezka[0]); if(isdigit(szWymogi[0])) { g_iWymogiSkina[iRodzaj][iIdSkina] = str_to_num(szWymogi); g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = SZLUGI; } else { g_iWymogiSkina[iRodzaj][iIdSkina] = read_flags(szWymogi); g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = FLAGI; } } for(new i = 0; i < 3; i++) { server_print("[JAIL:SKINY] Wczytano %d skinow %s", g_iIloscSkinow[i], NAZWA_RODZAJU(i)); } return 1; } PokazWiadomosc(id, szText[], any:...) { new szOutPut[256]; vformat(szOutPut, 255, szText, 3); ColorChat(id, GREEN, "[JB:SKINY]^x01 %s", szOutPut); return 1; }
Unterschied finden