A więc chciałem napisać plugin do zabawy "Ostatnia Prosta" który po wpisaniu /zop wyskoczy menu(tak jak u simona i tam dalej włącza się menu z opisem zasady gry i z graczami żeby wybrać uczestników (coś jak na zasadzie FD tylko żeby był model a nie zielona poświata dla FD) i po wybraniu 2 graczy żeby wyskoczyło że zabawa rozpocznie się i tak jak na innych zabawach te okienko za ile co się będzie działo i po drugim czasie żeby CTkom dawało deagla z 1ammo
i od momentu rozpoczęcia zabawy po 20sekundach żeby zabawa się skończyła i żeby można było potem normalnie prowadzić czy też ponownie skorzystać z tej zabawy i jak można to żeby niewybranych uczestników zamroziło na okres trwania zabawy i usunąć speed i ciemność na mapie + tak jak z menagerem dawania FD żeby można było też zabrać (usunąć) uciekiniera i zmienić na innego (wtedy usuniętemu żeby zmieniło model na standardowy więźnia)
Prosiłbym żeby usunąć z pluginu menu duszka i opcję dawania duszka a fd poprawić na to że daje Uciekiniera (model się zmienia na uciekiniera)
Po zakończonej zabawie żeby poprawiało też model z uciekiniera na normalnego więźnia i tak jak ustawia że CT nieśmiertelne to żeby to się wyłączyło
Oto .sma:
zop.sma 5,75 KB 23 Ilość pobrań
zop.amxx
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fun>
#include <jailbreak>
#include <colorchat>
#pragma tabsize 0
#define PLUGIN "[JB] Ostatnia Prosta!"
#define VERSION "1.0"
#define AUTHOR "KreC!K"
native cs_set_player_model(id, newmodel[]);
new id_zop;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("zop_version", VERSION, FCVAR_SERVER);
register_clcmd("say /menuzop", "MenuZop");
id_zop = jail_register_game("OstatniaProsta",);
}
public plugin_precache()
{
precache_model("models/player/uciekinier/uciekinier.mdl");
precache_sound("jb_cypis/kaczki.mp3");
}
public OnLastPrisonerShowWish(id)
{
if(jail_get_play_game_id() == id_zop){
OnRemoveData(id_zop);
cs_set_player_model(id, "klawisz_cypis");
}
}
public OnRemoveData(day)
{
if(day == id_zop)
{
client_cmd(0, "mp3 stop");
for(new i=1; i<=MAX; i++)
{
if(!is_user_connected(i))
continue;
}
}
public OnDayStartPre(day, szInfo[256], szInfo2[512], setting[10], gTimeRound)
{
static szTime[12];
if(day == id_zop)
{
static szTimes[12];
format_time(szTime, 11, "%M:%S", gTimeRound-30);
format_time(szTimes, 11, "%M:%S", gTimeRound-60);
formatex(szInfo2, 511, "Zasady:^n%s - wiezniowie dostaja bron^n%s - walka wiezniow miedzy soba^nGrupy moga byc maksymalnie 2 osobowe!^nOstatni wiezien ma zyczenie", szTime, szTimes);
szInfo = "Dzisiaj jest KillDay";
jail_set_prisoners_micro(true, true);
jail_set_ct_hit_tt(true);
jail_set_god_ct(true);
for(new i=1; i<=32; i++)
{
if(!is_user_connected(i) || !is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)
continue;
UstawUciekinier(i);
}
setting[0] = 1;
setting[2] = 1;
setting[4] = 1;
setting[7] = 2;
}
}
public OnDayStartPost(day)
{
if(day == id_zop)
{
jail_set_game_hud(20, "Rozpoczecie zabawy za");
}
}
public OnGameHudEnd(day)
{
if(day == id_zop)
{
jail_set_ct_hit_tt(false);
client_cmd(0, "mp3 play sound/jb_cypis/kaczki.mp3");
}
}
public fwSpawn(id)
{
if(!is_user_alive(id) || get_user_team(id) != 1)
return;
UstawUciekinier(id);
}
UstawUciekinier(id)
{
jail_set_users_speed(250.0);
cs_set_user_nvg(id, 1);
cs_set_player_model(id, "uciekinier");
}
public MenuZop(id)
{
new menu = menu_create("Menu Zabawy [Ostatnia Prosta!]:", "Handel_Menu");
new cb = menu_makecallback("Menu_Callback");
menu_additem(menu, "Manager Zabawy [Ostatnia Prosta!]","1", 3, cb);
menu_additem(menu, "Zasady Gier", "0");
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_display(id, menu);
}
public Menu_Callback(id, menu, item)
{
static num[10], acces, callback;
menu_item_getinfo(menu, item, acces, num, 9, _, _, callback);
switch(acces)
{
case 1:{
if(jail_get_prowadzacy() || !jail_get_days()) {
return ITEM_DISABLED;
}
}
case 2:{
if(id != jail_get_prowadzacy() && jail_get_days()) {
return ITEM_DISABLED;
}
}
case 3:{
if(id != jail_get_prowadzacy()) {
return ITEM_DISABLED;
}
}
}
return ITEM_ENABLED;
}
public Handel_Menu(id, menu, item)
{
if(item == MENU_EXIT)
return;
new num[10], acces, callback;
menu_item_getinfo(menu, item, acces, num, 9, _, _, callback);
switch(str_to_num(num))
{
case 0: show_motd(id, "zabawaOP.txt", "Zasady Gry");
case 1: MenagerZop(id);
case 10: client_cmd(id, "say /zabawy");
}
}
public MenagerZop(id)
{
new menu2 = menu_create("Manager Zabawy [Ostatnia Prosta!]:", "Handel_ManagerOP");
menu_additem(menu2, "Daj Freeday");
menu_additem(menu2, "Daj Duszka^n");
menu_additem(menu2, "Zabierz Freeday");
menu_additem(menu2, "Zabierz Duszka");
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(id, menu2);
}
public Handel_ManagerOP(id, menu, item)
{
if(item == MENU_EXIT)
return;
new acces, callback, data[3], iname[32];
menu_item_getinfo(menu, item, acces, data, 2, iname, 31, callback);
replace(iname, 31, "^n", "");
new menu2 = menu_create(iname, (!item || item == 2)? "Handel_Menu_Zop": "Handel_Menu_Duszek");
for(new i=1; i<=32; i++)
{
if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T)
continue;
switch(item)
{
case 0,1:{
if(jail_get_prisoner_free(i) || jail_get_prisoner_ghost(i))
continue;
}
case 2:{
if(!jail_get_prisoner_free(i))
continue;
}
case 3:{
if(!jail_get_prisoner_ghost(i))
continue;
}
}
new name[32];
get_user_name(i, name, 31);
menu_additem(menu2, name, (!item || item == 1)? "1": "0");
}
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(id, menu2);
}
public Handel_Menu_Zop(id, menu, item)
{
if(item == MENU_EXIT)
return;
new id2, callback, data[3], name[32];
menu_item_getinfo(menu, item, id2, data, 2, name, 31, callback);
callback = data[0]-'0';
id2 = get_user_index(name);
jail_set_prisoner_free(id2, bool:callback, false);
new szName[2][32];
get_user_name(id, szName[0], 31);
get_user_name(id2, szName[1], 31);
ColorChat(0, TEAM_COLOR,"^x04[Zabawa: Ostatnia Prosta!] ^x03%s ^x01%s uczestnika ^x03%s do Zabawy Ostatnia Prosta!",szName[0], callback? "dodal": "usunal",szName[1]);
}
public Handel_Menu_Duszek(id, menu, item)
{
if(item == MENU_EXIT)
return;
new id2, callback, data[3], name[32];
menu_item_getinfo(menu, item, id2, data, 2, name, 31, callback);
callback = data[0]-'0';
id2 = get_user_index(name);
jail_set_prisoner_ghost(id2, bool:callback, false);
new szName[2][32];
get_user_name(id, szName[0], 31);
get_user_name(id2, szName[1], 31);
ColorChat(0, TEAM_COLOR,"^x04[PrisonBreak] ^x03%s ^x01%s duszka ^x03%s",szName[0], callback? "dal": "zabral",szName[1]);
}
Oto błędy:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team abc.sma(24) : error 029: invalid expression, assumed zero abc.sma(24) : error 088: number of arguments does not match definition abc.sma(54) : error 029: invalid expression, assumed zero abc.sma(54) : error 004: function "OnDayStartPre" is not implemented abc.sma(54) : warning 215: expression has no effect abc.sma(54) : error 001: expected token: ";", but found "]" abc.sma(54) : fatal error 107: too many error messages on one line Compilation aborted. 6 Errors.
Dla tego któremu uda się poprawić ten plugin leci "+" a nawet 2 ![]()
Z góry dzięki


Dodatki SourceMod












