Deathrun Vip

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
Tautviuxas
Ar jis surinks 50 žinučių?
Posts: 41
Joined: 2012 Mar 14 10:13
Skype: Tautviuxas2007

Deathrun Vip

Post by Tautviuxas »

Sveiki, iškilo tokia problema pasidariau menu, kad paspaudus m raide atidarytu deathrun vipmenu ir t.t.
Taciau dabar gaunasi taip: zmogus atidaro menu, ir paspaudzia Deathrun Vipmenu ir jis viska gali imti bet kiek kartu per round ir betkada. Gal galite padaryti, kad zmogus galetu imti daigtus tik 1 karta per round ir tik viena daigta?

Code: Select all

#include <amxmodx>#include <amxmisc>#include <fun>#include <hamsandwich>#include <cstrike>#include <fakemeta>#include <xs>#include <engine> #define FLAG ADMIN_LEVEL_H new const VIP[] = "DeathRunVip"new const VIP_MODEL[] = "models/player/DeathRunVip/DeathRunVip.mdl" new const MENU_POPUP[] = "misc/DeathRunVip/vip_menu_popup.wav"new const MENU_OK[] = "misc/DeathRunVip/vip_menu_ok.wav"new const VIP_CONNECT[] = "misc/DeathRunVip/vip_connect.wav" #define TASKID_SHOWHUD  2931#define TASKID_MODEL        3810  new player_model[33][32]new Float: g_counternew bool: g_model[33]new g_hudsyncnew cvar_gravitynew cvar_speednew SayTxT new gCylinderSprite; public plugin_precache(){    precache_model(VIP_MODEL)        precache_sound(VIP_CONNECT)     precache_sound(MENU_POPUP)    precache_sound(MENU_OK)     gCylinderSprite = precache_model( "sprites/shockwave.spr" );} public plugin_init(){    register_plugin("Deathrun V.I.P", "1.0", "DoviuX")     cvar_gravity = register_cvar("dr_vip_gravity", "500")    cvar_speed = register_cvar("dr_vip_speed", "500")     RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)    register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")    register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")     g_hudsync = CreateHudSyncObj()    SayTxT = get_user_msgid("SayText");} public client_connect(client){    if(get_user_flags(client) & FLAG)    {        client_cmd(client, "spk %s", VIP_CONNECT)             new name[32];            get_user_name(client, name, 31);            set_hudmessage( 0, 255, 0, -1.0, 0.29, 0, 6.0, 12.0 );            show_hudmessage( 0, "Vip %s is connecting to the server!.", name);    }} public bacon_spawn(id){    if (!is_user_alive(id))        return        static CsTeams: team ; team = cs_get_user_team(id)        if (team == CS_TEAM_T && (get_user_flags(id) & FLAG))    {            new iOrigin[ 3 ];        get_user_origin( id, iOrigin );         Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );     copy(player_model[id], 31, VIP)            new currentmodel[32];    fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);            if(!equal(currentmodel, player_model[id]))    {        Task_Model(id + TASKID_MODEL)        g_counter += 0.1;    }     if(!task_exists(TASKID_SHOWHUD + id))       set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)     set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)     }    else if (team == CS_TEAM_CT && (get_user_flags(id) & FLAG))    {         new iOrigin[ 3 ];        get_user_origin( id, iOrigin );         Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );        Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );     copy(player_model[id], 31, VIP)     strip_user_weapons(id)    give_item(id, "weapon_knife")            new currentmodel[32];    fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);            if(!equal(currentmodel, player_model[id]))    {        Task_Model(id + TASKID_MODEL)        g_counter += 0.1;    }     if(!task_exists(TASKID_SHOWHUD + id))       set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)     set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)     }} public T_menu(id){    if(!is_user_alive(id))       return PLUGIN_HANDLED     client_cmd(id, "spk %s", MENU_POPUP)                new gmenu = menu_create("\r[\yCSPRO.LT\r]\w VIPMENU" , "Vip_Handler");        menu_additem(gmenu ,"\r255 \wGyvybes", "1" , 0);        menu_additem(gmenu ,"\r255 \wSarvai", "2" , 0);        menu_additem(gmenu ,"\wGravitacija", "3" , 0);        menu_additem(gmenu ,"\wGreitis", "4" , 0);        menu_additem(gmenu ,"\wDeagle su \r2 kulkom", "5" , 0);        menu_additem(gmenu ,"\wHe granata", "6" , 0);        menu_additem(gmenu ,"\wNaktinis matymas (\rTamsiems maps\w)", "7" , 0);         menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);         menu_display(id , gmenu , 0);     return PLUGIN_CONTINUE} public CT_menu(id){    if(!is_user_alive(id))       return PLUGIN_HANDLED            client_cmd(id, "spk %s", MENU_POPUP)         new gmenu = menu_create("\r[\yCSPRO.LT\r]\w VIPMENU" , "VipCt_Handler");        menu_additem(gmenu ,"\r255 \wGyvybes", "1" , 0);        menu_additem(gmenu ,"\r255 \wSarvai", "2" , 0);        menu_additem(gmenu ,"\wGravitacija", "3" , 0);        menu_additem(gmenu ,"\wGreitis", "4" , 0);        menu_additem(gmenu ,"\wHe granata", "5" , 0);        menu_additem(gmenu ,"\wNaktinis matymas (\rTamsiems maps\w)", "6" , 0);         menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);         menu_display(id , gmenu , 0);     return PLUGIN_CONTINUE} public Vip_Handler(id, gmenu, item, player){   if (item == MENU_EXIT)   {      menu_destroy(gmenu)      return PLUGIN_HANDLED   }    new data[6], iName[64]   new access, callback   menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)      new key = str_to_num(data)      switch(key)   {      case 1:      {    client_cmd(id, "spk %s", MENU_OK)     set_user_health(id, 255)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /w255 /gGyvybes!")      }       case 2:      {    client_cmd(id, "spk %s", MENU_OK)     set_user_armor(id, 255)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /w255 /gSarvus!")      }       case 3:      {    client_cmd(id, "spk %s", MENU_OK)     new Float: gravity    gravity = get_pcvar_float(cvar_gravity) / 800     set_user_gravity(id, gravity)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /gGravitacija!")      }            case 4:      {    new Float: speed    speed   = get_pcvar_float(cvar_speed)     client_cmd(id, "spk %s", MENU_OK)     set_user_maxspeed(id, speed)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /gGreiti!")      }            case 5:      {    give_item(id, "weapon_deagle")     new weapon_id = find_ent_by_owner(-1, "weapon_deagle", id);    if(weapon_id)    {        cs_set_weapon_ammo(weapon_id, 2);    }     client_cmd(id, "spk %s", MENU_OK)     client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai deagle su /g2 /ykulkom!")      }            case 6:      {    give_item(id, "weapon_hegrenade")     client_cmd(id, "spk %s", MENU_OK)     client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /wsprogstancia /gHe /yGranata!")      }       case 7:      {    cs_set_user_nvg(id)     client_cmd(id, "spk %s", MENU_OK)     client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai Naktini matyma!")      }   }   menu_destroy(gmenu)   return PLUGIN_HANDLED;} public VipCt_Handler(id, gmenu, item, player){   if (item == MENU_EXIT)   {      menu_destroy(gmenu)      return PLUGIN_HANDLED   }    new data[6], iName[64]   new access, callback   menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)      new key = str_to_num(data)      switch(key)   {      case 1:      {    client_cmd(id, "spk %s", MENU_OK)     set_user_health(id, 255)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /w255 /gGyvybes!")      }       case 2:      {    client_cmd(id, "spk %s", MENU_OK)     set_user_armor(id, 255)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /w255 /gSarvus!")      }       case 3:      {    client_cmd(id, "spk %s", MENU_OK)     new Float: gravity    gravity = get_pcvar_float(cvar_gravity) / 800     set_user_gravity(id, gravity)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /gGravitacija!")      }            case 4:      {    new Float: speed    speed   = get_pcvar_float(cvar_speed)     client_cmd(id, "spk %s", MENU_OK)     set_user_maxspeed(id, speed)    client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /gGreiti!")      }            case 5:      {    give_item(id, "weapon_hegrenade")     client_cmd(id, "spk %s", MENU_OK)     client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai /wsprogtancia /gHe /yGranata!")      }       case 6:      {    cs_set_user_nvg(id)     client_cmd(id, "spk %s", MENU_OK)     client_printcolor(player, "/g[V.I.P]/y: Tu pasirinkai Naktini matyma!")      }   }   menu_destroy(gmenu)   return PLUGIN_HANDLED;} public Task_ShowHUD(task){    new id = task - TASKID_SHOWHUD        if(!is_user_alive(id))        return PLUGIN_HANDLED        static health, armour    health = get_user_health(id)    armour = get_user_armor(id)        set_hudmessage(150, 150, 150, 0.40, 0.92, 0, 0.0, 0.3, 0.0, 0.0)    ShowSyncHudMsg(id, g_hudsync , ".::*Health: %d -|V.I.P|- Armour: %d*::.", health, armour)        set_task(0.1, "Task_ShowHUD", TASKID_SHOWHUD + id)              return PLUGIN_CONTINUE} public client_PreThink(id){    if(is_user_alive(id))    {        if(get_user_flags(id) & FLAG)        {                        new oldbuttons = get_user_oldbutton(id);                                oldbuttons &= ~IN_JUMP;            entity_set_int(id, EV_INT_oldbuttons, oldbuttons);        }    }}   public Task_Model(task){    new id = task - TASKID_MODEL         fm_set_user_model(id, player_model[id])} stock Create_BeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed ){    message_begin( MSG_PVS, SVC_TEMPENTITY, origin );     write_byte( TE_BEAMCYLINDER );    write_coord( origin[ 0 ] );    write_coord( origin[ 1 ] );    write_coord( origin[ 2 ] );    write_coord( origin[ 0 ] );    write_coord( origin[ 1 ] );    write_coord( origin[ 2 ] + addrad );    write_short( sprite );    write_byte( startfrate );    write_byte( framerate );    write_byte(life );    write_byte( width );    write_byte( amplitude );    write_byte( red );    write_byte( green );    write_byte( blue );    write_byte( brightness );    write_byte( speed );    message_end();} stock te_sprite(id, Float:origin[3], sprite, scale, brightness){    message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)    write_byte(TE_SPRITE)    write_coord(floatround(origin[0]))    write_coord(floatround(origin[1]))    write_coord(floatround(origin[2]))    write_short(sprite)    write_byte(scale)     write_byte(brightness)    message_end()} stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul){    new Float:fLen = xs_vec_len(fIn)    xs_vec_copy(fIn, fOut)        fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen    fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul} public fw_SetClientKeyValue(id, infobuffer, key[], value[]){       if (g_model[id] && equal(key, "model"))        return FMRES_SUPERCEDE        return FMRES_IGNORED} public fw_ClientUserInfoChanged(id, infobuffer){       if (!g_model[id])        return FMRES_IGNORED        new currentmodel[32];     fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);        if(!equal(currentmodel, player_model[id]))        fm_set_user_model(id, player_model[id])         return FMRES_IGNORED} stock fm_set_user_model(player, modelname[]){       engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)        g_model[player] = true} stock fm_get_user_model(player, model[], len){       engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)} stock fm_reset_user_model(player){             g_model[player] = false        dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))} stock client_printcolor(const id, const input[], any:...){    new count = 1, players[32];    static msg[191];    vformat(msg,190,input,3);    replace_all(msg,190,"/g","^4");// green txt    replace_all(msg,190,"/y","^1");// orange txt    replace_all(msg,190,"/ctr","^3");// team txt    replace_all(msg,190,"/w","^0");// team txt    if (id) players[0] = id; else get_players(players,count,"ch");    for (new i = 0; i < count; i++)        if (is_user_connected(players[i]))        {            message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i]);            write_byte(players[i]);            write_string(msg);            message_end();        }}   

