hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.18. 19:37



Jelenlévő felhasználók

Jelenleg 147 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 147 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Pokémon mód/event
HozzászólásElküldve: 2016.12.05. 18:35 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2012.07.02. 17:41
Hozzászólások: 1641
Megköszönt másnak: 121 alkalommal
Megköszönték neki: 247 alkalommal
Üdv, idő és hozzáértés hiány miatt osztom meg veletek a pokémon mód/event plugint. Kezdetleges, befejezetlen! Készítő: demon
Modellekért és tesztért írj privátban! Nem plugin feltöltésnek szántam! Akinek kell az használja/fejlessze.
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < hamsandwich >
  4. #include < fakemeta >
  5. #include < engine >
  6. #include < fun >
  7. #include < sqlx >
  8.  
  9. #define OFFSET_MONEY 115
  10. #define IS_PLAYER(%1) (0 < %1 <= g_iMaxPlayers)
  11. #define ModelsNum 7
  12.  
  13. new const g_sPrefix[ ] = "Devastators";
  14.  
  15. new const g_sClassName[ ] = "pokeball";
  16. new const g_sClassName2[ ] = "pokemon";
  17. new const g_sTable[ ] = "poke_event";
  18. new const g_sSQL_INFOS[ ][ ] =
  19. {
  20.     "",    // HOST
  21.     "",     // USERNAME
  22.     "",     // PASSWORD
  23.     ""      // DATABASE
  24. };
  25. new const g_sClass[ ModelsNum ][ ] = { "Pikachu", "Arcanine", "Charizard", "Psyduck", "Piplup", "Squirtle", "Snorlax" };
  26. new const g_iModels[ 11 ] = { 200, 300, 500, 700, 1000, 1200, 1500, 1800, 2200, 2500, 10000000 };
  27. new const g_sModels[ ][ ] =
  28. {
  29.     "models/PokeEvent_by_Demon/Poke_Pikachu.mdl",
  30.     "models/PokeEvent_by_Demon/Poke_Arcanine.mdl",
  31.     "models/PokeEvent_by_Demon/Poke_Charizard.mdl",
  32.     "models/PokeEvent_by_Demon/Poke_Psyduck.mdl",
  33.     "models/PokeEvent_by_Demon/Poke_Piplup.mdl",
  34.     "models/PokeEvent_by_Demon/Poke_Squirtle.mdl",
  35.     "models/PokeEvent_by_Demon/Poke_Snorlax.mdl",
  36.     "models/PokeEvent_by_Demon/v_pokeball.mdl",
  37.     "models/PokeEvent_by_Demon/p_pokeball.mdl",
  38.     "models/PokeEvent_by_Demon/w_pokeball.mdl"
  39. }
  40.  
  41. new Handle: g_iSqlTuple;
  42. new g_iMaxPlayers, g_iMsgMoney, g_iTrail, g_iRing, g_iVAllocModel, g_iPAllocModel;
  43. new g_iPokemons[ 33 ][ ModelsNum ], g_iLevels[ 33 ][ ModelsNum ], g_sAuthid[ 33 ][ 32 ];
  44.  
  45. public plugin_precache( )
  46. {
  47.     for ( new i; i < sizeof g_sModels; ++i ) precache_model( g_sModels[ i ] );
  48.     g_iTrail = precache_model( "sprites/smoke.spr" );
  49.     g_iRing = precache_model( "sprites/shockwave.spr" );
  50.     precache_sound( "PokeEvent_by_Demon/pokedraw.wav" );
  51.     precache_sound( "PokeEvent_by_Demon/pokebounce.wav" );
  52.     precache_sound( "PokeEvent_by_Demon/pokepin.wav" );
  53. }
  54.  
  55. public plugin_init( )
  56. {  
  57.     g_iMaxPlayers = get_maxplayers( );
  58.     g_iMsgMoney = get_user_msgid( "Money" );
  59.    
  60.     RegisterHam( Ham_Killed, "player", "fwHamKilled" );
  61.     RegisterHam( Ham_Spawn, "player", "fwSpawn", 1 );
  62.     register_forward( FM_EmitSound, "fwEmitSound" );
  63.    
  64.     register_event( "HLTV", "eRoundStart", "a", "1=0", "2=0" );
  65.     register_event( "TextMsg", "eRoundStart", "a", "2&#Game_C", "2&#Game_w" );
  66.     register_event( "CurWeapon", "eCurWeapon","be", "1=1" );
  67.    
  68.     register_think( g_sClassName, "FwThinkFakeSmoke" );
  69.    
  70.     g_iVAllocModel = engfunc( EngFunc_AllocString, g_sModels[ 7 ] );
  71.     g_iPAllocModel = engfunc( EngFunc_AllocString, g_sModels[ 8 ] );
  72.    
  73.     g_iSqlTuple = SQL_MakeDbTuple( g_sSQL_INFOS[ 0 ], g_sSQL_INFOS[ 1 ], g_sSQL_INFOS[ 2 ], g_sSQL_INFOS[ 3 ] );
  74.  
  75.     new sThread[ 512 ];
  76.     formatex( sThread, charsmax( sThread ), "CREATE TABLE IF NOT EXISTS `%s` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY);", g_sTable, g_sClass[ 0 ], g_sClass[ 1 ], g_sClass[ 2 ], g_sClass[ 3 ], g_sClass[ 4 ], g_sClass[ 5 ], g_sClass[ 6 ] );
  77.    
  78.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sThread, { 0 }, 1 );
  79.    
  80.     register_concmd( "say /pokemon", "cmdShowMyPokemons" );
  81.     register_clcmd( "say /poke","cmdBuyPokeBall" );
  82.     register_clcmd( "create_poke", "cmdCreate", ADMIN_RCON, "<model (0-6)> - create pokemon." );
  83. }
  84.  
  85. public SaveDatas( iId, iMode )
  86. {
  87.     static sText[ 512 ], sName[ 32 ];
  88.     get_user_name2( iId, sName, charsmax( sName ) );
  89.    
  90.     if ( iMode == 1 ) formatex( sText, charsmax( sText ), "INSERT INTO `%s` (`authid`,`username`) VALUES (^"%s^", ^"%s^");", g_sTable, g_sAuthid[ iId ], sName );
  91.     else formatex( sText, charsmax( sText ), "UPDATE `%s` SET authid = ^"%s^", username = ^"%s^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^" WHERE authid = ^"%s^";",
  92.         g_sTable, g_sAuthid[ iId ], sName, g_sClass[ 0 ], g_iPokemons[ iId ][ 0 ], g_sClass[ 1 ], g_iPokemons[ iId ][ 1 ], g_sClass[ 2 ],
  93.         g_iPokemons[ iId ][ 2 ], g_sClass[ 3 ], g_iPokemons[ iId ][ 3 ], g_sClass[ 4 ], g_iPokemons[ iId ][ 4 ], g_sClass[ 5 ], g_iPokemons[ iId ][ 5 ],
  94.         g_sClass[ 6 ], g_iPokemons[ iId ][ 6 ], g_sAuthid[ iId ] );
  95.  
  96.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sText, { 0 }, 1 );
  97. }
  98.  
  99. public LoadDatas( iId )
  100. {
  101.     static sText[ 128 ], iArray[ 1 ];
  102.    
  103.     formatex( sText, charsmax( sText ), "SELECT * FROM `%s` WHERE authid = ^"%s^";", g_sTable, g_sAuthid[ iId ] );
  104.     iArray[ 0 ] = iId;
  105.    
  106.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sText, iArray, sizeof( iArray ) );
  107. }
  108.  
  109. public ThreadHandler( iFailState, Handle:iQuery, const sErrorMsg[ ], iErrorCode, const iARRAY[ ], iArraySize, Float:fQueueTime )
  110. {
  111.     if ( iFailState == TQUERY_CONNECT_FAILED )
  112.     {
  113.         set_fail_state( "Nem tudtam csatlakozni az adatbazishoz." );
  114.         return;
  115.     }
  116.     else if ( iFailState == TQUERY_QUERY_FAILED )
  117.     {
  118.         set_fail_state( "Query Error" );
  119.         return;
  120.     }
  121.    
  122.     if ( iErrorCode )
  123.     {
  124.         log_amx( "%i - %s", iErrorCode, sErrorMsg );
  125.         return;
  126.     }
  127.    
  128.     new iId = iARRAY[ 0 ];
  129.     if ( iId )
  130.     {
  131.         if ( SQL_NumResults( iQuery ) > 0 )
  132.         {
  133.             for ( new i; i < ModelsNum; ++i )
  134.             {
  135.                 g_iPokemons[ iId ][ i ] = SQL_ReadResult( iQuery, i + 2 );
  136.                
  137.                 for ( new j; j < 10; ++j )
  138.                 {
  139.                     if ( g_iPokemons[ iId ][ i ] < g_iModels[ j ] ) break;
  140.                     ++g_iLevels[ iId ][ i ];
  141.                 }
  142.             }
  143.         }
  144.         else SaveDatas( iId, 1 );
  145.     }
  146.    
  147.     return;
  148. }
  149.  
  150. public cmdShowMyPokemons( iId )
  151. {
  152.     static iLen = 0, sMotd[ 1024 ], iMotdLen = charsmax( sMotd );
  153.        
  154.     iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><body bgcolor=#000000><font color=#FFB000><pre>%-22.22s %-22.22s %6s^n^n", "PokĂ©mon", "MennyisĂ©g", "Szint" );
  155.    
  156.     for ( new i; i < ModelsNum; ++i )
  157.         iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "%-22.22s %-22.22d %6d\n", g_sClass[ i ], g_iPokemons[ iId ][ i ], g_iLevels[ iId ][ i ] );
  158.    
  159.     iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "^nParancsok:^n/poke  -- PokĂ©labda vásárlás (2000$).^n/pokemon -- PokĂ©monjaid megtekintĂ©se." );
  160.    
  161.     show_motd( iId, sMotd, "PokĂ©monjaid" );
  162. }
  163.  
  164. public cmdBuyPokeBall( iId )
  165. {
  166.     if ( !is_user_alive( iId ) ) return;
  167.    
  168.     if ( user_has_weapon( iId, CSW_SMOKEGRENADE ) )
  169.     {
  170.         ChatColor( iId, "Már van pokĂ©labdád!" );
  171.         return;
  172.     }
  173.    
  174.     static iMoney;
  175.     iMoney = fm_get_user_money( iId );
  176.    
  177.     if ( iMoney < 2000 )
  178.     {
  179.         ChatColor( iId, "Nincs elĂ©g pĂ©nzed (2000$)!" );
  180.         return;
  181.     }
  182.    
  183.     ChatColor( iId, "Sikeresen vásároltál egy pokĂ©labdát!" );
  184.    
  185.     give_item( iId, "weapon_smokegrenade" );
  186.    
  187.     iMoney -= 2000;
  188.    
  189.     fm_set_user_money( iId, iMoney );
  190.    
  191.     return;
  192. }
  193.  
  194. public eCurWeapon( iId )
  195. {
  196.     if ( !is_user_alive( iId ) ) return PLUGIN_CONTINUE;
  197.  
  198.     if ( read_data( 2 ) != CSW_SMOKEGRENADE ) return PLUGIN_CONTINUE;
  199.  
  200.     set_pev( iId, pev_viewmodel, g_iVAllocModel );
  201.     set_pev( iId, pev_weaponmodel, g_iPAllocModel );
  202.  
  203.     return PLUGIN_CONTINUE;
  204. }
  205.  
  206. public FwThinkFakeSmoke( iEntity ) {
  207.     if( !pev_valid( iEntity ) )
  208.         return PLUGIN_CONTINUE;
  209.    
  210.     engfunc( EngFunc_RemoveEntity, iEntity );
  211.    
  212.     return PLUGIN_CONTINUE;
  213. }
  214.  
  215. public grenade_throw( iId, iEntity, iWeapId )
  216. {
  217.     if ( !is_user_connected( iId ) || iWeapId != CSW_SMOKEGRENADE ) return PLUGIN_CONTINUE;
  218.  
  219.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ 9 ] );
  220.    
  221.     message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
  222.     write_byte( TE_BEAMFOLLOW );
  223.     write_short( iEntity );
  224.     write_short( g_iTrail );
  225.     write_byte( 10 );
  226.     write_byte( 5 );
  227.     write_byte( 255 );
  228.     write_byte( 0 );
  229.     write_byte( 0 );
  230.     write_byte( 192 );
  231.     message_end( );
  232.  
  233.     return PLUGIN_CONTINUE;
  234. }
  235.  
  236. public fwEmitSound( iEntity, iChannel, const sSample[ ] )
  237. {  
  238.     if ( GetGrenadeType( iEntity ) )
  239.     {
  240.         if ( containi( sSample, "grenade_hit" ) != -1 )
  241.             emit_sound( iEntity, CHAN_AUTO, "PokeEvent_by_Demon/pokebounce.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
  242.         else if ( equal( sSample[ 8 ], "sg_explode", 10 ) )
  243.             FindPokemons( iEntity );
  244.     }
  245. }
  246.  
  247. public FindPokemons( iOrigEnt )
  248. {
  249.     // cache origin, angles and model
  250.     new Float: fOrigin[ 3 ], Float: fAngles[ 3 ], sModel[ 64 ], iOwner;
  251.     iOwner = entity_get_edict( iOrigEnt, EV_ENT_owner );
  252.     entity_get_vector( iOrigEnt, EV_VEC_origin, fOrigin );
  253.     entity_get_vector( iOrigEnt, EV_VEC_angles, fAngles );
  254.     entity_get_string( iOrigEnt, EV_SZ_model, sModel, charsmax( sModel ) );
  255.    
  256.     // remove entity from world
  257.     entity_set_vector( iOrigEnt, EV_VEC_origin, Float: { 9999.9, 9999.9, 9999.9 } );
  258.     entity_set_int( iOrigEnt, EV_INT_flags, FL_KILLME );
  259.    
  260.     // create new entity
  261.     new iEntity = create_entity( "info_target" );
  262.     if ( iEntity > 0 )
  263.     {
  264.         entity_set_string( iEntity, EV_SZ_classname, g_sClassName );
  265.        
  266.         entity_set_origin( iEntity, fOrigin );
  267.         entity_set_vector( iEntity, EV_VEC_angles, fAngles );
  268.        
  269.         entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_TOSS );
  270.         entity_set_int( iEntity, EV_INT_solid, SOLID_BBOX );
  271.        
  272.         entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 1.3 );
  273.        
  274.         entity_set_model( iEntity, sModel );
  275.        
  276.         emit_sound( iEntity, CHAN_AUTO, "PokeEvent_by_Demon/pokedraw.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
  277.        
  278.         set_task( 0.3, "RingEffect", iEntity, _, _, "b" );
  279.        
  280.         if ( !is_user_alive( iOwner ) )
  281.             return;
  282.        
  283.         static sName[ 32 ];
  284.    
  285.         get_user_name( iOwner, sName, charsmax( sName ) );
  286.        
  287.         new iTarget = -1, iFound = 0, sClassName[ 33 ];
  288.         while ( ( iTarget = find_ent_in_sphere( iTarget, fOrigin, 60.0 ) ) )
  289.         {
  290.             pev( iTarget, pev_classname, sClassName, 32 );
  291.            
  292.             for ( new i = 0; i < ModelsNum; ++i )
  293.             {
  294.                 if ( equal( sClassName, g_sClass[ i ] ) )
  295.                 {
  296.                     ++g_iPokemons[ iOwner ][ i ];
  297.                    
  298.                     if ( g_iPokemons[ iOwner ][ i ] >= g_iModels[ g_iLevels[ iOwner ][ i ] ] )
  299.                         ++g_iLevels[ iOwner ][ i ];
  300.                    
  301.                     ChatColor( 0, "^3%s^1 befogott egy ^3%s ^1pokĂ©mont.", sName, g_sClass[ i ] );
  302.                     iFound = 1;
  303.                     break;
  304.                 }
  305.             }
  306.             if ( iFound ) break;
  307.         }
  308.         if ( iFound )
  309.         {
  310.             entity_set_string( iTarget, EV_SZ_classname, g_sClassName2 );
  311.             set_task( 1.0, "RemoveEntity", iTarget );
  312.             fm_set_user_money( iOwner, fm_get_user_money( iOwner ) + 1000 );
  313.         }
  314.         else ChatColor( iOwner, "Nem sikerĂĽlt befogni egy pokĂ©mont sem." );
  315.        
  316.         SaveDatas( iOwner, 2 );
  317.     }
  318.     return;
  319. }
  320.  
  321. public RemoveEntity( iEntity ) { if ( pev_valid( iEntity ) ) engfunc( EngFunc_RemoveEntity, iEntity ); }
  322.  
  323. public RingEffect( iEntity )
  324. {
  325.     if ( !pev_valid( iEntity ) )
  326.     {
  327.         remove_task( iEntity );
  328.         return;
  329.     }
  330.    
  331.     new Float: fOrigin[ 3 ]
  332.     entity_get_vector( iEntity, EV_VEC_origin, fOrigin );
  333.     // A ring effect
  334.     engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0 );
  335.     write_byte( TE_BEAMCYLINDER ); // TE id
  336.     engfunc( EngFunc_WriteCoord, fOrigin[0] ); // x
  337.     engfunc( EngFunc_WriteCoord, fOrigin[1] ); // y
  338.     engfunc( EngFunc_WriteCoord, fOrigin[2] ); // z
  339.     engfunc( EngFunc_WriteCoord, fOrigin[0] ); // x axis
  340.     engfunc( EngFunc_WriteCoord, fOrigin[1] ); // y axis
  341.     engfunc( EngFunc_WriteCoord, fOrigin[2] + 50.0 ); // z axis
  342.     write_short( g_iRing ); // sprite
  343.     write_byte( 0 ); // startframe
  344.     write_byte( 0 ); // framerate
  345.     write_byte( 8 ); // life
  346.     write_byte( 25 ); // width
  347.     write_byte( 0 ); // noise
  348.     write_byte( 255 ); // red
  349.     write_byte( 0 ); // green
  350.     write_byte( 0 ); // blue
  351.     write_byte( 255 ); // brightness
  352.     write_byte( 0 ); // speed
  353.     message_end( );
  354. }
  355.  
  356. public cmdCreate( iId, iLevel, iCid )
  357. {
  358.     if ( !cmd_access( iId, iLevel, iCid, 2 ) ) return;
  359.  
  360.     static sPoke[ 8 ], iPoke, Float: fOrigin[3], Float: fAngles[ 3 ], iEntity, sName[ 32 ];
  361.     read_argv( 1, sPoke, charsmax( sPoke ) );
  362.    
  363.     iPoke = str_to_num( sPoke );
  364.    
  365.     if ( iPoke < 0 || iPoke > 6 ) iPoke = 6;
  366.    
  367.     pev( iId, pev_origin, fOrigin );
  368.     pev( iId, pev_angles, fAngles );
  369.  
  370.     fOrigin[ 2 ] += -34.0;
  371.     fOrigin[ 1 ] += 34.0;
  372.  
  373.     iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  374.  
  375.     if ( !pev_valid( iEntity ) ) return;
  376.    
  377.     set_pev( iEntity, pev_classname, g_sClass[ iPoke ] );
  378.     set_pev( iEntity, pev_angles, fAngles );
  379.  
  380.     engfunc( EngFunc_SetOrigin, iEntity, fOrigin );
  381.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ iPoke ] );
  382.    
  383.     get_user_name( iId, sName, charsmax( sName ) );
  384.    
  385.     ChatColor( 0, "^3%s^1 kidobott egy ^3%s ^1pokĂ©mont.", sName, g_sClass[ iPoke ] );
  386.  
  387.     ExecuteHam( Ham_Spawn, iEntity );
  388.  
  389.     set_pev( iEntity, pev_solid, SOLID_BBOX );
  390.     set_pev( iEntity, pev_movetype, MOVETYPE_NONE );
  391.  
  392.     engfunc( EngFunc_SetSize, iEntity, Float:{ -8.320000, -8.070000, -0.000000 }, Float:{ 8.350000, 16.900000, 36.220001 } );
  393.     engfunc( EngFunc_DropToFloor, iEntity );
  394.    
  395.     return;
  396. }
  397.  
  398. public fwHamKilled( iVictim, iKiller, iShoudGib )
  399. {
  400.     if ( !IS_PLAYER( iKiller ) ) return;
  401.     if ( iKiller == iVictim ) return;
  402.    
  403.     new Float: fOrigin[3];
  404.     pev( iVictim, pev_origin, fOrigin );
  405.  
  406.     fOrigin[ 2 ] += -34.0;
  407.  
  408.     new Float: fAngles[ 3 ];
  409.     pev( iVictim, pev_angles, fAngles );
  410.  
  411.     new iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  412.  
  413.     if( !pev_valid( iEntity ) ) return;
  414.    
  415.     new iRand = random_num( 1, 1000 );
  416.    
  417.     if ( iRand < 100 ) iRand = 0;
  418.     else if ( iRand < 200 ) iRand = 1;
  419.     else if ( iRand < 300 ) iRand = 2;
  420.     else if ( iRand < 400 ) iRand = 3;
  421.     else if ( iRand < 500 ) iRand = 4;
  422.     else if ( iRand < 600 ) iRand = 5;
  423.     else iRand = 6;
  424.    
  425.     set_pev( iEntity, pev_classname, g_sClass[ iRand ] );
  426.     set_pev( iEntity, pev_angles, fAngles );
  427.  
  428.     engfunc( EngFunc_SetOrigin, iEntity, fOrigin );
  429.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ iRand ] );
  430.    
  431.     /*static sName[ 32 ];
  432.    
  433.     get_user_name( iVictim, sName, charsmax( sName ) );
  434.    
  435.     ChatColor( 0, "^3%s^1 elvesztette ^3%s ^1pokĂ©monját, lehetõsĂ©ged van befogni.", sName, g_sClass[ iRand ] );*/
  436.  
  437.     ExecuteHam( Ham_Spawn, iEntity );
  438.  
  439.     set_pev( iEntity, pev_solid, SOLID_BBOX );
  440.     set_pev( iEntity, pev_movetype, MOVETYPE_NONE );
  441.  
  442.     engfunc( EngFunc_SetSize, iEntity, Float:{ -8.320000, -8.070000, -0.000000 }, Float:{ 8.350000, 16.900000, 36.220001 } );
  443.     engfunc( EngFunc_DropToFloor, iEntity );
  444.    
  445.     return;
  446. }
  447.  
  448. public fwSpawn( iId )
  449. {
  450.     if ( is_user_connected( iId ) && is_user_alive( iId ) )
  451.         give_item( iId, "weapon_smokegrenade" );
  452. }
  453.  
  454. public client_putinserver( iId )
  455. {
  456.     arrayset( g_iPokemons[ iId ], 0, ModelsNum );
  457.    
  458.     if ( is_user_bot( iId ) || is_user_hltv( iId ) ) return;
  459.    
  460.     get_user_authid( iId, g_sAuthid[ iId ], charsmax( g_sAuthid[ ] ) );
  461.    
  462.     arrayset( g_iLevels[ iId ], 0, ModelsNum );
  463.    
  464.     LoadDatas( iId );
  465. }
  466.  
  467. public client_disconnect( iId )
  468. {
  469.     if ( is_user_bot( iId ) || is_user_hltv( iId ) ) return;
  470.    
  471.     SaveDatas( iId, 2 );
  472. }
  473.  
  474. public eRoundStart( )
  475. {
  476.     for ( new i; i < ModelsNum; ++i ) RemoveEntities( g_sClass[ i ] );
  477.    
  478.     RemoveEntities( g_sClassName2 );
  479. }
  480.  
  481. public RemoveEntities( const sClassName[ ] )
  482. {
  483.     new iEntity = FM_NULLENT;
  484.  
  485.     while ( ( iEntity = engfunc( EngFunc_FindEntityByString, FM_NULLENT, "classname", sClassName ) ) )
  486.         engfunc( EngFunc_RemoveEntity, iEntity );
  487. }
  488.  
  489. public plugin_end( ) { SQL_FreeHandle( g_iSqlTuple ); }
  490.  
  491. stock fm_get_user_money( iId ) { return get_pdata_int( iId, OFFSET_MONEY ); }
  492.  
  493. stock fm_set_user_money( iId, iMoney )
  494. {
  495.     set_pdata_int( iId, OFFSET_MONEY, iMoney );
  496.  
  497.     message_begin( MSG_ONE, g_iMsgMoney, { 0, 0, 0 }, iId );
  498.     write_long( iMoney );
  499.     write_byte( 1 );
  500.     message_end( );
  501. }
  502.  
  503. stock get_user_name2( iId, sName[ ], iLen )
  504. {
  505.     get_user_name( iId, sName, iLen );
  506.     replace_all( sName, iLen, "'", "*" );
  507.     replace_all( sName, iLen, "^"", "*" );
  508.     replace_all( sName, iLen, "`", "*" );
  509. }
  510.  
  511. stock GetGrenadeType( iEntity )
  512. {
  513.     if ( !pev_valid( iEntity ) )
  514.         return 0;
  515.    
  516.     new sModel[ 64 ];
  517.     pev( iEntity, pev_model, sModel, charsmax( sModel ) );
  518.    
  519.     if ( contain( sModel, "pokeball.mdl" ) != -1 ) return 1;
  520.    
  521.     return 0;
  522. }
  523.  
  524. stock ChatColor( iId, const sMessage[ ], any:... )
  525. {
  526.     static iPlrNum, iPlayers[ 32 ], sMsg[ 256 ], iIdMsg, iMsgLen = charsmax( sMsg );
  527.    
  528.     vformat( sMsg, iMsgLen, sMessage, 3 );
  529.     format( sMsg, iMsgLen, "^4[%s]^1 %s", g_sPrefix, sMsg );
  530.  
  531.     if ( !iIdMsg ) iIdMsg = get_user_msgid( "SayText" );
  532.  
  533.     if ( iId )
  534.     {
  535.         iPlayers[ 0 ] = iId;
  536.         iPlrNum = 1;
  537.     }
  538.     else get_players( iPlayers, iPlrNum, "ch" );
  539.  
  540.     for ( new i, iPId; i < iPlrNum; ++i )
  541.     {
  542.         iPId = iPlayers[ i ];
  543.        
  544.         if ( !is_user_connected( iPId ) ) continue;
  545.        
  546.         message_begin( MSG_ONE, iIdMsg, _, iPId );
  547.         write_byte( iPId );
  548.         write_string( sMsg );
  549.         message_end( );
  550.     }
  551. }

_________________
Kép

Ők köszönték meg theglorious nek ezt a hozzászólást: *GrafitY* (2016.12.05. 18:38)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.05. 19:28 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Most meg majd ez fog menni mindenhol :D

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.05. 19:40 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2012.07.02. 17:41
Hozzászólások: 1641
Megköszönt másnak: 121 alkalommal
Megköszönték neki: 247 alkalommal
exodus írta:
Most meg majd ez fog menni mindenhol :D

Kétlem, ha csak nem csinálnak belőle egy kész modot :D Nekünk nem sikerült, de valakinek hátha.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.08. 14:59 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
theglorious írta:
exodus írta:
Most meg majd ez fog menni mindenhol :D

Kétlem, ha csak nem csinálnak belőle egy kész modot :D Nekünk nem sikerült, de valakinek hátha.

Mozognak a pokemonok vagy csak random ledobalja oket?

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.08. 16:28 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2012.07.02. 17:41
Hozzászólások: 1641
Megköszönt másnak: 121 alkalommal
Megköszönték neki: 247 alkalommal
DeteCT0R írta:
theglorious írta:
exodus írta:
Most meg majd ez fog menni mindenhol :D

Kétlem, ha csak nem csinálnak belőle egy kész modot :D Nekünk nem sikerült, de valakinek hátha.

Mozognak a pokemonok vagy csak random ledobalja oket?

Random a hullákból.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.09. 14:30 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.03.03. 15:51
Hozzászólások: 453
Megköszönt másnak: 106 alkalommal
Megköszönték neki: 7 alkalommal
theglorious írta:
Üdv, idő és hozzáértés hiány miatt osztom meg veletek a pokémon mód/event plugint. Kezdetleges, befejezetlen! Készítő: demon
Modellekért és tesztért írj privátban! Nem plugin feltöltésnek szántam! Akinek kell az használja/fejlessze.
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < hamsandwich >
  4. #include < fakemeta >
  5. #include < engine >
  6. #include < fun >
  7. #include < sqlx >
  8.  
  9. #define OFFSET_MONEY 115
  10. #define IS_PLAYER(%1) (0 < %1 <= g_iMaxPlayers)
  11. #define ModelsNum 7
  12.  
  13. new const g_sPrefix[ ] = "Devastators";
  14.  
  15. new const g_sClassName[ ] = "pokeball";
  16. new const g_sClassName2[ ] = "pokemon";
  17. new const g_sTable[ ] = "poke_event";
  18. new const g_sSQL_INFOS[ ][ ] =
  19. {
  20.     "",    // HOST
  21.     "",     // USERNAME
  22.     "",     // PASSWORD
  23.     ""      // DATABASE
  24. };
  25. new const g_sClass[ ModelsNum ][ ] = { "Pikachu", "Arcanine", "Charizard", "Psyduck", "Piplup", "Squirtle", "Snorlax" };
  26. new const g_iModels[ 11 ] = { 200, 300, 500, 700, 1000, 1200, 1500, 1800, 2200, 2500, 10000000 };
  27. new const g_sModels[ ][ ] =
  28. {
  29.     "models/PokeEvent_by_Demon/Poke_Pikachu.mdl",
  30.     "models/PokeEvent_by_Demon/Poke_Arcanine.mdl",
  31.     "models/PokeEvent_by_Demon/Poke_Charizard.mdl",
  32.     "models/PokeEvent_by_Demon/Poke_Psyduck.mdl",
  33.     "models/PokeEvent_by_Demon/Poke_Piplup.mdl",
  34.     "models/PokeEvent_by_Demon/Poke_Squirtle.mdl",
  35.     "models/PokeEvent_by_Demon/Poke_Snorlax.mdl",
  36.     "models/PokeEvent_by_Demon/v_pokeball.mdl",
  37.     "models/PokeEvent_by_Demon/p_pokeball.mdl",
  38.     "models/PokeEvent_by_Demon/w_pokeball.mdl"
  39. }
  40.  
  41. new Handle: g_iSqlTuple;
  42. new g_iMaxPlayers, g_iMsgMoney, g_iTrail, g_iRing, g_iVAllocModel, g_iPAllocModel;
  43. new g_iPokemons[ 33 ][ ModelsNum ], g_iLevels[ 33 ][ ModelsNum ], g_sAuthid[ 33 ][ 32 ];
  44.  
  45. public plugin_precache( )
  46. {
  47.     for ( new i; i < sizeof g_sModels; ++i ) precache_model( g_sModels[ i ] );
  48.     g_iTrail = precache_model( "sprites/smoke.spr" );
  49.     g_iRing = precache_model( "sprites/shockwave.spr" );
  50.     precache_sound( "PokeEvent_by_Demon/pokedraw.wav" );
  51.     precache_sound( "PokeEvent_by_Demon/pokebounce.wav" );
  52.     precache_sound( "PokeEvent_by_Demon/pokepin.wav" );
  53. }
  54.  
  55. public plugin_init( )
  56. {  
  57.     g_iMaxPlayers = get_maxplayers( );
  58.     g_iMsgMoney = get_user_msgid( "Money" );
  59.    
  60.     RegisterHam( Ham_Killed, "player", "fwHamKilled" );
  61.     RegisterHam( Ham_Spawn, "player", "fwSpawn", 1 );
  62.     register_forward( FM_EmitSound, "fwEmitSound" );
  63.    
  64.     register_event( "HLTV", "eRoundStart", "a", "1=0", "2=0" );
  65.     register_event( "TextMsg", "eRoundStart", "a", "2&#Game_C", "2&#Game_w" );
  66.     register_event( "CurWeapon", "eCurWeapon","be", "1=1" );
  67.    
  68.     register_think( g_sClassName, "FwThinkFakeSmoke" );
  69.    
  70.     g_iVAllocModel = engfunc( EngFunc_AllocString, g_sModels[ 7 ] );
  71.     g_iPAllocModel = engfunc( EngFunc_AllocString, g_sModels[ 8 ] );
  72.    
  73.     g_iSqlTuple = SQL_MakeDbTuple( g_sSQL_INFOS[ 0 ], g_sSQL_INFOS[ 1 ], g_sSQL_INFOS[ 2 ], g_sSQL_INFOS[ 3 ] );
  74.  
  75.     new sThread[ 512 ];
  76.     formatex( sThread, charsmax( sThread ), "CREATE TABLE IF NOT EXISTS `%s` (`authid` varchar(32) NOT NULL, `username` varchar(32) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `%s` INT(11) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY);", g_sTable, g_sClass[ 0 ], g_sClass[ 1 ], g_sClass[ 2 ], g_sClass[ 3 ], g_sClass[ 4 ], g_sClass[ 5 ], g_sClass[ 6 ] );
  77.    
  78.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sThread, { 0 }, 1 );
  79.    
  80.     register_concmd( "say /pokemon", "cmdShowMyPokemons" );
  81.     register_clcmd( "say /poke","cmdBuyPokeBall" );
  82.     register_clcmd( "create_poke", "cmdCreate", ADMIN_RCON, "<model (0-6)> - create pokemon." );
  83. }
  84.  
  85. public SaveDatas( iId, iMode )
  86. {
  87.     static sText[ 512 ], sName[ 32 ];
  88.     get_user_name2( iId, sName, charsmax( sName ) );
  89.    
  90.     if ( iMode == 1 ) formatex( sText, charsmax( sText ), "INSERT INTO `%s` (`authid`,`username`) VALUES (^"%s^", ^"%s^");", g_sTable, g_sAuthid[ iId ], sName );
  91.     else formatex( sText, charsmax( sText ), "UPDATE `%s` SET authid = ^"%s^", username = ^"%s^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^", %s = ^"%d^" WHERE authid = ^"%s^";",
  92.         g_sTable, g_sAuthid[ iId ], sName, g_sClass[ 0 ], g_iPokemons[ iId ][ 0 ], g_sClass[ 1 ], g_iPokemons[ iId ][ 1 ], g_sClass[ 2 ],
  93.         g_iPokemons[ iId ][ 2 ], g_sClass[ 3 ], g_iPokemons[ iId ][ 3 ], g_sClass[ 4 ], g_iPokemons[ iId ][ 4 ], g_sClass[ 5 ], g_iPokemons[ iId ][ 5 ],
  94.         g_sClass[ 6 ], g_iPokemons[ iId ][ 6 ], g_sAuthid[ iId ] );
  95.  
  96.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sText, { 0 }, 1 );
  97. }
  98.  
  99. public LoadDatas( iId )
  100. {
  101.     static sText[ 128 ], iArray[ 1 ];
  102.    
  103.     formatex( sText, charsmax( sText ), "SELECT * FROM `%s` WHERE authid = ^"%s^";", g_sTable, g_sAuthid[ iId ] );
  104.     iArray[ 0 ] = iId;
  105.    
  106.     SQL_ThreadQuery( g_iSqlTuple, "ThreadHandler", sText, iArray, sizeof( iArray ) );
  107. }
  108.  
  109. public ThreadHandler( iFailState, Handle:iQuery, const sErrorMsg[ ], iErrorCode, const iARRAY[ ], iArraySize, Float:fQueueTime )
  110. {
  111.     if ( iFailState == TQUERY_CONNECT_FAILED )
  112.     {
  113.         set_fail_state( "Nem tudtam csatlakozni az adatbazishoz." );
  114.         return;
  115.     }
  116.     else if ( iFailState == TQUERY_QUERY_FAILED )
  117.     {
  118.         set_fail_state( "Query Error" );
  119.         return;
  120.     }
  121.    
  122.     if ( iErrorCode )
  123.     {
  124.         log_amx( "%i - %s", iErrorCode, sErrorMsg );
  125.         return;
  126.     }
  127.    
  128.     new iId = iARRAY[ 0 ];
  129.     if ( iId )
  130.     {
  131.         if ( SQL_NumResults( iQuery ) > 0 )
  132.         {
  133.             for ( new i; i < ModelsNum; ++i )
  134.             {
  135.                 g_iPokemons[ iId ][ i ] = SQL_ReadResult( iQuery, i + 2 );
  136.                
  137.                 for ( new j; j < 10; ++j )
  138.                 {
  139.                     if ( g_iPokemons[ iId ][ i ] < g_iModels[ j ] ) break;
  140.                     ++g_iLevels[ iId ][ i ];
  141.                 }
  142.             }
  143.         }
  144.         else SaveDatas( iId, 1 );
  145.     }
  146.    
  147.     return;
  148. }
  149.  
  150. public cmdShowMyPokemons( iId )
  151. {
  152.     static iLen = 0, sMotd[ 1024 ], iMotdLen = charsmax( sMotd );
  153.        
  154.     iLen = formatex( sMotd, iMotdLen, "<meta charset=utf-8><body bgcolor=#000000><font color=#FFB000><pre>%-22.22s %-22.22s %6s^n^n", "PokĂ©mon", "MennyisĂ©g", "Szint" );
  155.    
  156.     for ( new i; i < ModelsNum; ++i )
  157.         iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "%-22.22s %-22.22d %6d\n", g_sClass[ i ], g_iPokemons[ iId ][ i ], g_iLevels[ iId ][ i ] );
  158.    
  159.     iLen += formatex( sMotd[ iLen ], iMotdLen - iLen, "^nParancsok:^n/poke  -- PokĂ©labda vásárlás (2000$).^n/pokemon -- PokĂ©monjaid megtekintĂ©se." );
  160.    
  161.     show_motd( iId, sMotd, "PokĂ©monjaid" );
  162. }
  163.  
  164. public cmdBuyPokeBall( iId )
  165. {
  166.     if ( !is_user_alive( iId ) ) return;
  167.    
  168.     if ( user_has_weapon( iId, CSW_SMOKEGRENADE ) )
  169.     {
  170.         ChatColor( iId, "Már van pokĂ©labdád!" );
  171.         return;
  172.     }
  173.    
  174.     static iMoney;
  175.     iMoney = fm_get_user_money( iId );
  176.    
  177.     if ( iMoney < 2000 )
  178.     {
  179.         ChatColor( iId, "Nincs elĂ©g pĂ©nzed (2000$)!" );
  180.         return;
  181.     }
  182.    
  183.     ChatColor( iId, "Sikeresen vásároltál egy pokĂ©labdát!" );
  184.    
  185.     give_item( iId, "weapon_smokegrenade" );
  186.    
  187.     iMoney -= 2000;
  188.    
  189.     fm_set_user_money( iId, iMoney );
  190.    
  191.     return;
  192. }
  193.  
  194. public eCurWeapon( iId )
  195. {
  196.     if ( !is_user_alive( iId ) ) return PLUGIN_CONTINUE;
  197.  
  198.     if ( read_data( 2 ) != CSW_SMOKEGRENADE ) return PLUGIN_CONTINUE;
  199.  
  200.     set_pev( iId, pev_viewmodel, g_iVAllocModel );
  201.     set_pev( iId, pev_weaponmodel, g_iPAllocModel );
  202.  
  203.     return PLUGIN_CONTINUE;
  204. }
  205.  
  206. public FwThinkFakeSmoke( iEntity ) {
  207.     if( !pev_valid( iEntity ) )
  208.         return PLUGIN_CONTINUE;
  209.    
  210.     engfunc( EngFunc_RemoveEntity, iEntity );
  211.    
  212.     return PLUGIN_CONTINUE;
  213. }
  214.  
  215. public grenade_throw( iId, iEntity, iWeapId )
  216. {
  217.     if ( !is_user_connected( iId ) || iWeapId != CSW_SMOKEGRENADE ) return PLUGIN_CONTINUE;
  218.  
  219.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ 9 ] );
  220.    
  221.     message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
  222.     write_byte( TE_BEAMFOLLOW );
  223.     write_short( iEntity );
  224.     write_short( g_iTrail );
  225.     write_byte( 10 );
  226.     write_byte( 5 );
  227.     write_byte( 255 );
  228.     write_byte( 0 );
  229.     write_byte( 0 );
  230.     write_byte( 192 );
  231.     message_end( );
  232.  
  233.     return PLUGIN_CONTINUE;
  234. }
  235.  
  236. public fwEmitSound( iEntity, iChannel, const sSample[ ] )
  237. {  
  238.     if ( GetGrenadeType( iEntity ) )
  239.     {
  240.         if ( containi( sSample, "grenade_hit" ) != -1 )
  241.             emit_sound( iEntity, CHAN_AUTO, "PokeEvent_by_Demon/pokebounce.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
  242.         else if ( equal( sSample[ 8 ], "sg_explode", 10 ) )
  243.             FindPokemons( iEntity );
  244.     }
  245. }
  246.  
  247. public FindPokemons( iOrigEnt )
  248. {
  249.     // cache origin, angles and model
  250.     new Float: fOrigin[ 3 ], Float: fAngles[ 3 ], sModel[ 64 ], iOwner;
  251.     iOwner = entity_get_edict( iOrigEnt, EV_ENT_owner );
  252.     entity_get_vector( iOrigEnt, EV_VEC_origin, fOrigin );
  253.     entity_get_vector( iOrigEnt, EV_VEC_angles, fAngles );
  254.     entity_get_string( iOrigEnt, EV_SZ_model, sModel, charsmax( sModel ) );
  255.    
  256.     // remove entity from world
  257.     entity_set_vector( iOrigEnt, EV_VEC_origin, Float: { 9999.9, 9999.9, 9999.9 } );
  258.     entity_set_int( iOrigEnt, EV_INT_flags, FL_KILLME );
  259.    
  260.     // create new entity
  261.     new iEntity = create_entity( "info_target" );
  262.     if ( iEntity > 0 )
  263.     {
  264.         entity_set_string( iEntity, EV_SZ_classname, g_sClassName );
  265.        
  266.         entity_set_origin( iEntity, fOrigin );
  267.         entity_set_vector( iEntity, EV_VEC_angles, fAngles );
  268.        
  269.         entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_TOSS );
  270.         entity_set_int( iEntity, EV_INT_solid, SOLID_BBOX );
  271.        
  272.         entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 1.3 );
  273.        
  274.         entity_set_model( iEntity, sModel );
  275.        
  276.         emit_sound( iEntity, CHAN_AUTO, "PokeEvent_by_Demon/pokedraw.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
  277.        
  278.         set_task( 0.3, "RingEffect", iEntity, _, _, "b" );
  279.        
  280.         if ( !is_user_alive( iOwner ) )
  281.             return;
  282.        
  283.         static sName[ 32 ];
  284.    
  285.         get_user_name( iOwner, sName, charsmax( sName ) );
  286.        
  287.         new iTarget = -1, iFound = 0, sClassName[ 33 ];
  288.         while ( ( iTarget = find_ent_in_sphere( iTarget, fOrigin, 60.0 ) ) )
  289.         {
  290.             pev( iTarget, pev_classname, sClassName, 32 );
  291.            
  292.             for ( new i = 0; i < ModelsNum; ++i )
  293.             {
  294.                 if ( equal( sClassName, g_sClass[ i ] ) )
  295.                 {
  296.                     ++g_iPokemons[ iOwner ][ i ];
  297.                    
  298.                     if ( g_iPokemons[ iOwner ][ i ] >= g_iModels[ g_iLevels[ iOwner ][ i ] ] )
  299.                         ++g_iLevels[ iOwner ][ i ];
  300.                    
  301.                     ChatColor( 0, "^3%s^1 befogott egy ^3%s ^1pokĂ©mont.", sName, g_sClass[ i ] );
  302.                     iFound = 1;
  303.                     break;
  304.                 }
  305.             }
  306.             if ( iFound ) break;
  307.         }
  308.         if ( iFound )
  309.         {
  310.             entity_set_string( iTarget, EV_SZ_classname, g_sClassName2 );
  311.             set_task( 1.0, "RemoveEntity", iTarget );
  312.             fm_set_user_money( iOwner, fm_get_user_money( iOwner ) + 1000 );
  313.         }
  314.         else ChatColor( iOwner, "Nem sikerĂĽlt befogni egy pokĂ©mont sem." );
  315.        
  316.         SaveDatas( iOwner, 2 );
  317.     }
  318.     return;
  319. }
  320.  
  321. public RemoveEntity( iEntity ) { if ( pev_valid( iEntity ) ) engfunc( EngFunc_RemoveEntity, iEntity ); }
  322.  
  323. public RingEffect( iEntity )
  324. {
  325.     if ( !pev_valid( iEntity ) )
  326.     {
  327.         remove_task( iEntity );
  328.         return;
  329.     }
  330.    
  331.     new Float: fOrigin[ 3 ]
  332.     entity_get_vector( iEntity, EV_VEC_origin, fOrigin );
  333.     // A ring effect
  334.     engfunc( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0 );
  335.     write_byte( TE_BEAMCYLINDER ); // TE id
  336.     engfunc( EngFunc_WriteCoord, fOrigin[0] ); // x
  337.     engfunc( EngFunc_WriteCoord, fOrigin[1] ); // y
  338.     engfunc( EngFunc_WriteCoord, fOrigin[2] ); // z
  339.     engfunc( EngFunc_WriteCoord, fOrigin[0] ); // x axis
  340.     engfunc( EngFunc_WriteCoord, fOrigin[1] ); // y axis
  341.     engfunc( EngFunc_WriteCoord, fOrigin[2] + 50.0 ); // z axis
  342.     write_short( g_iRing ); // sprite
  343.     write_byte( 0 ); // startframe
  344.     write_byte( 0 ); // framerate
  345.     write_byte( 8 ); // life
  346.     write_byte( 25 ); // width
  347.     write_byte( 0 ); // noise
  348.     write_byte( 255 ); // red
  349.     write_byte( 0 ); // green
  350.     write_byte( 0 ); // blue
  351.     write_byte( 255 ); // brightness
  352.     write_byte( 0 ); // speed
  353.     message_end( );
  354. }
  355.  
  356. public cmdCreate( iId, iLevel, iCid )
  357. {
  358.     if ( !cmd_access( iId, iLevel, iCid, 2 ) ) return;
  359.  
  360.     static sPoke[ 8 ], iPoke, Float: fOrigin[3], Float: fAngles[ 3 ], iEntity, sName[ 32 ];
  361.     read_argv( 1, sPoke, charsmax( sPoke ) );
  362.    
  363.     iPoke = str_to_num( sPoke );
  364.    
  365.     if ( iPoke < 0 || iPoke > 6 ) iPoke = 6;
  366.    
  367.     pev( iId, pev_origin, fOrigin );
  368.     pev( iId, pev_angles, fAngles );
  369.  
  370.     fOrigin[ 2 ] += -34.0;
  371.     fOrigin[ 1 ] += 34.0;
  372.  
  373.     iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  374.  
  375.     if ( !pev_valid( iEntity ) ) return;
  376.    
  377.     set_pev( iEntity, pev_classname, g_sClass[ iPoke ] );
  378.     set_pev( iEntity, pev_angles, fAngles );
  379.  
  380.     engfunc( EngFunc_SetOrigin, iEntity, fOrigin );
  381.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ iPoke ] );
  382.    
  383.     get_user_name( iId, sName, charsmax( sName ) );
  384.    
  385.     ChatColor( 0, "^3%s^1 kidobott egy ^3%s ^1pokĂ©mont.", sName, g_sClass[ iPoke ] );
  386.  
  387.     ExecuteHam( Ham_Spawn, iEntity );
  388.  
  389.     set_pev( iEntity, pev_solid, SOLID_BBOX );
  390.     set_pev( iEntity, pev_movetype, MOVETYPE_NONE );
  391.  
  392.     engfunc( EngFunc_SetSize, iEntity, Float:{ -8.320000, -8.070000, -0.000000 }, Float:{ 8.350000, 16.900000, 36.220001 } );
  393.     engfunc( EngFunc_DropToFloor, iEntity );
  394.    
  395.     return;
  396. }
  397.  
  398. public fwHamKilled( iVictim, iKiller, iShoudGib )
  399. {
  400.     if ( !IS_PLAYER( iKiller ) ) return;
  401.     if ( iKiller == iVictim ) return;
  402.    
  403.     new Float: fOrigin[3];
  404.     pev( iVictim, pev_origin, fOrigin );
  405.  
  406.     fOrigin[ 2 ] += -34.0;
  407.  
  408.     new Float: fAngles[ 3 ];
  409.     pev( iVictim, pev_angles, fAngles );
  410.  
  411.     new iEntity = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  412.  
  413.     if( !pev_valid( iEntity ) ) return;
  414.    
  415.     new iRand = random_num( 1, 1000 );
  416.    
  417.     if ( iRand < 100 ) iRand = 0;
  418.     else if ( iRand < 200 ) iRand = 1;
  419.     else if ( iRand < 300 ) iRand = 2;
  420.     else if ( iRand < 400 ) iRand = 3;
  421.     else if ( iRand < 500 ) iRand = 4;
  422.     else if ( iRand < 600 ) iRand = 5;
  423.     else iRand = 6;
  424.    
  425.     set_pev( iEntity, pev_classname, g_sClass[ iRand ] );
  426.     set_pev( iEntity, pev_angles, fAngles );
  427.  
  428.     engfunc( EngFunc_SetOrigin, iEntity, fOrigin );
  429.     engfunc( EngFunc_SetModel, iEntity, g_sModels[ iRand ] );
  430.    
  431.     /*static sName[ 32 ];
  432.    
  433.     get_user_name( iVictim, sName, charsmax( sName ) );
  434.    
  435.     ChatColor( 0, "^3%s^1 elvesztette ^3%s ^1pokĂ©monját, lehetõsĂ©ged van befogni.", sName, g_sClass[ iRand ] );*/
  436.  
  437.     ExecuteHam( Ham_Spawn, iEntity );
  438.  
  439.     set_pev( iEntity, pev_solid, SOLID_BBOX );
  440.     set_pev( iEntity, pev_movetype, MOVETYPE_NONE );
  441.  
  442.     engfunc( EngFunc_SetSize, iEntity, Float:{ -8.320000, -8.070000, -0.000000 }, Float:{ 8.350000, 16.900000, 36.220001 } );
  443.     engfunc( EngFunc_DropToFloor, iEntity );
  444.    
  445.     return;
  446. }
  447.  
  448. public fwSpawn( iId )
  449. {
  450.     if ( is_user_connected( iId ) && is_user_alive( iId ) )
  451.         give_item( iId, "weapon_smokegrenade" );
  452. }
  453.  
  454. public client_putinserver( iId )
  455. {
  456.     arrayset( g_iPokemons[ iId ], 0, ModelsNum );
  457.    
  458.     if ( is_user_bot( iId ) || is_user_hltv( iId ) ) return;
  459.    
  460.     get_user_authid( iId, g_sAuthid[ iId ], charsmax( g_sAuthid[ ] ) );
  461.    
  462.     arrayset( g_iLevels[ iId ], 0, ModelsNum );
  463.    
  464.     LoadDatas( iId );
  465. }
  466.  
  467. public client_disconnect( iId )
  468. {
  469.     if ( is_user_bot( iId ) || is_user_hltv( iId ) ) return;
  470.    
  471.     SaveDatas( iId, 2 );
  472. }
  473.  
  474. public eRoundStart( )
  475. {
  476.     for ( new i; i < ModelsNum; ++i ) RemoveEntities( g_sClass[ i ] );
  477.    
  478.     RemoveEntities( g_sClassName2 );
  479. }
  480.  
  481. public RemoveEntities( const sClassName[ ] )
  482. {
  483.     new iEntity = FM_NULLENT;
  484.  
  485.     while ( ( iEntity = engfunc( EngFunc_FindEntityByString, FM_NULLENT, "classname", sClassName ) ) )
  486.         engfunc( EngFunc_RemoveEntity, iEntity );
  487. }
  488.  
  489. public plugin_end( ) { SQL_FreeHandle( g_iSqlTuple ); }
  490.  
  491. stock fm_get_user_money( iId ) { return get_pdata_int( iId, OFFSET_MONEY ); }
  492.  
  493. stock fm_set_user_money( iId, iMoney )
  494. {
  495.     set_pdata_int( iId, OFFSET_MONEY, iMoney );
  496.  
  497.     message_begin( MSG_ONE, g_iMsgMoney, { 0, 0, 0 }, iId );
  498.     write_long( iMoney );
  499.     write_byte( 1 );
  500.     message_end( );
  501. }
  502.  
  503. stock get_user_name2( iId, sName[ ], iLen )
  504. {
  505.     get_user_name( iId, sName, iLen );
  506.     replace_all( sName, iLen, "'", "*" );
  507.     replace_all( sName, iLen, "^"", "*" );
  508.     replace_all( sName, iLen, "`", "*" );
  509. }
  510.  
  511. stock GetGrenadeType( iEntity )
  512. {
  513.     if ( !pev_valid( iEntity ) )
  514.         return 0;
  515.    
  516.     new sModel[ 64 ];
  517.     pev( iEntity, pev_model, sModel, charsmax( sModel ) );
  518.    
  519.     if ( contain( sModel, "pokeball.mdl" ) != -1 ) return 1;
  520.    
  521.     return 0;
  522. }
  523.  
  524. stock ChatColor( iId, const sMessage[ ], any:... )
  525. {
  526.     static iPlrNum, iPlayers[ 32 ], sMsg[ 256 ], iIdMsg, iMsgLen = charsmax( sMsg );
  527.    
  528.     vformat( sMsg, iMsgLen, sMessage, 3 );
  529.     format( sMsg, iMsgLen, "^4[%s]^1 %s", g_sPrefix, sMsg );
  530.  
  531.     if ( !iIdMsg ) iIdMsg = get_user_msgid( "SayText" );
  532.  
  533.     if ( iId )
  534.     {
  535.         iPlayers[ 0 ] = iId;
  536.         iPlrNum = 1;
  537.     }
  538.     else get_players( iPlayers, iPlrNum, "ch" );
  539.  
  540.     for ( new i, iPId; i < iPlrNum; ++i )
  541.     {
  542.         iPId = iPlayers[ i ];
  543.        
  544.         if ( !is_user_connected( iPId ) ) continue;
  545.        
  546.         message_begin( MSG_ONE, iIdMsg, _, iPId );
  547.         write_byte( iPId );
  548.         write_string( sMsg );
  549.         message_end( );
  550.     }
  551. }


Írtam privit

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pokémon mód/event
HozzászólásElküldve: 2016.12.10. 21:18 
Offline
Félisten
Avatar

Csatlakozott: 2015.03.12. 18:30
Hozzászólások: 975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
Véleményem szerint, fent van [profil]Demon[/profil] hlmod-on, ha akarja ki tudja tenni.
Szerintem ilyennel már többen próbálkoztak, mindig is kuka lett belőle. :)

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 6 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole