Przykład z codmoda:
public PobierzNazwePerku(perk, Return[], len) { if(perk <= ilosc_perkow) { param_convert(2); // Return[] to drugi parametr copy(Return, len, nazwy_perkow[perk]); // kopiujemy do Returna nazwe perku } }
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez Droso
w 15.12.2013 16:21
Napisane przez sebul
w 05.06.2012 13:44
Ale o co chodzi?jak sama nazwa nazwa wskazuje daje expa. (do tego co teraz masz)
Po prostu jak chcesz dodać komuś exp, to robisz to takCzyli
cod_set_user_xpmogę wykorzystać w sposób taki jak Give_Xp że pobiorę ilość aktualnego expa i odejme od niego po wywołaniu jakiegoś zdarzenia?
cod_set_user_xp(id, cod_get_user_xp(id)+ILOSC_EXPA);
Napisane przez sebul
w 05.06.2012 11:07
Napisane przez Goliath
w 05.06.2012 11:05
Napisane przez QuahodronN
w 28.12.2011 01:14
Napisane przez Fili:P
w 19.01.2012 12:44
ach_display_gz 0/1 - standardowo 1, jeśli 0 to po zdobyciu acha nie wyświetla "Gratulacje %s! Zdobyłeś osiągnięcie %s!", jest stworzone, ponieważ forwardem możemy robić to sami ( forward nie testowany ).
native ach_get_index(const name[]); native ach_get_stance(id, ach_id); // pobiera czy gracz zaliczył acha czy nie 0/1 native ach_get_status(id, ach_id); // pobiera postęp w achu native ach_get_name(ach_id, const var[], len); // pobiera nazwe acha native ach_get_desc(ach_id, const var[], len); // pobiera opis acha native ach_get_target(ach_id); // pobiera cel acha (wymagany postep) native ach_get_max(); // pobiera ilosc stworzonych achow native ach_set_stance(id, ach_id, value); // ustawia stan acha native ach_set_status(id, ach_id, value); // ustawia postep w acha native ach_add(const ach_name[], const ach_desc[], ach_target); native ach_reset_status(id, ach_id); // resetuje postep acha (ustawia na 0) przydatne jezeli robimy achy typu w rundzie native ach_add_status(id, ach_id, value); // dodaje x punktów do obecnej wartosci postepu acha
forward ach_give_reward(pid, aid); // wywolywany kiedy gracz otrzymuje info o ukończeniu acha ( możemy mu tu dać nagrode ). forward ach_load_post( id ); // wywolywany po wczytaniu danych, aby bezpiecznie operowac w client_authorized :) forward ach_save_pre( id, save_in ); // wywoływany przed zapisem danych, dobrze jest tu zmienić na przykład wartość postępu, aby nie kolidować z systemem forward ach_save_post( id, save_in ); // wywolywany po zapisie danych. save_in może mieć 2 wartości: #define SAVE_IN_DISCONNECT 1 #define SAVE_IN_DEATH 2 Wartość 1 jest wywoływana przy wyjściu z serweru, a 2 przy śmierci gracza. Oczywiście przy wyjściu z serwera nie wywołuje się ach_save_post, bo to nie miałoby sensu.
#include <amxmodx>
#include <achievements>
public plugin_init() {
register_plugin("test", "1.0", "Fili:P")
}
public ach_give_reward(pid, aid)
{
client_print(pid, print_chat, "Zaliczyles acha!");
}
#include <amxmodx>
#include <achievements>
new g_HandleAch;
public plugin_init() {
register_plugin("achy", "1.0", "Fili:P")
g_HandleAch = ach_add("Staly bywalec", "Wejdz 1000 razy na serwer", 1000);
}
public client_putinserver(id)
{
ach_add_status(id, g_HandleAch, 1);
}
Napisane przez Siemka (=
w 08.01.2012 16:25
Napisane przez
Kolar`.
w 20.12.2011 17:35
init:
register_event("CurWeapon","CurWeapon","be", "1=1")dół:public CurWeapon(id) { new weapon=get_user_weapon(id) if(weapon != CSW_KNIFE || weapon != CSW_C4) client_cmd(id,"drop"); }
Napisane przez VirusX
w 27.11.2011 19:54
Naucz się polskiego a pod modele zdobędziesz używając program Half-Life Model Viewer ale z głową.
Napisane przez KariiO
w 23.07.2011 17:29
register_think("Regeneracja", "RegeneracjaThink"); LeczacyBot();
LeczacyBot() { new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); if (Bot) { set_pev(Bot, pev_classname, "Regeneracja"); dllfunc(DLLFunc_Spawn, Bot); set_pev(Bot, pev_nextthink, get_gametime() + 5.0); } } public RegeneracjaThink(Bot) { new iPlayers[32], iNum, id; get_players(iPlayers, iNum); for(new i; i<inum; i++)="" {="" id="iPlayers[i];" if="" (!is_user_alive(id))="" continue;="" (zmienna_tej_statystyki[id]="">0) change_health(id,ZMIENNA_TEJ_STATYSTYKI[id]/Y,0,""); } set_pev(Bot, pev_nextthink, get_gametime() + X.0); }
player_regeneracja[id]Y - co ile punktów ZMIENNA_TEJ_STATYSTYKI[id] ma dodawać HP...przykładowo gdy wpiszemy tam 5 to gdy będziemy mieć 5 punktów danych w tą statystyką będzie dodawało nam co Y sekund 1 HP , 10 punktów - 2 HP co Y sekund itd...
player_xp[id]+=amount
if (ZMIENNA_TEJ_STATYSTYKI[id]>0) player_xp[id]+=amount+ZMIENNA_TEJ_STATYSTYKI[id] else player_xp[id]+=amount
public set_gravitychange(id) { if(is_user_alive(id) && is_user_connected(id)) { if(player_class[id] == Ninja) { if(player_b_gravity[id]>6) set_user_gravity(id, 0.17) else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2) else set_user_gravity(id, 0.25) } else { set_user_gravity(id,1.0*(1.0-player_b_gravity[id]/12.0)) } } }I zmieniamy na:
public set_gravitychange(id) { if(is_user_alive(id) && is_user_connected(id)) { if(player_class[id] == Ninja) { if(player_b_gravity[id]>6) set_user_gravity(id, 0.17) else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2) else set_user_gravity(id, 0.25) } else if(ZMIENNA_TEJ_STATYSTYKI[id]>0) { set_user_gravity(id,1.0:(ZMIENNA_TEJ_STATYSTYKI[id]/25)) } else { set_user_gravity(id,1.0*(1.0-player_b_gravity[id]/12.0)) } } }Przykładowo jeżeli ta statystyka wynosi maximum 100 zadziała to tak:
100:25=4 1.0:4=0.25 800:0.25(4)=200Nie jestem pewien na 100 % czy dobrze z tym myślę więc jakby jednak nie proszę o poprawę
new render=255Dodajemy pod:
new renderX=255Potem:
else if(invisible_cast[id]==1) { if(player_b_inv[id]>0) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, floatround((10.0/255.0)*(255-player_b_inv[id]))) else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10) }Dodajemy pod:
else if(ZMIENNA_TEJ_STATYSTYKI[id]>0) { renderX = 255-ZMIENNA_TEJ_STATYSTYKI[id] set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha,renderX) }W momencie gdy nasza zmienna będzie równa 100 = niewidzialność będzie równa 155.
renderX = 255-(ZMIENNA_TEJ_STATYSTYKI[id]*2)Wtedy każdy punkt dany w tą statystykę będzie odejmował dwa punkty od niewidzialności.
Napisane przez R3X
w 24.08.2010 22:55
DHUD_setFrame(dhud, frame, iColor[3], Float:x, Float:y, iLen = 1);dhud - uchwyt
DHUD_applyFilter(dhud, const szFilter[], startFrame, endFrame, Float:dx=D_LONG, Float:dy=D_ZERO, any:...)dhud - uchwyt
DHUD_setFrame(dhud, 50, {0,0,0}, 0.0, 0.0); DHUD_applyFilter(dhud, "SetPosition", 0, 50, D_ZERO, D_ZERO, 0.5, 0.5); DHUD_applyFilter(dhud, "SetColor", 0, 50, D_ZERO, D_ZERO, 255, 255, 255);
DHUD_display(id, dhud, Float:fInterval = 0.1, channel = 4, const szMessage[], any:...)id - id gracza lub 0 - do wszystkich
forward fwStopAnimation(id, dhud, bool:finished);
public fwStopAnimation(id, dhud, bool:finished){}
Napisane przez diablix
w 09.06.2011 11:47
Napisane przez Knopers
w 05.06.2011 14:15
#include <amxmodx>
#include <codmod>
#define FLAGA ADMIN_USER
public plugin_init()
{
register_plugin("Przenoszenie EXPa", "1.0", "Orginal version: byQQ, Edit version: kisiel96");
//Total Edited By Knopers
register_concmd("cod_przenies", "handle_przenies");
register_concmd("cod_zamien", "handle_zamien");
register_concmd("cod_sumuj", "handle_sumuj");
register_clcmd("lista_klas", "lista_klas");
}
public handle_przenies(id)
{
if(get_user_flags(id) & FLAGA)
{
new arg[2][11];
new ids[2];
read_argv(1, arg[0], 10); // ID 1
read_argv(2, arg[1], 10); // ID 2
ids[0] = str_to_num(arg[0]);
ids[1] = str_to_num(arg[1]);
new klasa[2][33];
cod_get_class_name(ids[0], klasa[0], 32);
cod_get_class_name(ids[1], klasa[1], 32);
cod_set_user_class(id, ids[0], 1);
new temp = cod_get_user_xp(id);
cod_set_user_xp(id, 0);
cod_set_user_class(id, ids[1], 1);
cod_set_user_xp(id, temp);
client_print(id, print_chat, "Przeniosles exp z %s na %s", klasa[0], klasa[1]);
}
return PLUGIN_CONTINUE;
}
public handle_zamien(id)
{
if(get_user_flags(id) & ADMIN_USER)
{
new arg[2][11];
new ids[2];
read_argv(1, arg[0], 10); // ID 1
read_argv(2, arg[1], 10); // ID 2
ids[0] = str_to_num(arg[0]);
ids[1] = str_to_num(arg[1]);
new klasa[2][33];
cod_get_class_name(ids[0], klasa[0], 32);
cod_get_class_name(ids[1], klasa[1], 32);
cod_set_user_class(id, ids[0], 1);
new temp1 = cod_get_user_xp(id);
cod_set_user_class(id, ids[1], 1);
new temp2 = cod_get_user_xp(id);
cod_set_user_xp(id, temp1);
cod_set_user_class(id, ids[0], 1);
cod_set_user_xp(id, temp2);
client_print(id, print_chat, "Zamieniles exp pomiedzy %s a %s", klasa[0], klasa[1]);
}
return PLUGIN_CONTINUE;
}
public handle_sumuj(id)
{
if(get_user_flags(id) & FLAGA)
{
new arg[2][11];
new ids[2];
read_argv(1, arg[0], 10); // ID 1
read_argv(2, arg[1], 10); // ID 2
ids[0] = str_to_num(arg[0]);
ids[1] = str_to_num(arg[1]);
new klasa[2][33];
cod_get_class_name(ids[0], klasa[0], 32);
cod_get_class_name(ids[1], klasa[1], 32);
cod_set_user_class(id, ids[0], 1);
new temp1 = cod_get_user_xp(id);
cod_set_user_xp(id, 0);
cod_set_user_class(id, ids[1], 1);
new temp2 = cod_get_user_xp(id);
cod_set_user_xp(id, temp1+temp2);
client_print(id, print_chat, "Zsumowales exp z %s i %s", klasa[0], klasa[1]);
}
return PLUGIN_CONTINUE;
}
public lista_klas(id)
{
client_print(id, print_console, "===============================================");
for(new i = 0; i < cod_get_perks_num(); i++)
{
new klasa[33]; cod_get_class_name(i, klasa, 32);
client_print(id, print_console, "ID: %d | Nazwa: %s", i, klasa);
}
client_print(id, print_console, "===============================================");
}
Napisane przez Portek
w 07.07.2009 14:37
DROP TABLE IF EXISTS "wc3_player"; CREATE TABLE `wc3_player` ( `player_id` INTEGER PRIMARY KEY AUTOINCREMENT, `player_steamid` varchar(25) NOT NULL default '', `player_ip` varchar(20) NOT NULL default '', `player_name` varchar(35) NOT NULL default '', `time` timestamp(14) NOT NULL DEFAULT CURRENT_TIMESTAMP );
W tej lini wystarczy usunąć znaki ", tak aby zapytanie wyglądało następująco:DROP TABLE IF EXISTS "wc3_player";
DROP TABLE IF EXISTS wc3_player;
Na zielono zaznaczony jest błąd składni, zaznaczony tekst należy zamienić na auto_incrementCREATE TABLE `wc3_player` ( `player_id` INTEGER PRIMARY KEY AUTOINCREMENT, `player_steamid` varchar(25) NOT NULL default '', `player_ip` varchar(20) NOT NULL default '', `player_name` varchar(35) NOT NULL default '', `time` timestamp(14) NOT NULL DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE `wc3_player` ( `player_id` INTEGER PRIMARY KEY auto_increment, `player_steamid` varchar(25) NOT NULL, `player_ip` varchar(20) NOT NULL, `player_name` varchar(35) NOT NULL, `time` timestamp(14) NOT NULL DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE `wc3_player` ( `player_id` INTEGER PRIMARY KEY auto_increment, `player_steamid` varchar(25) NOT NULL, `player_ip` varchar(20) NOT NULL, `player_name` varchar(35) NOT NULL, `time` timestamp(14) NOT NULL DEFAULT CURRENT_TIMESTAMP );
INSERT INTO "wc3_player" VALUES(1,'','','Portek',07.07.2009);Brakuje w niej tak jak pisałem wcześniej zdefiniowanych pól do których maja być dodane dane, poprawiamy więc odpowiednio kod:
Na pierwszy rzut oka widać co zostało dodane, "wc3_player" zostało zamienione na 'wc3_player', oraz dodane zostały nazwy pól (UWAGA! Ważne żeby nazwy pól były podawane między znakami 'a', oraz było w dokładnie takiej samej kolejności jak w zapytanie tworzącym tabele!).INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`)VALUES(1,'','','Portek',07.07.2009);
DROP TABLE IF EXISTS wc3_player; CREATE TABLE `wc3_player` ( `player_id` INTEGER PRIMARY KEY auto_increment, `player_steamid` varchar(25) NOT NULL, `player_ip` varchar(20) NOT NULL, `player_name` varchar(35) NOT NULL, `time` timestamp(14) NOT NULL DEFAULT CURRENT_TIMESTAMP ); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`)VALUES(1,'','','Portek',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(2,'','','Portek2',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(3,'','','Portek3',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(4,'','','Portek4',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(5,'','','Portek5',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(6,'','','Portek6',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(7,'','','Portek7',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(8,'','','Portek8',07.07.2009); INSERT INTO `wc3_player` (`player_id` ,`player_steamid` ,`player_ip` ,`player_name` ,`time`) VALUES(9,'','','Portek9',07.07.2009);
Napisane przez ;((
w 14.05.2011 09:48