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] Pytanie - "stopowanie" funkcji


Najlepsza odpowiedź MAGNET, 01.09.2013 00:43

Po 1. nie ma modułów xD

Po 2. :

if(get_user_health(id)){

Skąd plugin ma wiedzieć, kiedy pobiera, to jest nie potrzebne

Po 3. składnia jest niepoprawna

Aby zrobić limit dodaję zmienną, którą nazwałem ilosc_uzyc

Następnie w publicu leczenie wkleilem ilosc_uzyc = 5 i przy kazdym wywolaniu komendy odejmuję 1 od tej zmiennej

Kiedy już ilosc_uzyc będzie równa 0 wywołuję PLUGIN_HANDLED i client_printa

I na końcu wywołuję funkcję ResetHUD, żeby w nowej rundzie móc znowu się regenerować

Całość wygląda tak:

/* Plugin generated by AMXX-Studio */

 
#include <amxmodx>
#include <amxmisc>
#include <fun>
 
#define PLUGIN "Test"
#define VERSION "1.0"
#define AUTHOR "n0pe."
 
new ilosc_uzyc[33];
 
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
 
register_clcmd("say /ulecz","leczenie")
register_event("ResetHUD", "ResetHUD", "abe");
}
public leczenie(id)
{
ilosc_uzyc[id] = 5;
if (!ilosc_uzyc[id])
client_print(id, print_center, "Wykorzystales juz limit uzdrowien")
return PLUGIN_HANDLED;
 
if(get_user_flags(id) & ADMIN_MENU)
{
set_user_health(id, get_user_health(id) + 20)
ilosc_uzyc[id]--
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Zregenerowales Sobie 20 HP");
}
else
{
set_user_health(id, get_user_health(id) + 20)
ilosc_uzyc[id]--
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Zregenerowales Sobie 10 HP");
}
return PLUGIN_CONTINUE;
}
public ResetHUD(id)
ilosc_uzyc[id] = 5;
Przejdź do postu


2 odpowiedzi w tym temacie

#1 Koxownik

    Pomocny

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:46
  • Imię:Arek
  • Lokalizacja:Chorzów
Offline

Napisano 31.08.2013 20:33

Witam, Jako iż jestem zielony i uczę się kodowania w języku PAWN piszę "mini" plug-inki aby sprawdzić jak działają co po niektóre funkcje. Pytanie na dziś.
/* Plugin generated by AMXX-Studio */

#include 
#include 
#include 

#define PLUGIN "Test"
#define VERSION "1.0"
#define AUTHOR "n0pe."


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /ulecz","leczenie")
}
public leczenie(id){
	set_user_health(id, get_user_health(id)+10);
	if(get_user_health(id)){
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Zregenerowales Sobie 10 HP");
	}
	if(get_user_flags(id) & ADMIN_MENU){
		set_user_health(id, get_user_health(id)+20);
		set_hudmessage(0, 255, 0, -1.0, -1.0)
		show_hudmessage(id, "Zregenerowales Sobie 20 HP");
	}
}
W aktualnym "ustawieniu" można regenerować HP co moment. Moje pytanie brzmi, jak mam to zakończyć. Chodzi o to że możesz użyć "x" razy tej komendy, po użyciu "x" razy tej komendy będzie ona po prostu nie dostępna. Mam nadzieję, że otrzymam spodziewaną pomoc od doświadczonych kolegów. Pozdrawiam.
  • +
  • -
  • 0

#2 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 01.09.2013 00:43   Najlepsza odpowiedź

Po 1. nie ma modułów xD

Po 2. :

if(get_user_health(id)){

Skąd plugin ma wiedzieć, kiedy pobiera, to jest nie potrzebne

Po 3. składnia jest niepoprawna

Aby zrobić limit dodaję zmienną, którą nazwałem ilosc_uzyc

Następnie w publicu leczenie wkleilem ilosc_uzyc = 5 i przy kazdym wywolaniu komendy odejmuję 1 od tej zmiennej

Kiedy już ilosc_uzyc będzie równa 0 wywołuję PLUGIN_HANDLED i client_printa

I na końcu wywołuję funkcję ResetHUD, żeby w nowej rundzie móc znowu się regenerować

Całość wygląda tak:

/* Plugin generated by AMXX-Studio */

 
#include <amxmodx>
#include <amxmisc>
#include <fun>
 
#define PLUGIN "Test"
#define VERSION "1.0"
#define AUTHOR "n0pe."
 
new ilosc_uzyc[33];
 
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
 
register_clcmd("say /ulecz","leczenie")
register_event("ResetHUD", "ResetHUD", "abe");
}
public leczenie(id)
{
ilosc_uzyc[id] = 5;
if (!ilosc_uzyc[id])
client_print(id, print_center, "Wykorzystales juz limit uzdrowien")
return PLUGIN_HANDLED;
 
if(get_user_flags(id) & ADMIN_MENU)
{
set_user_health(id, get_user_health(id) + 20)
ilosc_uzyc[id]--
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Zregenerowales Sobie 20 HP");
}
else
{
set_user_health(id, get_user_health(id) + 20)
ilosc_uzyc[id]--
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Zregenerowales Sobie 10 HP");
}
return PLUGIN_CONTINUE;
}
public ResetHUD(id)
ilosc_uzyc[id] = 5;

Użytkownik MAGNET edytował ten post 01.09.2013 00:44

  • +
  • -
  • 1

#3 Koxownik

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:46
  • Imię:Arek
  • Lokalizacja:Chorzów
Offline

Napisano 01.09.2013 00:49

Moduły zjadło. :D A co do reszty, posłużę się tym. Uczę się i każdy taki komentarz bardzo mi pomaga ;) Dzięki za informację
  • +
  • -
  • 0




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

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

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg