[ROZWIĄZANE] Możliwość kupna rzeczy w skle...
Fajled
13.09.2012
Witam.
Mam pytanie - jak zrobić, aby możliwość kupna jakiejś rzeczy w sklepiku była tylko raz na mapę ?
Tutaj podaje szkielet przykładowego VIPa (skopiowałem z któregoś tematu od Nastyka
)
Proszę o wskazanie jak zrobić to co opisałem na górze
Mam pytanie - jak zrobić, aby możliwość kupna jakiejś rzeczy w sklepiku była tylko raz na mapę ?
Tutaj podaje szkielet przykładowego VIPa (skopiowałem z któregoś tematu od Nastyka

#include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #define plugin "Sklep VIP" #define autor "Na 5tyk" #define wersja "1.0" #define FLAGA ADMIN_LEVEL_H public plugin_init() { register_plugin(plugin, autor, wersja); register_clcmd("say /sklep", "Menu"); } public Menu(id) { if(get_user_flags(id) && FLAGA) { new menu = menu_create("Sklep VIPa", "Menu_Handle"); menu_additem(menu, "Mniejsza grawitacja [Koszt: 4000$]"); } else { client_print(id, print_chat, "Nie masz dostepu do menu"); } } public Menu_Handle(id, menu, item) { new kasa = cs_get_user_money(id) switch(item) { case 0: { if(kasa < 4000) { client_print(id, print_chat, "Nie masz wystarczajaco kasy!"); } else { cs_set_user_money(id, kasa - 4000); set_user_gravity(id, 0.85); } } } }
Proszę o wskazanie jak zrobić to co opisałem na górze

K!113r
13.09.2012
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define plugin "Sklep VIP"
#define autor "Na 5tyk"
#define wersja "1.0"
#define FLAGA ADMIN_LEVEL_H
new bool:sklep[33];
public plugin_init() {
register_plugin(plugin, autor, wersja);
register_clcmd("say /sklep", "Menu");
}
public client_disconnect(id)
sklep[id] = false
public Menu(id)
{
if((get_user_flags(id) & FLAGA) && !sklep[id])// poprawiłem tą flage, zamiast && powinno być &
{
new menu = menu_create("Sklep VIPa", "Menu_Handle");
menu_additem(menu, "Mniejsza grawitacja [Koszt: 4000$]");
menu_display(id, menu)
sklep[id] = true;
}
else
{
client_print(id, print_chat, "Nie masz dostepu do menu");
}
}
public Menu_Handle(id, menu, item)
{
new kasa = cs_get_user_money(id)
switch(item)
{
case 0:
{
if(kasa < 4000)
{
client_print(id, print_chat, "Nie masz wystarczajaco kasy!");
}
else
{
cs_set_user_money(id, kasa - 4000);
set_user_gravity(id, 0.85);
}
}
}
}
powinno działać
Droso
13.09.2012
Możesz to zrobić zmienna bool 33 elementową.
Przy connect'ie ustawiasz na false przy disconnectie tez.
I gdy ktos uzyje tej komendy to ustawia zmienna bool na true, i potem sprawdzasz if'em czy bool jest true jesli tak to return PLUGIN_HANDLED + kod powinien wyglądać tak [blokada dla gracza bez vipa], ale ma to wade, gracz zrobi reconnecta i moze to zrobic jeszcze raz. Mozesz to zrobic tez na ip [zapisujesz ip do tablicy i potem sprawdzasz], lub jakis zapis na mape, ale trzeba sie troszke pobawic
Przy connect'ie ustawiasz na false przy disconnectie tez.
I gdy ktos uzyje tej komendy to ustawia zmienna bool na true, i potem sprawdzasz if'em czy bool jest true jesli tak to return PLUGIN_HANDLED + kod powinien wyglądać tak [blokada dla gracza bez vipa], ale ma to wade, gracz zrobi reconnecta i moze to zrobic jeszcze raz. Mozesz to zrobic tez na ip [zapisujesz ip do tablicy i potem sprawdzasz], lub jakis zapis na mape, ale trzeba sie troszke pobawic

#include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #define plugin "Sklep VIP" #define autor "Na 5tyk" #define wersja "1.0" #define FLAGA ADMIN_LEVEL_H new bool:sklep[33]; public plugin_init() { register_plugin(plugin, autor, wersja); register_clcmd("say /sklep", "Menu"); } public client_disconnect(id) sklep[id] = false public Menu(id) { if((get_user_flags(id) & FLAGA) && !sklep[id])// poprawiłem tą flage, zamiast && powinno być & { new menu = menu_create("Sklep VIPa", "Menu_Handle"); menu_additem(menu, "Mniejsza grawitacja [Koszt: 4000$]"); menu_display(id, menu) sklep[id] = true; } else { client_print(id, print_chat, "Nie masz dostepu do menu"); return PLUGIN_HANDLED; } /* Przyklad */ if(xxxx[id]){ client_print(id, print_chat, "Raz na mape."); return PLUGIN_HANDLED } return PLUGIN_CONTINUE; } public Menu_Handle(id, menu, item) { new kasa = cs_get_user_money(id) switch(item) { case 0: { if(kasa < 4000) { client_print(id, print_chat, "Nie masz wystarczajaco kasy!"); } else { cs_set_user_money(id, kasa - 4000); set_user_gravity(id, 0.85); } } } }
Fajled
13.09.2012
Ale co ty tutaj zmieniłeś ? Dodałeś zmienną i zrobiłeś, że ona się "uruchamia" podczas włączania menu. Nie widzę nigdzie blokady kupna tej jednej rzeczy.
@Edit:
Pisałem do Killera, zaraz zobaczę kod Torrenta
Użytkownik Fajled edytował ten post 13.09.2012 18:20
@Edit:
Pisałem do Killera, zaraz zobaczę kod Torrenta

Użytkownik Fajled edytował ten post 13.09.2012 18:20
K!113r
13.09.2012
if((get_user_flags(id) & FLAGA) && !sklep[id])// poprawiłem tą flage, zamiast && powinno być &
Jeżeli element tablicy sklep dla danego gracza jest false to może użyć sklepu, jeżeli true to nie może...
Fajled
13.09.2012
Killer, ja nie miałem na myśli uniemożliwienia graczowi używania sklepu, tylko jednej konkretnej rzeczy ze sklepu - w tym wypadku tylko tej grawitacji.
K!113r
13.09.2012
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define plugin "Sklep VIP"
#define autor "Na 5tyk"
#define wersja "1.0"
#define FLAGA ADMIN_LEVEL_H
new bool: sklep[4][33];
public plugin_init() {
register_plugin(plugin, autor, wersja);
register_clcmd("say /sklep", "Menu");
}
public client_disconnect(id)
for(new i;i<(sizeof(sklep)+1);i++)
{
sklep[i][id] = false
}
public Menu(id)
{
if(get_user_flags(id) & FLAGA)
{
new menu = menu_create("Sklep VIPa", "Menu_Handle");
menu_additem(menu, "Mniejsza grawitacja [Koszt: 4000$]");
menu_additem(menu, "tak dla [Koszt: 4000$]");
menu_additem(menu, "przykladu [Koszt: 4000$]");
menu_additem(menu, "dodam [Koszt: 4000$]");
menu_display(id, menu);
}
else
{
client_print(id, print_chat, "Nie masz dostepu do menu");
}
}
public Menu_Handle(id, menu, item)
{
new kasa = cs_get_user_money(id)
switch(item)
{
case 0:
{
if(!sklep[item][id])
{
sklep[item][id] = true;
if(kasa < 4000)
{
client_print(id, print_chat, "Nie masz wystarczajaco kasy!");
}
else
{
cs_set_user_money(id, kasa - 4000);
set_user_gravity(id, 0.85);
}
}
else
client_print(id, print_chat, "Uzyles juz tego elementu sklepu.")
}
case 1:
{
if(!sklep[item][id])
{
sklep[item][id] = true;
if(kasa < 4000)
{
client_print(id, print_chat, "Nie masz wystarczajaco kasy!");
}
else
{
cs_set_user_money(id, kasa - 4000);
set_user_gravity(id, 0.85);
}
}
else
client_print(id, print_chat, "Uzyles juz tego elementu sklepu.")
}
case 2:
{
if(!sklep[item][id])
{
sklep[item][id] = true;
if(kasa < 4000)
{
client_print(id, print_chat, "Nie masz wystarczajaco kasy!");
}
else
{
cs_set_user_money(id, kasa - 4000);
set_user_gravity(id, 0.85);
}
}
else
client_print(id, print_chat, "Uzyles juz tego elementu sklepu.")
}
case 3:
{
if(!sklep[item][id])
{
sklep[item][id] = true;
if(kasa < 4000)
{
client_print(id, print_chat, "Nie masz wystarczajaco kasy!");
}
else
{
cs_set_user_money(id, kasa - 4000);
set_user_gravity(id, 0.85);
}
}
else
client_print(id, print_chat, "Uzyles juz tego elementu sklepu.")
}
}
}
w tablicy sklep, pierwszy wymiar to liczba elementów sklepu, czyli podajesz tam ile jest additemów


Gość_21977_* 16.10.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL