SHARE
TWEET

Untitled

a guest Apr 20th, 2019 30 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. #include <cstrike>
  5. #include <fun>
  6. #include <ColorChat>
  7. #include <hamsandwich>
  8. #include <expmod>
  9. #include <gunxpmod>
  10.  
  11. #define PLUGIN "Klany"
  12. #define VERSION "1.0"
  13. #define AUTHOR "Albertd edit Pawlik"
  14.  
  15.  
  16. new szNazwaKlanuGracza[ 33 ][ 33 ]
  17. new szNazwaKlanuPodglad[ 33 ][ 33 ]
  18. new szNazwaCzlonkaPodglad[ 33 ][ 33 ]
  19. new iListaGraczy[ 33 ][ 33 ]
  20. new szUserName[ 33 ][ 33 ]
  21. new iLider[ 33 ]
  22. ///
  23.  
  24. new g_msg_screenfade,
  25.     potrzebneM1,
  26.     potrzebneM2,
  27.     potrzebneM3;
  28.  
  29. new HP[33]
  30. new Oslepienie[33]
  31. new ExpGXP[33]
  32.  
  33. new szFolder[ 128 ]
  34. new Vault
  35. new const NieDozwoloneZnaki[ 4 ][ ] = { ".", ",", "'", "^"" }
  36. public plugin_init() {
  37.     register_plugin(PLUGIN, VERSION, AUTHOR)
  38.    
  39.     register_clcmd( "say /klan", "Klany" )
  40.     register_clcmd( "say /klany", "Klany" )
  41.     register_clcmd( "say /gildia", "Klany" )
  42.     register_clcmd( "say /gildie", "Klany" )
  43.     register_clcmd( "say /gang", "Klany" )
  44.     register_clcmd( "Zaloz_klan", "ZalozKlan" )
  45.     register_clcmd( "Wplac_Monety", "WplacEXP" )
  46.     register_clcmd( "say", "cmdSay" )
  47.    
  48.     potrzebneM1 = register_cvar("bb_potrzebneM1","1200");
  49.     potrzebneM2 = register_cvar("bb_potrzebneM2","800");
  50.     potrzebneM3 = register_cvar("bb_potrzebneM3","2000");
  51.    
  52.     register_event("Damage", "Damage", "b", "2!=0");
  53.     register_event("DeathMsg", "DeathMsg", "a")
  54.    
  55.     g_msg_screenfade = get_user_msgid("ScreenFade");
  56.  
  57.     RegisterHam(Ham_Spawn,"player","spawned",1)
  58.    
  59.     register_message(get_user_msgid("SayText"),"handleSayText");
  60.     Vault = nvault_open( "KLANY" )
  61.     new szDir[ 64 ]
  62.     get_datadir( szDir, sizeof( szDir ) )  
  63.     new szNameFolder[ 64 ]
  64.     format( szNameFolder, sizeof( szNameFolder ), "/%s", PLUGIN )  
  65.     add( szDir, charsmax( szDir ), szNameFolder )  
  66.     if( !dir_exists( szDir ) )
  67.         mkdir( szDir ) 
  68.     format( szFolder, sizeof( szFolder ), "%s/", szDir, PLUGIN )
  69. }
  70. public plugin_natives( ){
  71.     register_native( "bb_get_lvl_guild", "PobierzPoziomKlanuGracza", 1 )
  72.     register_native( "get_user_klanname", "native_get_user_klanname", 1 )
  73.     register_native( "get_user_SHOW_Klany", "native_get_SHOW_Klany", 1 )
  74.    
  75.     register_native("get_user_ExpKlany", "native_get_user_ExpKlany", 1);
  76. }
  77. public client_connect( id ){
  78.     get_user_name( id, szUserName[ id ], sizeof( szUserName ) )
  79.     copy( szNazwaKlanuGracza[ id ], sizeof( szNazwaKlanuGracza[ ] ), "" )
  80.     iLider[ id ] = 0
  81.     HP[id] = 0
  82.     Oslepienie[id] = 0
  83.     ExpGXP[id] = 0
  84.     WczytajDane( id )
  85. }
  86. public client_disconnect( id ){
  87.     ZapiszDane( id )
  88. }
  89. public Klany( id ){
  90.     new gForm[ 64 ]
  91.     new menu = menu_create( "\r[BaseBuilder]^n\yOpcje Gildi:", "Klany_2" )
  92.     if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ) format( gForm, sizeof( gForm ), "Gildia:\r %s", szNazwaKlanuGracza[ id ] )
  93.     else format( gForm, sizeof( gForm ), "Zaloz Gildie [\r1500\w Monet]")
  94.     menu_additem( menu, gForm )
  95.     if( iLider[ id ] ) menu_additem( menu, "Usun Gildie" ) 
  96.     else if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ) menu_additem( menu, "Opusc Gildie" )     
  97.     else menu_additem( menu, "\r---\dBrak Gildi\r---" )    
  98.     menu_additem( menu, "Sprawdz Gildie" ) 
  99.     if( strlen( szNazwaKlanuGracza[ id ] ) > 0 )
  100.         format( gForm, sizeof( gForm ), "\ySprawdz Umiejetnosci Swojej Gildii" )
  101.     else
  102.         format( gForm, sizeof( gForm ), "\dSprawdz Umiejetnosci Swojej Gildii")
  103.     menu_additem( menu, gForm )
  104.     menu_display( id, menu, 0 )
  105. }
  106. public Klany_2( id, menu, item ){
  107.     if( item == MENU_EXIT ){
  108.         menu_destroy( menu )
  109.         return PLUGIN_CONTINUE
  110.     }
  111.     switch( item ){
  112.         case 0:{
  113.             if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ){
  114.                 copy( szNazwaKlanuPodglad[ id ], sizeof( szNazwaKlanuPodglad ), szNazwaKlanuGracza[ id ] )
  115.                 PokazInformacjeKlanowe( id )
  116.             }else if( get_user_zloto( id ) >= 1500 )
  117.                 client_cmd( id, "messagemode Zaloz_klan" )
  118.         }
  119.         case 1: {
  120.             if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ){
  121.                 OpuszczenieKlanu( id )
  122.             }
  123.         }
  124.         case 2: PokazKlany( id )
  125.         case 3:{
  126.             if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ){
  127.                 PokazUmiejetnosciGildi( id )
  128.             }else{
  129.                 ColorChat(id, GREEN,">>>^x01 Nie jestes w zadnej Gildii, aby moc sprawdzic umiejetnosci Gildyjne^x04 <<<");
  130.                 Klany( id );
  131.             }
  132.         }
  133.     }
  134.     return PLUGIN_CONTINUE
  135. }
  136.  
  137. public PokazUmiejetnosciGildi( id ){
  138.     Um_Gildyjne( id )
  139. }
  140.  
  141. public Um_Gildyjne(id){
  142.     new menu = menu_create("\r[BaseBuilder]^n\dUmiejetnosci moze rozwinac tylko \rDowodca Gildii!^n\yStan Umiejetnosci Twojej Gildi:\d","Um_Gildyjne_handle");
  143.    
  144.     new formats[128];
  145.     format(formats,charsmax(formats),"Dostajesz +%i zycia na start \r[ Zombie ]",HP[id]*5)
  146.     menu_additem(menu,formats)
  147.    
  148.     format(formats,charsmax(formats),"Szansa na oslepienie wynsoi %i%% \r[ Budowniczy & Zombie ]",Oslepienie[id]/2)
  149.     menu_additem(menu,formats)
  150.    
  151.     format(formats,charsmax(formats),"Wiekszy Exp +%i za zabojstwo \r[ Budowniczy & Zombie ]",ExpGXP[id])
  152.     menu_additem(menu,formats)
  153.    
  154.    
  155.     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
  156.     menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  157.    
  158.     menu_display(id, menu,0);
  159.     return PLUGIN_HANDLED;
  160. }
  161.  
  162. public Um_Gildyjne_handle(id, menu, item){
  163.     if(item == MENU_EXIT){
  164.         menu_destroy(menu);
  165.         return PLUGIN_HANDLED;
  166.     }
  167.     item++;
  168.     switch(item){
  169.         case 1:{
  170.             Um_Gildyjne(id)
  171.         }
  172.         case 2:{
  173.             Um_Gildyjne(id)
  174.         }
  175.         case 3:{
  176.             Um_Gildyjne(id)
  177.         }
  178.     }
  179.     menu_destroy(menu);
  180.     return PLUGIN_HANDLED;
  181. }
  182. public upDateSkill(id){
  183.     new menu = menu_create("\r[BaseBuilder]^n\dUmiejetnosci moze rozwinac tylko \rLider!^n\yWybierz co chcesz ulepszyc:\d","upDateSkill_handle");
  184.    
  185.     new formats[128];
  186.     format(formats,charsmax(formats),"\wWiecej \yZycia\w na start \r[ Budowniczy ]")
  187.     menu_additem(menu,formats)
  188.     format(formats,charsmax(formats),"\wSzansa na \yOslepienie\w gracza \r[ Budowniczy & Zombie ]")
  189.     menu_additem(menu,formats)
  190.     format(formats,charsmax(formats),"\wWiekszy \yExp\w za zabojstwo\r [ Budowniczy & Zombie ]")
  191.     menu_additem(menu,formats)
  192.    
  193.     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
  194.     menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  195.    
  196.     menu_display(id, menu,0);
  197.     return PLUGIN_HANDLED;
  198. }
  199.  
  200. public upDateSkill_handle(id, menu, item){
  201.     if(item == MENU_EXIT){
  202.         menu_destroy(menu);
  203.         return PLUGIN_HANDLED;
  204.     }
  205.     item++;
  206.     switch(item){
  207.         case 1:{
  208.             Um_HP(id)
  209.         }
  210.         case 2:{
  211.             Um_Oslepienie(id)
  212.         }
  213.         case 3:{
  214.             Um_Exp(id)
  215.         }
  216.     }
  217.     menu_destroy(menu);
  218.     return PLUGIN_HANDLED;
  219. }
  220. public Um_Exp(id){
  221.  
  222.     new formats[256];
  223.     format( formats, charsmax( formats ), "\r[BaseBuilder]\y^nUlepszasz: \rWiekszy Exp^n\yKoszt: \w%d^n\yGildia otrzymuje \r+%d\y wiecej expa za zabojstwo gracza!^n\yPosiadasz \r%d\y Monet z Gildii do wydania na ulepszenie!",get_pcvar_num(potrzebneM3)*(ExpGXP[id]+1),ExpGXP[id],PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ))
  224.     new menu = menu_create( formats, "Um_Exp_handle" )
  225.    
  226.     format(formats,charsmax(formats),"Ulepsz")
  227.     menu_additem(menu,formats)
  228.     format(formats,charsmax(formats),"Wroc")
  229.     menu_additem(menu,formats)
  230.    
  231.     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
  232.     menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  233.    
  234.     menu_display(id, menu,0);
  235.     return PLUGIN_HANDLED;
  236. }
  237.  
  238. public Um_Exp_handle(id, menu, item){
  239.     if(item == MENU_EXIT){
  240.         menu_destroy(menu);
  241.         return PLUGIN_HANDLED;
  242.     }
  243.     item++;
  244.     switch(item){
  245.         case 1:{
  246.             if((get_pcvar_num(potrzebneM3)*(ExpGXP[id]+1)) > PobierzEXPKlanu( szNazwaKlanuGracza[ id ] )){
  247.                 Um_Exp(id);
  248.                 menu_destroy(menu);
  249.                 return PLUGIN_HANDLED;
  250.             }
  251.             UstawEXPKlanu( szNazwaKlanuGracza[ id ], PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ) - get_pcvar_num(potrzebneM3)*(ExpGXP[id]+1))
  252.             ExpGXP[id]++;
  253.             Um_Exp(id);
  254.             menu_destroy(menu);
  255.             return PLUGIN_HANDLED;
  256.         }
  257.         case 2:{
  258.             upDateSkill(id)
  259.         }
  260.     }
  261.     menu_destroy(menu);
  262.     return PLUGIN_HANDLED;
  263. }
  264. public Um_Oslepienie(id){
  265.  
  266.     new formats[256];
  267.     format( formats, charsmax( formats ), "\r[BaseBuilder]\y^nUlepszasz: \rSzansa na Oslepienie^n\yKoszt: \w%d^n\yGildia otrzymuje \r+%d%%\y szansy na oslepienie gracza!^n\yPosiadasz \r%d\y Monet z Gildii do wydania na ulepszenie!",get_pcvar_num(potrzebneM2)*(Oslepienie[id]+1),Oslepienie[id]/2,PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ))
  268.     new menu = menu_create( formats, "Um_Oslepienie_handle" )
  269.    
  270.     format(formats,charsmax(formats),"Ulepsz")
  271.     menu_additem(menu,formats)
  272.     format(formats,charsmax(formats),"Wroc")
  273.     menu_additem(menu,formats)
  274.    
  275.     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
  276.     menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  277.    
  278.     menu_display(id, menu,0);
  279.     return PLUGIN_HANDLED;
  280. }
  281.  
  282. public Um_Oslepienie_handle(id, menu, item){
  283.     if(item == MENU_EXIT){
  284.         menu_destroy(menu);
  285.         return PLUGIN_HANDLED;
  286.     }
  287.     item++;
  288.     switch(item){
  289.         case 1:{
  290.             if((get_pcvar_num(potrzebneM2)*(Oslepienie[id]+1)) > PobierzEXPKlanu( szNazwaKlanuGracza[ id ] )){
  291.                 Um_Oslepienie(id);
  292.                 menu_destroy(menu);
  293.                 return PLUGIN_HANDLED;
  294.             }
  295.             UstawEXPKlanu( szNazwaKlanuGracza[ id ], PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ) - get_pcvar_num(potrzebneM2)*(Oslepienie[id]+1))
  296.             Oslepienie[id]++;
  297.             Um_Oslepienie(id);
  298.             menu_destroy(menu);
  299.             return PLUGIN_HANDLED;
  300.         }
  301.         case 2:{
  302.             upDateSkill(id)
  303.         }
  304.     }
  305.     menu_destroy(menu);
  306.     return PLUGIN_HANDLED;
  307. }
  308. public Um_HP(id){
  309.  
  310.     new formats[256];
  311.     format( formats, charsmax( formats ), "\r[BaseBuilder]\y^nUlepszasz: \rWiecej Zycia na start^n\yKoszt: \w%d^n\yGildia otrzymuje \r+%d\y zycia na start!^n\yPosiadasz \r%d\y Monet z Gildii do wydania na ulepszenie!",get_pcvar_num(potrzebneM1)*(HP[id]+1),HP[id]*5,PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ))
  312.     new menu = menu_create( formats, "Um_HP_handle" )
  313.    
  314.     format(formats,charsmax(formats),"Ulepsz")
  315.     menu_additem(menu,formats)
  316.     format(formats,charsmax(formats),"Wroc")
  317.     menu_additem(menu,formats)
  318.    
  319.     menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
  320.     menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  321.    
  322.     menu_display(id, menu,0);
  323.     return PLUGIN_HANDLED;
  324. }
  325.  
  326. public Um_HP_handle(id, menu, item){
  327.     if(item == MENU_EXIT){
  328.         menu_destroy(menu);
  329.         return PLUGIN_HANDLED;
  330.     }
  331.     item++;
  332.     switch(item){
  333.         case 1:{
  334.             if((get_pcvar_num(potrzebneM1)*(HP[id]+1)) > PobierzEXPKlanu( szNazwaKlanuGracza[ id ] )){
  335.                 Um_HP(id);
  336.                 menu_destroy(menu);
  337.                 return PLUGIN_HANDLED;
  338.             }
  339.             UstawEXPKlanu( szNazwaKlanuGracza[ id ], PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ) - get_pcvar_num(potrzebneM1)*(HP[id]+1))
  340.             HP[id]++;
  341.             Um_HP(id);
  342.             menu_destroy(menu);
  343.             return PLUGIN_HANDLED;
  344.         }
  345.         case 2:{
  346.             upDateSkill(id)
  347.         }
  348.     }
  349.     menu_destroy(menu);
  350.     return PLUGIN_HANDLED;
  351. }
  352.  
  353. public Damage(id)
  354. {
  355.     new attacker = get_user_attacker(id);
  356.  
  357.     if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker)
  358.         return PLUGIN_CONTINUE;
  359.        
  360.     new szansa = Oslepienie[attacker]
  361.     if(random_num(1,100) <= (szansa/2))
  362.         Display_Fade(id,1<<13,1<<13 ,1<<16,255,155,50,230);
  363.  
  364.    
  365.  
  366.     return PLUGIN_CONTINUE;
  367.  
  368. }
  369. public DeathMsg(id){
  370.     new kid = read_data(1);
  371.     new vid = read_data(2);
  372.    
  373.     if(!is_user_connected(kid) || !is_user_connected(vid)) return
  374.    
  375.     if(cs_get_user_team(vid)==CS_TEAM_T && cs_get_user_team(kid)==CS_TEAM_CT)
  376.     {
  377.         set_user_xp(kid,get_user_xp(kid)+(ExpGXP[kid]))
  378.     }
  379.     if(cs_get_user_team(vid)==CS_TEAM_CT && cs_get_user_team(kid)==CS_TEAM_T)
  380.     {
  381.         set_user_xp(kid,get_user_xp(kid)+(ExpGXP[kid]))
  382.     }
  383. }
  384.  
  385.  
  386. stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
  387.  
  388. {
  389.  
  390.     message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
  391.  
  392.     write_short( duration );    // Duration of fadeout
  393.  
  394.     write_short( holdtime );    // Hold time of color
  395.  
  396.     write_short( fadetype );    // Fade type
  397.  
  398.     write_byte ( red );        // Red
  399.  
  400.     write_byte ( green );        // Green
  401.  
  402.     write_byte ( blue );        // Blue
  403.  
  404.     write_byte ( alpha );    // Alpha
  405.  
  406.     message_end();
  407.  
  408. }
  409.  
  410. public spawned(id){
  411.     if(is_user_alive(id) && cs_get_user_team(id)==CS_TEAM_CT){
  412.         set_user_health(id,get_user_health(id)+(HP[id]*5)) 
  413.     }
  414. }
  415.  
  416. public OpuszczenieKlanu( id ){
  417.     new gForm[ 128 ]
  418.     format( gForm, sizeof( gForm ), "Czy napewno chcesz %s?", iLider[ id ] == 1 ? "usunac gildie" : "odejsc z gildii" )
  419.     new menu = menu_create( gForm, "OpuszczenieKlanu_2" )
  420.     menu_additem( menu, "Tak" )
  421.     menu_additem( menu, "Nie" )
  422.     menu_display( id, menu, 0 )
  423. }
  424. public OpuszczenieKlanu_2( id, menu, item ){
  425.     if( item == MENU_EXIT ){
  426.         menu_destroy( menu )
  427.         return PLUGIN_CONTINUE
  428.     }
  429.     switch( item ){
  430.         case 0:{
  431.             if( !iLider[ id ] ){
  432.                 new szNazwaGracza[ 33 ]
  433.                 get_user_name( id, szNazwaGracza, sizeof( szNazwaGracza ) )
  434.                 WyrzucCzlonka( szNazwaKlanuGracza[ id ], szNazwaGracza )
  435.                 WyzerujKlan( id )
  436.             }else{
  437.                 UsunKlan( szNazwaKlanuGracza[ id ] )
  438.                 WyzerujKlan( id )          
  439.             }
  440.         }
  441.         case 1:{
  442.             Klany( id )
  443.         }
  444.     }
  445.     return PLUGIN_CONTINUE
  446. }
  447. public PokazKlany( id ){
  448.     new szNazwaKlanu[ 33 ] , gForm[ 128 ]
  449.     new menu = menu_create( "\r[BaseBuilder]^n\yWszystkie Gildie:", "PokazKlany_2" )
  450.     new gFolder = open_dir( szFolder, szNazwaKlanu, sizeof( szNazwaKlanu ) )
  451.     //menu_additem( menu, szNazwaKlanu )
  452.     while( next_file( gFolder, szNazwaKlanu, sizeof( szNazwaKlanu ) ) ){   
  453.         if( equal( szNazwaKlanu, ".." ) )
  454.             continue
  455.         if( equal( szNazwaKlanu, "." ) )
  456.             continue
  457.         if( containi( szNazwaKlanu, ".txt" ) ){
  458.             replace_all( szNazwaKlanu, sizeof( szNazwaKlanu ), ".txt", "" )
  459.             if( equal( szNazwaKlanu, szNazwaKlanuGracza[ id ] ) )
  460.                 format( gForm, sizeof( gForm ), "\r%s", szNazwaKlanu )  
  461.             else format( gForm, sizeof( gForm ), "%s", szNazwaKlanu )  
  462.             menu_additem( menu, gForm )
  463.         }
  464.     }
  465.     close_dir( gFolder )
  466.     menu_display( id, menu, 0 )
  467. }
  468. public PokazKlany_2( id, menu, item ){
  469.     if( item == MENU_EXIT ){
  470.         menu_destroy( menu )
  471.         return PLUGIN_CONTINUE
  472.     }
  473.     new szNazwaKlanu[ 33 ], szInfo[ 33 ]
  474.     new Access, CallBack
  475.     menu_item_getinfo( menu, item , Access, szInfo, sizeof( szInfo ), szNazwaKlanu, sizeof( szNazwaKlanu ), CallBack )
  476.     replace_all( szNazwaKlanu, sizeof( szNazwaKlanu ), "\r", "" )
  477.     copy( szNazwaKlanuPodglad[ id ], sizeof( szNazwaKlanuPodglad[ ] ), szNazwaKlanu )  
  478.     PokazInformacjeKlanowe( id )
  479.     return PLUGIN_CONTINUE
  480. }
  481. public PokazInformacjeKlanowe( id ){
  482.     new gForm[ 128 ], szData[ 128 ], szLider[ 33 ], iText
  483.     new szSciezkaDoKlanu[ 128 ]
  484.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  485.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ),  szNazwaKlanuPodglad[ id ] )
  486.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  487.     read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  488.     replace_all( szData, sizeof( szData ), "#", " " )
  489.     parse( szData, szLider, 32 )
  490.     format( gForm, sizeof( gForm ), "\r[BaseBuilder]^n\yNazwa Gildii:\r %s\d^n\yDowodca Gildii:\r %s\d", szNazwaKlanuPodglad[ id ], szLider )
  491.     new menu = menu_create( gForm, "PokazInformacjeKlanowe_2" )
  492.     menu_additem( menu, "Zarzadzaj" )
  493.     for( new i = 1; i < 9; i ++ ){
  494.         copy( szData, sizeof( szData ), "" )
  495.         read_file( szSciezkaDoKlanu, i, szData, sizeof( szData ), iText )
  496.         if( strlen( szData ) > 0 ){
  497.             format( gForm, sizeof( gForm ), "\y%s", szData )
  498.             menu_additem( menu, gForm )
  499.         }else menu_additem( menu, "\r---\dWolne Miejsce\r---" )
  500.     }
  501.     menu_display( id, menu, 0 )
  502. }
  503. public PokazInformacjeKlanowe_2( id, menu, item ){
  504.     if( item == MENU_EXIT ){
  505.         menu_destroy( menu )
  506.         return PLUGIN_CONTINUE
  507.     }
  508.     if( item == 0 ){
  509.         if( equal( szNazwaKlanuPodglad[ id ], szNazwaKlanuGracza[ id ] ) )
  510.             ZarzadajKlanem( id )
  511.         else PokazInformacjeKlanowe( id )
  512.     }else if( item > 0 ){
  513.         if( equal( szNazwaKlanuPodglad[ id ], szNazwaKlanuGracza[ id ] ) && iLider[ id ]){
  514.             new szNazwaCzlonka[ 33 ], szInfo[ 33 ]
  515.             new Access, CallBack
  516.             menu_item_getinfo( menu, item , Access, szInfo, sizeof( szInfo ), szNazwaCzlonka, sizeof( szNazwaCzlonka ), CallBack )
  517.             replace_all( szNazwaCzlonka, sizeof( szNazwaCzlonka ), "\y", "" )
  518.             copy( szNazwaCzlonkaPodglad[ id ], sizeof( szNazwaCzlonkaPodglad[ ] ), szNazwaCzlonka )
  519.             DzialaniaNaCzlonku( id )
  520.            
  521.         }else PokazInformacjeKlanowe( id )
  522.     }
  523.     return PLUGIN_CONTINUE
  524. }
  525. public DzialaniaNaCzlonku( id ){
  526.     new gForm[ 128 ]
  527.     format( gForm, sizeof( gForm ), "Nazwa czlonka:\w %s", szNazwaCzlonkaPodglad[ id ] )
  528.     new menu = menu_create( gForm, "DzialaniaNaCzlonku_2" )
  529.     menu_additem( menu, "Wyrzuc gracza" )
  530.     menu_display( id, menu, 0 )
  531. }
  532. public DzialaniaNaCzlonku_2( id, menu, item ){
  533.     if( item == MENU_EXIT ){
  534.         menu_destroy( menu )
  535.         return PLUGIN_CONTINUE
  536.     }
  537.     switch( item ){
  538.         case 0:{
  539.             WyrzucCzlonka( szNazwaKlanuPodglad[ id ], szNazwaCzlonkaPodglad[ id ] )
  540.             PokazInformacjeKlanowe( id )
  541.         }
  542.     }
  543.     return PLUGIN_CONTINUE
  544. }
  545. public ZarzadajKlanem( id ){
  546.     new gForm[ 128 ]
  547.     format( gForm, sizeof( gForm ), "[Gildia:\r %s]^n\y[Poziom:\r %d\y]^n\y[Monety:\r %d\d/\r%d\y]", szNazwaKlanuGracza[ id ], PobierzPoziomKlanu( szNazwaKlanuGracza[ id ] ), PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ), PotrzebnyExpKlanu( PobierzPoziomKlanu( szNazwaKlanuGracza[ id ] ) ) )
  548.     new menu = menu_create( gForm, "ZarzadajKlanem_2" )
  549.     menu_additem( menu, "\y[Dowodca Gildii] \wZapros do Gildii" )
  550.     menu_additem( menu, "\y[Dowodca Gildii | Czlonkowie] \wWplac\r Monety" )
  551.     menu_additem( menu, "\y[Dowodca Gildii] \r Ulepsz Umiejetnosci dla Gildii" )
  552.     menu_display( id, menu, 0 )
  553. }
  554. public ZarzadajKlanem_2( id, menu, item ){
  555.     if( item == MENU_EXIT ){
  556.         menu_destroy( menu )
  557.         return PLUGIN_CONTINUE
  558.     }
  559.     switch( item ){
  560.         case 0:{
  561.             if( iLider[ id ] && equal( szNazwaKlanuPodglad[ id ], szNazwaKlanuGracza[ id ] ) )
  562.                 ZapraszanieDoGildi( id )
  563.         }
  564.         case 1:{
  565.             client_cmd( id, "messagemode Wplac_Monety" )
  566.             ZarzadajKlanem( id )
  567.         }
  568.         case 2:{
  569.             if( iLider[ id ] && equal( szNazwaKlanuPodglad[ id ], szNazwaKlanuGracza[ id ] ) )
  570.                 upDateSkill( id )
  571.             else
  572.                 ColorChat(id, GREEN,">>>^x01 Ulepszyc Umiejetnosci moze tylko^x03 Lider^x04 <<<");
  573.         }
  574.     }
  575.     return PLUGIN_CONTINUE
  576. }
  577. public ZapraszanieDoGildi( id ){
  578.     new gForm[ 128 ], szNazwaGracza[ 33 ]
  579.     new menu = menu_create( "Kogo chcesz zaprosic?", "ZapraszanieDoGildi_2" )
  580.     for( new i = 1, d = 0; i <= get_maxplayers( ); i ++ ){
  581.         if( !is_user_connected( i ) )
  582.             continue
  583.         get_user_name( i, szNazwaGracza, sizeof( szNazwaGracza ) )     
  584.         if( strlen( szNazwaKlanuGracza[ i ] ) > 0 ) format( gForm, sizeof( gForm ), "\d%s - \r[\w %s\r ]", szNazwaGracza, szNazwaKlanuGracza[ i ] )
  585.         else format( gForm, sizeof( gForm ), "\y%s", szNazwaGracza )
  586.         menu_additem( menu, gForm )
  587.         iListaGraczy[ id ][ d++ ] = i
  588.     }
  589.     menu_display( id, menu, 0 )
  590. }
  591. public ZapraszanieDoGildi_2( id, menu, item ){
  592.     if( item == MENU_EXIT ){
  593.         menu_destroy( menu )
  594.         return PLUGIN_CONTINUE
  595.     }  
  596.     new Target
  597.     Target = iListaGraczy[ id ][ item ]
  598.     if( strlen( szNazwaKlanuGracza[ Target ] ) > 0 )
  599.         return PLUGIN_CONTINUE
  600.     new szLider[ 33 ]
  601.     get_user_name( id, szLider, sizeof( szLider ) )
  602.     copy( szNazwaKlanuPodglad[ Target ], sizeof( szNazwaKlanuPodglad[ ] ), szNazwaKlanuPodglad[ id ] )
  603.     WyslijZaproszenie( Target, szLider )
  604.     return PLUGIN_CONTINUE
  605. }
  606. public WyslijZaproszenie( id, const szLider[ ] ){
  607.     new gForm[ 128 ]
  608.     format( gForm, sizeof( gForm ), "Otrzymales zaproszenie!^nGildii:\w %s^n\yDowodca Gildii:\w %s", szNazwaKlanuPodglad[ id ], szLider )
  609.     new menu = menu_create( gForm, "WyslijZaproszenie_2" )
  610.     menu_additem( menu, "Przyjmij zaproszenie" )
  611.     menu_additem( menu, "Odrzuc zaproszenie" ) 
  612.     menu_display( id, menu, 0 )
  613. }
  614. public WyslijZaproszenie_2( id, menu, item ){
  615.     if( item == MENU_EXIT ){
  616.         menu_destroy( menu )
  617.         return PLUGIN_CONTINUE
  618.     }
  619.     switch( item ){
  620.         case 0:{
  621.             if( strlen( szNazwaKlanuGracza[ id ] ) <= 0 ){             
  622.                 new szNazwaGracza[ 33 ]
  623.                 get_user_name( id, szNazwaGracza, sizeof( szNazwaGracza ) )
  624.                 DodajCzlonka( szNazwaKlanuPodglad[ id ], szNazwaGracza )
  625.                 iLider[ id ] = 0
  626.                 copy( szNazwaKlanuGracza[ id ], sizeof( szNazwaKlanuGracza[ ] ), szNazwaKlanuPodglad[ id ] )
  627.             }
  628.         }
  629.     }
  630.     return PLUGIN_CONTINUE
  631. }
  632. public ZalozKlan( id ){
  633.     if( get_user_zloto( id ) >= 1500 ){
  634.         new szNazwaKlanu[ 33 ]
  635.         read_args( szNazwaKlanu, sizeof( szNazwaKlanu ) )
  636.         remove_quotes( szNazwaKlanu )
  637.         trim( szNazwaKlanu )
  638.         for( new i = 0 ; i < sizeof( NieDozwoloneZnaki ); i ++ ){
  639.             if( containi( szNazwaKlanu, NieDozwoloneZnaki[ i ] ) >= 0){
  640.                 client_print( id, print_center, "Nie dozwolony znak [%s]", NieDozwoloneZnaki[ i ] )
  641.                 return PLUGIN_CONTINUE
  642.             }
  643.         }
  644.         replace_all( szNazwaKlanu, sizeof( szNazwaKlanu ), " ", "_" )
  645.         new szData[ 128 ], szNazwaGracza[ 33 ]
  646.         get_user_name( id, szNazwaGracza, sizeof( szNazwaGracza ) )
  647.         format( szData, sizeof( szData ), "#%s#%s#0#1#1", szNazwaGracza, szNazwaKlanu )
  648.         new szSciezkaDoKlanu[ 128 ]
  649.         copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  650.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  651.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  652.         if( !file_exists( szSciezkaDoKlanu ) ){
  653.             write_file( szSciezkaDoKlanu, szData, 0 )
  654.             copy( szNazwaKlanuGracza[ id ] , sizeof( szNazwaKlanuGracza[ ] ), szNazwaKlanu )
  655.             iLider[ id ] = 1
  656.             copy( szNazwaKlanuPodglad[ id ], sizeof( szNazwaKlanuPodglad ), szNazwaKlanuGracza[ id ] )
  657.             PokazInformacjeKlanowe( id )
  658.             set_user_zloto( id, get_user_zloto( id ) - 1500 )      
  659.         }
  660.     }
  661.     return PLUGIN_CONTINUE
  662. }
  663. public WyrzucCzlonka( const szNazwaKlanu[ ], const szNazwaCzlonka[ ] ){
  664.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  665.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  666.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  667.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  668.     for( new i = 1; i < 9; i ++ ){
  669.         copy( szData, sizeof( szData ), "" )
  670.         read_file( szSciezkaDoKlanu, i, szData, sizeof( szData ), iText )
  671.         if( equal( szData, szNazwaCzlonka ) ){
  672.             write_file( szSciezkaDoKlanu, "", i )
  673.             break
  674.         }
  675.     }
  676. }
  677. public UsunKlan( const szNazwaKlanu[ ] ){
  678.     new szSciezkaDoKlanu[ 128 ]
  679.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  680.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  681.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  682.     unlink( szSciezkaDoKlanu )
  683. }
  684. public DodajCzlonka( const szNazwaKlanu[ ], const szNazwaCzlonka[ ] ){
  685.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  686.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  687.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  688.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  689.     for( new i = 1; i < 9; i ++ ){
  690.         copy( szData, sizeof( szData ), "" )
  691.         read_file( szSciezkaDoKlanu, i, szData, sizeof( szData ), iText )
  692.         if( strlen( szData ) <= 0 ){
  693.             write_file( szSciezkaDoKlanu, szNazwaCzlonka, i )
  694.             break
  695.         }
  696.     }
  697. }
  698. public SprawdzCzyJestCzlonkiem( id ){
  699.     if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ){
  700.         new szSciezkaDoKlanu[ 128 ], szNazwaCzlonka[ 33 ], szData[ 128], iText
  701.         copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  702.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanuGracza[ id ] )
  703.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )    
  704.         if( file_exists( szSciezkaDoKlanu ) ){
  705.             if( iLider[ id ] == 0 ){
  706.                 new bool:iReset=false
  707.                 get_user_name( id, szNazwaCzlonka, sizeof( szNazwaCzlonka ) )
  708.                 for( new i = 1; i < 9; i ++ ){
  709.                     copy( szData, sizeof( szData ), "" )
  710.                     read_file( szSciezkaDoKlanu, i, szData, sizeof( szData ), iText )
  711.                     if( equal( szData, szNazwaCzlonka ) ){
  712.                         iReset=true
  713.                     }
  714.                 }
  715.                 if( !iReset ){
  716.                     WyzerujKlan( id )
  717.                     client_print( id, print_chat, "Zero iReset" )
  718.                 }
  719.             }
  720.         }else{
  721.             WyzerujKlan( id )
  722.             client_print( id, print_chat, "Zero %s", szSciezkaDoKlanu )
  723.         }
  724.     }  
  725. }
  726. public WyzerujKlan( id ){
  727.     iLider[ id ] = 0
  728.     HP[ id ] = 0
  729.     ExpGXP[ id ] = 0
  730.     Oslepienie[ id ] = 0
  731.     copy( szNazwaKlanuGracza[ id ], sizeof( szNazwaKlanuGracza[ ] ), "" )
  732. }
  733. public WplacEXP( id ){
  734.     if( strlen( szNazwaKlanuGracza[ id ] ) > 0 ){  
  735.         new iIloscDoWplacenia[ 10 ]
  736.         read_args( iIloscDoWplacenia, sizeof( iIloscDoWplacenia ) )
  737.         remove_quotes( iIloscDoWplacenia )
  738.         if( str_to_num( iIloscDoWplacenia ) > 0 ){
  739.             if( get_user_zloto( id ) >= str_to_num( iIloscDoWplacenia ) ){
  740.                 UstawEXPKlanu( szNazwaKlanuGracza[ id ], PobierzEXPKlanu( szNazwaKlanuGracza[ id ] )+str_to_num( iIloscDoWplacenia ) )
  741.                 set_user_zloto( id, get_user_zloto( id ) - str_to_num( iIloscDoWplacenia ) )
  742.                 while( PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ) >= PotrzebnyExpKlanu( PobierzPoziomKlanu( szNazwaKlanuGracza[ id ] ) ) ){
  743.                     UstawPoziomKlanu( szNazwaKlanuGracza[ id ], PobierzPoziomKlanu( szNazwaKlanuGracza[ id ] ) + 1 )
  744.                 }
  745.                 ZarzadajKlanem( id )
  746.             }
  747.         }
  748.     }
  749. }
  750. public PotrzebnyExpKlanu( iWartoscPoziomu ){
  751.     return power( iWartoscPoziomu, 2 ) * 1400
  752. }
  753. public PobierzEXPKlanu( const szNazwaKlanu[ ] ){
  754.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  755.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  756.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  757.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  758.     read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  759.     replace_all( szData, sizeof( szData ), "#", " " )
  760.     new szReadData[ 5 ][ 33 ]
  761.     parse( szData, szReadData[ 0 ], 32, szReadData[ 1 ], 32, szReadData[ 2 ], 32, szReadData[ 3 ], 32, szReadData[ 4 ], 32 )
  762.     return str_to_num( szReadData[ 3 ] )   
  763. }
  764. public UstawEXPKlanu( const szNazwaKlanu[ ], iWartoscEXP ){
  765.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  766.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  767.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  768.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  769.     read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  770.     replace_all( szData, sizeof( szData ), "#", " " )
  771.     new szReadData[ 5 ][ 33 ]
  772.     parse( szData, szReadData[ 0 ], 32, szReadData[ 1 ], 32, szReadData[ 2 ], 32, szReadData[ 3 ], 32, szReadData[ 4 ], 32 )
  773.     format( szData, sizeof( szData ), "#%s#%s#%i#%i#%i",  szReadData[ 0 ],  szReadData[ 1 ], str_to_num( szReadData[ 2 ] ), iWartoscEXP , str_to_num( szReadData[ 4 ] ) )
  774.     write_file( szSciezkaDoKlanu, szData, 0 )
  775. }
  776. public PobierzPoziomKlanu( const szNazwaKlanu[ ] ){
  777.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  778.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  779.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  780.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  781.     read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  782.     replace_all( szData, sizeof( szData ), "#", " " )
  783.     new szReadData[ 5 ][ 33 ]
  784.     parse( szData, szReadData[ 0 ], 32, szReadData[ 1 ], 32, szReadData[ 2 ], 32, szReadData[ 3 ], 32, szReadData[ 4 ], 32 )
  785.     return str_to_num( szReadData[ 4 ] )   
  786. }
  787. public PobierzPoziomKlanuGracza( id ){
  788.     new iNum = 0;
  789.     if( strlen( szNazwaKlanuGracza[ id ] ) <= 0 )
  790.         iNum = 0
  791.     else{
  792.         new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  793.         copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  794.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanuGracza[ id ] )
  795.         add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  796.         read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  797.         replace_all( szData, sizeof( szData ), "#", " " )
  798.         new szReadData[ 5 ][ 33 ]
  799.         parse( szData, szReadData[ 0 ], 32, szReadData[ 1 ], 32, szReadData[ 2 ], 32, szReadData[ 3 ], 32, szReadData[ 4 ], 32 )
  800.         iNum = str_to_num( szReadData[ 4 ] )   
  801.     }
  802.     return iNum
  803. }
  804. public UstawPoziomKlanu( const szNazwaKlanu[ ], iWartoscPoziom ){
  805.     new szSciezkaDoKlanu[ 128 ], szData[ 128], iText
  806.     copy( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szFolder )
  807.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), szNazwaKlanu )
  808.     add( szSciezkaDoKlanu, sizeof( szSciezkaDoKlanu ), ".txt" )
  809.     read_file( szSciezkaDoKlanu, 0, szData, sizeof( szData ), iText )
  810.     replace_all( szData, sizeof( szData ), "#", " " )
  811.     new szReadData[ 5 ][ 33 ]
  812.     parse( szData, szReadData[ 0 ], 32, szReadData[ 1 ], 32, szReadData[ 2 ], 32, szReadData[ 3 ], 32, szReadData[ 4 ], 32 )
  813.     format( szData, sizeof( szData ), "#%s#%s#%i#%i#%i",  szReadData[ 0 ],  szReadData[ 1 ], str_to_num( szReadData[ 2 ] ), str_to_num( szReadData[ 3 ] ) , iWartoscPoziom )
  814.     write_file( szSciezkaDoKlanu, szData, 0 )
  815. }
  816. public ZapiszDane( id ){
  817.     new VaultKey[ 128 ], VaultData[ 512 ]
  818.     format( VaultData, sizeof( VaultData ), "#%s#%i#%d#%d#%d", szNazwaKlanuGracza[ id ], iLider[ id ],ExpGXP[id],Oslepienie[id],HP[id] )       
  819.     format( VaultKey, sizeof( VaultKey ),"%s-KLANY", szUserName[ id ] )
  820.     nvault_set( Vault, VaultKey, VaultData )   
  821. }
  822. public WczytajDane( id ){
  823.     new VaultKey[ 128 ], VaultData[ 256 ]  
  824.     format( VaultKey, sizeof( VaultKey ),"%s-KLANY", szUserName[ id ] )
  825.     nvault_get( Vault, VaultKey, VaultData, sizeof( VaultData ) );
  826.     replace_all( VaultData, sizeof( VaultData ), "#", " " )
  827.     new ReadData[ 5 ][ 33 ]
  828.     parse( VaultData, ReadData[ 0 ], 32, ReadData[ 1 ], 32, ReadData[ 2 ], 32, ReadData[ 3 ], 32, ReadData[ 4 ], 32 )
  829.     copy( szNazwaKlanuGracza[ id ], sizeof( szNazwaKlanuGracza[ ] ), ReadData[ 0 ] )
  830.     iLider[ id ] = str_to_num( ReadData[ 1 ] )
  831.     ExpGXP[ id ] = str_to_num( ReadData[ 2 ] )
  832.     Oslepienie[ id ] = str_to_num( ReadData[ 3 ] )
  833.     HP[ id ] = str_to_num( ReadData[ 4 ] )
  834.     SprawdzCzyJestCzlonkiem( id )
  835. }
  836.  
  837. public handleSayText(msgId,msgDest,msgEnt){
  838.  
  839.     new id = get_msg_arg_int(1);
  840.    
  841.     if(!is_user_connected(id))      return PLUGIN_CONTINUE;
  842.    
  843.     new szTmp[192], szTmp2[192];
  844.     get_msg_arg_string(2, szTmp, charsmax(szTmp));
  845.    
  846.     new szPrefix[64]
  847.     copy( szPrefix, sizeof( szPrefix ), szNazwaKlanuGracza[ id ] )
  848.    
  849.     if(!equal(szTmp,"#Cstrike_Chat_All")){
  850.         add(szTmp2, charsmax(szTmp2), "^x01");
  851.         add(szTmp2, charsmax(szTmp2), szPrefix);
  852.         add(szTmp2, charsmax(szTmp2), " ");
  853.         add(szTmp2, charsmax(szTmp2), szTmp);
  854.     }else{
  855.         new szPlayerName[64];
  856.         get_user_name(id, szPlayerName, charsmax(szPlayerName));
  857.        
  858.         get_msg_arg_string(4, szTmp, charsmax(szTmp)); //4. argument zawiera tre┼Ť─ç wys┼éanej wiadomo┼Ťci
  859.         set_msg_arg_string(4, ""); //Musimy go wyzerowa─ç, gdy┼╝ gra wykorzysta wiadomo┼Ť─ç podw├│jnie co mo┼╝e skutkowa─ç crash'em 191+ znak├│w.
  860.    
  861.         if(strlen( szNazwaKlanuGracza[ id ] ) > 0){
  862.             add(szTmp2, charsmax(szTmp2), "^x04[");
  863.             add(szTmp2, charsmax(szTmp2), szPrefix);
  864.             add(szTmp2, charsmax(szTmp2), "]^x03 ");
  865.             add(szTmp2, charsmax(szTmp2), szPlayerName);
  866.             add(szTmp2, charsmax(szTmp2), "^x01 :  ");
  867.             add(szTmp2, charsmax(szTmp2), szTmp)
  868.         }else{
  869.             add(szTmp2, charsmax(szTmp2), "^x04");
  870.             add(szTmp2, charsmax(szTmp2), szPrefix);
  871.             add(szTmp2, charsmax(szTmp2), "^x03");
  872.             add(szTmp2, charsmax(szTmp2), szPlayerName);
  873.             add(szTmp2, charsmax(szTmp2), "^x01 :  ");
  874.             add(szTmp2, charsmax(szTmp2), szTmp)
  875.         }
  876.     }
  877.    
  878.     set_msg_arg_string(2, szTmp2);
  879.    
  880.     return PLUGIN_CONTINUE;
  881. }
  882.  
  883. public cmdSay( id )
  884. {
  885.     if( !is_user_connected( id ) )
  886.         return PLUGIN_HANDLED
  887.  
  888.     new szMessage[ 32 ]
  889.     read_args( szMessage, charsmax( szMessage ) )
  890.     remove_quotes( szMessage )
  891.        
  892.     if(szMessage[ 0 ] == '!' && strlen( szNazwaKlanuGracza[ id ] ) > 0 )
  893.     {
  894.         new szNazwaGracza[ 33 ]
  895.         get_user_name( id, szNazwaGracza, sizeof( szNazwaGracza ) )
  896.         szMessage[ 0 ] = ' '
  897.         trim( szMessage )
  898.         for( new i = 1; i<= get_maxplayers( ); i++ ){
  899.             if( equal( szNazwaKlanuGracza[ i ], szNazwaKlanuGracza[ id ] ) )
  900.                 ColorChat( i, TEAM_COLOR, "^x04[Czat Gildyjny]^x03%s^x01 : %s", szNazwaGracza, szMessage )
  901.         }      
  902.         return PLUGIN_HANDLED
  903.     }
  904.     return PLUGIN_CONTINUE
  905. }
  906. public native_get_user_klanname( id, Return[], len )
  907. {
  908.     param_convert(2);
  909.     copy(Return, len, szNazwaKlanuGracza[id]);
  910. }
  911. public native_get_SHOW_Klany( id )
  912. {
  913.     Klany(id);
  914. }
  915. public native_get_user_ExpKlany(id)
  916. {
  917.     return ExpGXP[id];
  918. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top