Moj pierwszy plugin.
FeelMySkill
24.07.2012
Witam, dzis napisalem swój pierwszy prosty plugin, dziala i tu moje pytanie:
czy w kodzie wszystko jest okej?
i drugie: jak zrobić by komenda mogła być użyta raz na rundę?
Dzięki i proszę sie nie smiać, dzis zaczalem sie tym bawic dopiero
Użytkownik FeelMySkill edytował ten post 24.07.2012 21:58
czy w kodzie wszystko jest okej?
i drugie: jak zrobić by komenda mogła być użyta raz na rundę?
Dzięki i proszę sie nie smiać, dzis zaczalem sie tym bawic dopiero
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /nic","tekst") // Add your code here... } public tekst(id) { set_user_health(id,200) set_user_gravity(id,0.50) set_user_armor(id,67) give_item(id,"weapon_m4a1") give_item(id,"ammo_556nato") client_print(id,print_chat,"To moj pierwszy plugin") } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par } */
Użytkownik FeelMySkill edytował ten post 24.07.2012 21:58
Blood Angel 24.07.2012
Poprawił bym.
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /nic","tekst")
// Add your code here...
}
public tekst(id)
{
if(is_user_alive(id)) {
set_user_health(id, 200)
set_user_gravity(id, 0.50)
set_user_armor(id, 67)
give_item(id,"weapon_m4a1")
give_item(id,"ammo_556nato")
client_print(id,print_chat,"To moj pierwszy plugin")
}
else
client_print(id,print_chat,"Musisz byc zywy")
}
FeelMySkill
24.07.2012
To co podales to bedzie dzialac tylko wtedy gdy gracz zyje? Potrzebuje wiedziec jak tez zrobic zeby bylo ze mozna raz na runde, oczywiscie @up masz+ za chęci .
Użytkownik FeelMySkill edytował ten post 24.07.2012 22:10
Użytkownik FeelMySkill edytował ten post 24.07.2012 22:10
Gość_21977_* 24.07.2012
Stwórz globalną tablicę 33elementową typu boolowskiego.
W momencie rozpoczęcia nowej rundy
Po wpisaniu komendy, jeśli dla danego gracza wartość wynosi false, to znaczy, że w tej rundzie jeszcze nie grał i możesz mu śmiało dodać przedmioty, pamiętając o zmianie wartości tablicy dla danego gracza na true.
Jeśli wartość wynosi true, to nie pozwól na dodanie przedmiotów, możesz także dodać stosowny komunikat. Gotowego kodu chyba nie muszę przedstawiać?
W momencie rozpoczęcia nowej rundy
register_logevent("logevent_round_start", 2, "1=Round_Start")zmień wszystkim graczom wartość na false jako niewykorzystaną komendę w tej rundzie.
Po wpisaniu komendy, jeśli dla danego gracza wartość wynosi false, to znaczy, że w tej rundzie jeszcze nie grał i możesz mu śmiało dodać przedmioty, pamiętając o zmianie wartości tablicy dla danego gracza na true.
Jeśli wartość wynosi true, to nie pozwól na dodanie przedmiotów, możesz także dodać stosowny komunikat. Gotowego kodu chyba nie muszę przedstawiać?
Gość_21977_* 24.07.2012
Mam nadzieję, że zrozumiesz, postarałem się dodać przyjazne komentarze
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new bool:wpisano_komende[33];
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /nic","tekst");
register_logevent("logevent_round_start", 2, "1=Round_Start"); // rejestrujemy zdarzenie nowej rundy (koniecznie!)
}
public tekst(id){
if(is_user_alive(id)){
if(wpisano_komende[id]){ // dodatkowy warunek, ktowy sprawdza, czy uzyto juz kkomendy w tej rundzie
client_print(id,print_chat, "Juz wpisales raz komende w tej rundzie"); // uzyto komendy, wiec nie wykonujemy jej
} else { // nie wykonano komendy, wiec mozemy dodac arsenal
set_user_health(id, 200);
set_user_gravity(id, 0.50);
set_user_armor(id, 67);
give_item(id, "weapon_m4a1");
give_item(id, "ammo_556nato");
client_print(id,print_chat, "To moj pierwszy plugin");
wpisano_komende[id]=true; // nie zapomnijmy ustawic, ze komende juz wykonano, zeby zapobiec kolejnym jej wykonaniom
}// az do czasu nowej rundy (logevent_round_start), kiedy na nowo ustawimy wszystkim wpisano_komende na false
} else {
client_print(id,print_chat,"Musisz byc zywy");
}
}
public logevent_round_start(){ // tutaj wykonywane jest to zdarzenie (zdarzenie nowej rundy, zarejestrowane w plugin_init)
for(new id=1;id<=32;++id){ // dla kazdego gracza (id wynosza od 1 do max. 32)
wpisano_komende[id]=false; // zmieniamy wartosc na false, czyli, ze nie wpisywano komendy jeszcze w tej rundzie
}
}
FeelMySkill
25.07.2012
Okej czaje, jak są takie komentarze mozna latwo zrozumiec, dzięki, ale to "wpisano_komende" to jest jakas nowa funkcja czy coś? tego nie trzeba rejestrować?
Masz +-sy
Masz +-sy
d0naciak
25.07.2012
new bool:wpisano_komende[33];
stworzono nową zmienną, której wartość można zmieniać a potem np. wykorzystywać do warunków.
wartosc 33 elementowa ponieważ maksymalna ilość ludzi na serwerze jest ( a raczej może ) równa 32.
Najlepiej poczytaj se to
http://amxx.pl/topic...ienne-co-i-jak/