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
Silnik

Prestiż za monety

silnik

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

#1 XXL

    Wszechmogący

  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 22.12.2014 12:36

Witam mógłby ktoś zmodyfikować prestiż zamiast od danego LV to  za X monet?

Załączone pliki


Użytkownik XXL edytował ten post 22.12.2014 12:36

  • +
  • -
  • 0

#2 Dragon1020

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:50
  • Lokalizacja:Polska
Offline

Napisano 18.01.2015 04:14

Proszę bardzo. Nie testowałem (ale sprawdzę również):

 

/* 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 "Brak"


#define POKAZ_PRESTIZ 5354


native cod_get_user_coins(id);


native cod_set_user_coins(id, wartosc);


#define KOSZT 50 //Ile ma kosztowac prestiż ? (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 w zamian za to zabierzemy tobie 50 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 50 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 zaplacic 50 Monet ?", "napewno_handler");
menu_additem(menu, "\yTak, zaplace 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_xp(id, 0);
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");
}

Uprzedzę pytanie dotyczące tego co się zmieniło

 

Dodane natywy pod biblioteką

 

native cod_get_user_coins(id);


native cod_set_user_coins(id, wartosc);


#define KOSZT 50 //Ile ma kosztowac prestiż ? (Domyslnie: 50 monet) // Tutaj możesz sobie zmienić ile ma zabrać monet za prestiż

Oraz zmieniłem to:

if(cod_get_user_level(id) < 100)

na to:

if(cod_get_user_coins(id) < KOSZT)

+ poprawki w opisie tam gdzie była mowa o lvl'ach to zmieniłem na MONETY

 

Wiadomo jeśli zmienisz koszt monet to też w opisach musisz te ilości poprawić na jakie tam chcesz :)

 

Daj znać czy działa tobie poprawnie

 


  • +
  • -
  • 1

#3 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 18.01.2015 11:22

Dziękuje mistrzu ale w tej chwili nie mam jak tego sprawdzić, ale + za chęci łap :)


  • +
  • -
  • 0

#4 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 18.01.2015 16:59

@Edit nie da się skompliować :(


  • +
  • -
  • 0

#5 Alelluja

    Miszcz jotbe

  • Power User

Reputacja: 491
Wszechobecny

  • Postów:981
  • GG:
Offline

Napisano 18.01.2015 17:33

Proszę

Załączone pliki


  • +
  • -
  • 0

Moje Pluginy | Paczki:
------> http://amxx.pl/topic...od/#entry687942 <------ 500 Postów 27.05.2015
------> http://amxx.pl/topic...monety-lombard/<------
------> http://amxx.pl/topic...-na-ammo-packi/<------


#6 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 18.01.2015 19:06

Nie działa, ustawiłem że za 50 monet zdobędę nawet 1000 monet i dalej pisze że mam za mało monet :P


  • +
  • -
  • 0

#7 Dragon1020

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:50
  • Lokalizacja:Polska
Offline

Napisano 19.01.2015 01:56

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");
}
Tylko opisy poprawione wg mojego uznania i koszty monet też więc tam tylko poprawiasz, że zamiast 500 jest np. 100. Tamto nie działa, bo przeoczyłem ten wycinek:
 
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 :)

 

  • +
  • -
  • 1

#8 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 21.02.2015 15:30

Dalej to samo.. mam nawet 5000 monet i dalej pisze że mam za mało a jest ustawione na 50


  • +
  • -
  • 0





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

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

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