Problem z pluginem.
Ciechan
12.06.2010
Witam. Chciałem sam napisać plugin według poradnika na tej stronce, lecz podczas próby kompilowania tego na strone AMX Mod X - Half-Life Scripting for Pros!
wyskakuje mi
Ma on za zadanie po wpisaniu /hpme dodać hp graczowi. Potrzebuję tego, gdyż zaczynam pisanie pluginów, i chcę się czegoś nauczyć, zobaczyć co mam źle. Na pewno pomoże mi to w dalszej edukacji. Pozdrawiam
wyskakuje mi
Your plugin failed to compile! Read the errors below: Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team /home/groups/amxmodx/tmp3/phpB0d3J8.sma(24) : warning 217: loose indentation /home/groups/amxmodx/tmp3/phpB0d3J8.sma(26) : warning 217: loose indentation /home/groups/amxmodx/tmp3/phpB0d3J8.sma(26) : error 029: invalid expression, assumed zero /home/groups/amxmodx/tmp3/phpB0d3J8.sma(28) : warning 217: loose indentation /home/groups/amxmodx/tmp3/phpB0d3J8.sma(30) : warning 225: unreachable code /home/groups/amxmodx/tmp3/phpB0d3J8.sma(30) : warning 217: loose indentation 1 Error. Could not locate output file /home/groups/amxmodx/public_html/websc3/phpB0d3J8.amx (compile failed).Nie wiem zbytni o co chodzi. Tutaj daje o to ten plugin:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "Grzegorz" new hp_koszt public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) hp_koszt = register_cvar("hp_koszt","6000") register_clcmd("say /hpme","hp") } public hp(id){ if(!is_user_alive(id)){ client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(") return PLUGIN_HANDLED } if(get_user_health(id)>=200)){ client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!") return PLUGIN_HANDLED } set_user_health(id,200) cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt)) return PLUGIN_HANDLED }Proszę o podanie co jest źle w pluginie, co powinienem z nim zrobić. Najlepiej podajcie poprawna wersję pluginu.
Ma on za zadanie po wpisaniu /hpme dodać hp graczowi. Potrzebuję tego, gdyż zaczynam pisanie pluginów, i chcę się czegoś nauczyć, zobaczyć co mam źle. Na pewno pomoże mi to w dalszej edukacji. Pozdrawiam
Ciechan
13.06.2010
Z tego co widzę doszła linijka
13 czerwiec 2010 - 09:44:
Edit: po wpisaniu tej komendy /hpme wyskakuje informacja, że jestem nieżywy ([Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-().
jestes niezywy ;-(")Nie znam się dlatego pytam co oznaczają poszczególne jej elementy?
13 czerwiec 2010 - 09:44:
Z tego co widzę doszła linijka
jestes niezywy ;-(")Nie znam się dlatego pytam co oznaczają poszczególne jej elementy?
Edit: po wpisaniu tej komendy /hpme wyskakuje informacja, że jestem nieżywy ([Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-().
grankee
13.06.2010
Łukasz zdaje się niezbyt zrozumiał prośbę, było "poprawcie mi błędy" a nie "napiszcie mi to dobrze".
Podoba mi się, że Ciechan nie chce iść na łatwiznę, ale sam coś zrobić
używaj [ sma ] [/ sma] zamiast [ code ] [/ code]
Podoba mi się, że Ciechan nie chce iść na łatwiznę, ale sam coś zrobić
używaj [ sma ] [/ sma] zamiast [ code ] [/ code]
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Grzegorz"
new hp_koszt
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
hp_koszt = register_cvar("hp_koszt","6000")
register_clcmd("say /hpme","hp")
}
public hp(id){
if(!is_user_alive(id)){
client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")
return PLUGIN_HANDLED
}
if(get_user_health(id)>=200)){//ŹLE! Jeżeli gracz ma 200 lub więcej hp, a jak może mieć więcej? Poza tym takim warunkiem sprawdzisz jego hp, a nie to czy już to kupił, bo jak oberwie to będzie miał mniej hp, chyba, że nie ma limitu ile razy na runde można to kupić..
client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")
return PLUGIN_HANDLED
}
//tu powinieneś dać warunek sprawdzający czy gracza stać na kupno, tj czy ma 6000 lub więcej kasy.
/*Czyli w skrócie szkielet
if(cs_get_user_money>=get_pcvar_num(hp_koszt))
{
set_user_health(id,200)
cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))
}
else
{
print(id, "Nie masz tyle kasy/Nie stac Cie")
}
Oczywiście postawiaj odpowiednie funkcje.
*/
set_user_health(id,200)
cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))
return PLUGIN_HANDLED
}
Ciechan
13.06.2010
wytłumaczysz co tutaj powinienem napisać, gdyż nie wiem. Przy okazji znasz jakieś źródło skąd można się uczyć pisania pluginów(pawn c++) od podstaw.if(get_user_health(id)>=200)){//ŹLE! Jeżeli gracz ma 200 lub więcej hp, a jak może mieć więcej? Poza tym takim warunkiem sprawdzisz jego hp, a nie to czy już to kupił, bo jak oberwie to będzie miał mniej hp, chyba, że nie ma limitu ile razy na runde można to kupić..
grankee
13.06.2010
Kursów C++ na necie jest masa. Nie podam Ci tego, z którego ja się uczyłem, bo niedługo po tym zgubiłem gdzieś linka.
Poczytaj o warunkach if
Innymi słowy "Jeśli ilość punktów życia (hp) jest większa lub równa 200 to wykonaj to co między klamrami"
jest kilka 'ale'
-Jeśli ktoś kupi sobie 200hp to będzie miał tyle do momentu aż nie straci chociażby 1 hp (postrzał, upadek z wysokości itd), zatem mając 199 hp już będzie mógł kupić kolejny raz 200hp, natomiast więcej niż 200 hp w jaki sposób miałby mieć(to zawarłeś w warunku if)?
Nie mogę powiedzieć co powinieneś napisać, bo nie wiem w jakim przypadku ma być możliwość kupna a w jakim nie.
Poczytaj o warunkach if
if(get_user_health(id)>=200))
{
//tutaj kod, który wykona się w sytuacji, gdy warunek będzie prawdą
}
Innymi słowy "Jeśli ilość punktów życia (hp) jest większa lub równa 200 to wykonaj to co między klamrami"
jest kilka 'ale'
-Jeśli ktoś kupi sobie 200hp to będzie miał tyle do momentu aż nie straci chociażby 1 hp (postrzał, upadek z wysokości itd), zatem mając 199 hp już będzie mógł kupić kolejny raz 200hp, natomiast więcej niż 200 hp w jaki sposób miałby mieć(to zawarłeś w warunku if)?
Nie mogę powiedzieć co powinieneś napisać, bo nie wiem w jakim przypadku ma być możliwość kupna a w jakim nie.
G[o]Q
13.06.2010
zalezy co chcesz robic jesli pisac pluginy to pawn i przy okazji podstawy c++ a jesli jakies programy to odpusc sobie pawn i bierz sie za c++ //polecam symfonie naprawdę dobra ksiazka o C++