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

[ROZWIĄZANE] Możliwość kupna rzeczy w sklepiku tylko raz na mapę


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Fajled

    Wszechwidzący

  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:279
  • GG:
  • Imię:Damian
  • Lokalizacja:Wrocław
Offline

Napisano 13.09.2012 17:41

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 :))

#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 :)
  • +
  • -
  • 0

#2 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 13.09.2012 18:07


#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ć
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#3 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 13.09.2012 18:15

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 ;)

#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);
                        }
                }
        }
}

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#4 Fajled

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:279
  • GG:
  • Imię:Damian
  • Lokalizacja:Wrocław
Offline

Napisano 13.09.2012 18:19

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

  • +
  • -
  • 0

#5 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 13.09.2012 18:52


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...
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#6 Fajled

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:279
  • GG:
  • Imię:Damian
  • Lokalizacja:Wrocław
Offline

Napisano 13.09.2012 19:18

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.
  • +
  • -
  • 0

#7 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 13.09.2012 21:05


#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 :D, a w switch'u dodajesz według zworu, powinno działać :P
  • +
  • -
  • 1

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#8 Fajled

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:279
  • GG:
  • Imię:Damian
  • Lokalizacja:Wrocław
Offline

Napisano 14.09.2012 06:00

Dobra, oto mi chodziło, sprawdzę kod później :)
  • +
  • -
  • 0

#9 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.10.2012 17:44

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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