TETYYS
Gana aktyvus vartotojas
Posts: 457
Joined: 2011 Dec 26 21:49

Re: Deathrun Vip

Post by TETYYS »

Ant itemo pasiemimo nustatyk sukurtą bool'ą į true, kitą kartą pasiimdamas dalyką tikrink ar true, jei taip tai nedauk, o ant raund starto ir vėl nustatyk false, tai gi paprasta.

Tautviuxas
Ar jis surinks 50 žinučių?
Posts: 41
Joined: 2012 Mar 14 10:13
Skype: Tautviuxas2007

Re: Deathrun Vip

Post by Tautviuxas »

Gal galetumei padeti, arba sutvarkyti, jai nesunku?

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Deathrun Vip

Post by InvIs »

Jei visiškai nesupranti apie scriptingą, kam tada išvis lendi? Čia scripting pagalba ir tau gali padėti tik iš dalies arba paaiškinti tai ko nesupranti. Darytis turi pats.
ISVYKES

Tautviuxas
Ar jis surinks 50 žinučių?
Posts: 41
Joined: 2012 Mar 14 10:13
Skype: Tautviuxas2007

Re: Deathrun Vip

Post by Tautviuxas »

Kam rasai posta, jai tavo pagalbos ir nuomones niekas neprase, as prasau pagalbos zmoniu, gal bus kas pades man, kam yra nesunku. Jai bandai primesti kazka, geriau isvis nerasyk.

KamiN
Gana aktyvus vartotojas
Posts: 227
Joined: 2011 Apr 23 13:17

Re: Deathrun Vip

Post by KamiN »

Pagrindinis diskusijų puslapis » Scriptingas » Scripting pagalba
Ant itemo pasiemimo nustatyk sukurtą bool'ą į true, kitą kartą pasiimdamas dalyką tikrink ar true, jei taip tai nedauk, o ant raund starto ir vėl nustatyk false
Tau pasakė ką daryt. Jei tu nori, kad tau kitas žmogus redaguotų pluginą ne tam forume temą kuri.

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 4 guests