Właśnie ogarniałem to i teraz musi działać ![]()
/* Plugin generated by AMXX-Studio */
#include amxmodx
#include codmod
#include nvault
#include fun
#include dhudmessage
#include fakemeta
#include hamsandwich
#define PLUGIN "Prestiz System"
#define VERSION "1.0"
#define AUTHOR "Edit by KreC!K"
#define POKAZ_PRESTIZ 5354
native cod_get_user_coins(id);
native cod_set_user_coins(id, wartosc);
#define KOSZT 500 //Ile ma kosztowac klasa ? (Domyslnie: 50 monet)
new prestiz[33];
new SyncHudObj;
new nick[33][64];
new bool:blokada;
new vault;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("ResetHUD", "ResetHUD", "abe");
register_event("DeathMsg", "DeathMsg", "a");
RegisterHam(Ham_Spawn, "player", "sprawdzaj", 1);
RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
register_event("HLTV", "BlokadaStart", "a", "1=0", "2=0");
register_clcmd("say /prestize", "Opis");
register_clcmd("say /prestiz", "zapytaj");
SyncHudObj = CreateHudSyncObj();
vault = nvault_open("Prestize");
set_task(120.0, "taskAnnouncement", 2562345, "", 0, "b");
}
public client_connect(id)
{
get_user_name(id, nick[id], 63);
Wczytaj(id);
}
public client_disconnect(id)
{
Zapisz(id);
}
public BlokadaStart()
{
blokada = true;
set_task(30.0,"Odblokuj");
}
public Odblokuj()
blokada = false;
public Zapisz(id)
{
new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-PLAYER", nick[id]);
format(vaultdata, 255, "%i", prestiz[id]);
nvault_set(vault, vaultkey, vaultdata);
return 0;
}
public Wczytaj(id)
{
new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-PLAYER", nick[id]);
format(vaultdata, 255, "%i", prestiz[id]);
nvault_get(vault, vaultkey, vaultdata, 255);
replace_all(vaultdata, 255, "#", " ");
new reb[32];
parse(vaultdata, reb, 31);
prestiz[id] =str_to_num(reb);
return 0;
}
public zapytaj(id)
{
if(blokada)
return PLUGIN_CONTINUE;
new menu = menu_create("\wChcesz wejsc w prestiz?", "Menu_handler");
menu_additem(menu, "\yTak, chce! \w(Otrzymasz dodatkowe bonusy, zabierzemy za nie 500 Monet)");
menu_additem(menu, "\yNie, dzięki");
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public Menu_handler(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
if(cod_get_user_coins(id) < KOSZT)
{
client_print(id, print_center, "Nie masz 500 Monet!")
return PLUGIN_CONTINUE;
}
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
switch(item)
{
case 0:
{
na pewno(id);
}
case 1:
{
client_print(id, print_center, "Nie, to nie.");
}
}
return PLUGIN_CONTINUE;
}
public na pewno(id)
{
new menu = menu_create("\rCzy na pewno chcesz dac az 500 Monet?", "napewno_handler");
menu_additem(menu, "\yTak, bierz je i daj dodatkowe bonusy");
menu_additem(menu, "\yAlbo nie - czekaj, jednak nie, zostaje przy swoich monetach");
menu_display(id, menu);
}
public napewno_handler(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
switch(item)
{
case 0:
{
cod_set_user_coins(id, cod_get_user_coins(id)-KOSZT);
prestiz[id]++;
Zapisz(id);
set_dhudmessage(0, 255, 0, -1.0, 0.0, 2, 3.0, 5.0);
show_dhudmessage(0, "%s Awansowal na %i Poziom Prestizu", nick[id], prestiz[id])
}
case 1:
{
client_print(id, print_center, "Nie, to nie.");
}
}
return PLUGIN_CONTINUE;
}
public PokazPrestiz(id)
{
id -= POKAZ_PRESTIZ;
if(!is_user_alive(id))
{
remove_task(id+POKAZ_PRESTIZ);
return;
}
set_hudmessage(0, 255, 0, 1.0, 0.1, 2, 5.0, 10.0, 0.2, 0.2, -1);
ShowSyncHudMsg(id, SyncHudObj, "[Prestiz: %i]", prestiz[id]);
}
public ResetHUD(id)
{
if(!task_exists(id+POKAZ_PRESTIZ))
set_task(0.1, "PokazPrestiz", id+POKAZ_PRESTIZ, _, _, "b");
}
public sprawdzaj(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
if(prestiz[id] >= 4)
set_user_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 90);
return PLUGIN_CONTINUE
}
public DeathMsg(){
new killer=read_data(1);
new victim=read_data(2);
if(is_user_alive(killer) && prestiz[killer] >= 1 && get_user_team(killer) != get_user_team(victim)){
cod_set_user_xp(killer, cod_get_user_xp(killer)+15);
}
}
public SpawnedEventPre(id){
if(prestiz[id]>=2){
if(is_user_alive(id)){
SpawnedEventPreVip(id);
}
}
}
public SpawnedEventPreVip(id){
set_user_health(id, get_user_health(id) +35)
}
public TakeDamage(this, inflictor, attacker, Float:damage)
{
if(is_user_alive(this) && prestiz[this] >= 3)
{
damage *= 0.9;
SetHamParamFloat(4, damage);
}
if(is_user_alive(attacker) && prestiz[attacker] >= 5)
{
damage *= 1.2;
SetHamParamFloat(4, damage);
}
}
public Opis(id)
show_menu(id, 1023, "\wSystem Prestizu ^n^n\rPrestiz 1: \y+15 EXP'a za fraga.^n\rPrestiz 2: \y+35 startowego HP.^n\rPrestiz 3: \yRedukcja obrazen o 10%.^n\rPrestiz 4: \yRedukcja widocznosci [90/255]^n\rPrestiz 5: \yWieksze obrazenia o 20%^n", -1, "Opis");
public taskAnnouncement()
{
client_print(0, print_chat, "Wpisz w say /prestize aby dowiedziec sie wiecej");
}
cod_set_user_xp(id, 0);
On resetuje do 1 lvl'a przy każdym prestiżu
Poprawiłem na:
cod_set_user_coins(id, cod_get_user_coins(id)-KOSZT);
i czytając z natywu i z #define ile ma zabrać także nie powinno już być problemu ![]()


Dodatki SourceMod




Moja zawartość
Mężczyzna

