

Topic mutat la CS16-Scrpting -> Help.
In caseul respectiv pui ceva genu ShowSubMenu( id ) sau numele publicului in care ai celalalt meniul pe care vrei sa il arati. Pentru dmg, inregistrezi Ham_TakeDamage, verifici daca arma e knife si folosesti SetHamParamFloat.
Topic mutat la CS16-Scrpting -> Help.
In caseul respectiv pui ceva genu ShowSubMenu( id ) sau numele publicului in care ai celalalt meniul pe care vrei sa il arati. Pentru dmg, inregistrezi Ham_TakeDamage, verifici daca arma e knife si folosesti SetHamParamFloat.
Nu vreau sa te supar insa sunt la inceput cu acest limbajTopic mutat la CS16-Scrpting -> Help.
In caseul respectiv pui ceva genu ShowSubMenu( id ) sau numele publicului in care ai celalalt meniul pe care vrei sa il arati. Pentru dmg, inregistrezi Ham_TakeDamage, verifici daca arma e knife si folosesti SetHamParamFloat.
Ok.
1. SubMeniu:
public func( id ) { new menu = menu_create( "test", "test_handler" ) menu_additem( menu, "t", "", 0 ) menu_additem( menu, "t1", "", 0 ) } public test_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) } switch( item ) { //corespunde itemului t case 0: { client_print( id, print_chat, "Ai ales t" ) } //corespunde itemului t1 //t1 va trimite catre un sub meniu case 1: { ShowSecondMenu( id ) } } menu_destroy( menu ) return 1 } public ShowSecondMenu( id ) { new menu = menu_create( "sub_menu", "sub_menu_handler" ) menu_additem( menu, "s", "", 0 ) menu_additem( menu, "s1", "", 0 ) } public sub_menu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) } switch( item ) { //corespunde itemului s case 0: { client_print( id, print_chat, "Ai ales s" ) } //corespunde itemului s1 case 1: { client_print( id, print_chat, "Ai ales s1" ) } } menu_destroy( menu ) return 1 }
Un exemplu simplu, e imposibil sa nu intelegi. Cam asa vine: meniu_principal -> handler -> meniu_secundar -> handler_meniu_secundar
2. Pentru DMG:
#include < fakemeta > //doar daca folosesti global_get #include < hamsandwich > #define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) new g_iMaxPlayers public plugin_init( id ) { RegisterHam( Ham_TakeDamage, "player", "CBasePlayer_TakeDamage" ) g_iMaxPlayers = global_get( glb_maxClients ) // sau g_iMaxPlayers = get_maxplayers( ) } public CBasePlayer_TakeDamage( iVictim, iInflictor, iAttacker, Float:fDamage ) { if( iInflictor == iAttacker && IsPlayer ( iAttacker ) && get_user_weapon( id ) == CSW_KNIFE ) { SetHamParamFloat( 4, fDamage * 2.0 ) return HAM_HANDLED; } return HAM_IGNORED; }
Bun am inteles cu submeniurile.. insa la cutite tot nu prea am inteles eu vr sa pun dmg la un model anume de cutit . pentru ca am mai multe in vipmenu.MS pentru ajutor:)Ok.
1. SubMeniu:public func( id ) { new menu = menu_create( "test", "test_handler" ) menu_additem( menu, "t", "", 0 ) menu_additem( menu, "t1", "", 0 ) } public test_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) } switch( item ) { //corespunde itemului t case 0: { client_print( id, print_chat, "Ai ales t" ) } //corespunde itemului t1 //t1 va trimite catre un sub meniu case 1: { ShowSecondMenu( id ) } } menu_destroy( menu ) return 1 } public ShowSecondMenu( id ) { new menu = menu_create( "sub_menu", "sub_menu_handler" ) menu_additem( menu, "s", "", 0 ) menu_additem( menu, "s1", "", 0 ) } public sub_menu_handler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ) } switch( item ) { //corespunde itemului s case 0: { client_print( id, print_chat, "Ai ales s" ) } //corespunde itemului s1 case 1: { client_print( id, print_chat, "Ai ales s1" ) } } menu_destroy( menu ) return 1 }Un exemplu simplu, e imposibil sa nu intelegi. Cam asa vine: meniu_principal -> handler -> meniu_secundar -> handler_meniu_secundar
2. Pentru DMG:#include < fakemeta > //doar daca folosesti global_get #include < hamsandwich > #define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) new g_iMaxPlayers public plugin_init( id ) { RegisterHam( Ham_TakeDamage, "player", "CBasePlayer_TakeDamage" ) g_iMaxPlayers = global_get( glb_maxClients ) // sau g_iMaxPlayers = get_maxplayers( ) } public CBasePlayer_TakeDamage( iVictim, iInflictor, iAttacker, Float:fDamage ) { if( iInflictor == iAttacker && IsPlayer ( iAttacker ) && get_user_weapon( id ) == CSW_KNIFE ) { SetHamParamFloat( 4, fDamage * 2.0 ) return HAM_HANDLED; } return HAM_IGNORED; }
Cand alege cutitul x din meniu seteaza un bool pe true. In Ham_TakeDamage verifica ce valoarea boolului, daca e true ii modifici dmg. Boolul il poti reseta la spawn.
Se vede cat interes dai acestui topic
Edited by Bogdan ;, 15 September 2014 - 08:17 PM.
0 members, 1 guests, 0 anonymous users