Jump to content


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

Posted Image Posted Image

Guest Message by DevFuse
 

[ROZWIĄZANE] Pytanie - "stopowanie" funkcji


Best Answer 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;
Go to the full post


2 replies to this topic

#1 Koxownik

    Pomocny

  • Użytkownik

  • Reputacja: 4
    Nowy

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

Posted 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

Posted 01.09.2013 00:43   Best Answer

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;

Edited by MAGNET, 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

Posted 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




  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

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

Sign In