Jump to content

`Rοmeο

Legendary Member
  • Posts

    8,223
  • Credits

  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Everything posted by `Rοmeο

  1. Tested and working keep up with your work . I hope you will share more soon
  2. π.χ όταν μπείτε στο cs να ακούτε μια μουσική που θα βάλετε εσείς και όταν κάνετε connect σε κάποιο server σταματάει αυτόματα. 1) Πρώτον πάτε Steam / Steamapps / (Στο Account Σας ) / Counter Strike 1.6 / Cstrike . 2) Δημιουργείται έναν νέο φάκελο και τον ονομάζεται Media 3) Επιλέξτε ένα τραγούδι που θέλετε να βάλετε και το ονομάζεται gamestartup. 4) Και το βάζετε στον Φάκελο Media. 5) HAVE FUN ! :P
  3. Egw dn pezw me hack cs en moufa etc dn mathenis tpta ( : alla ntax meriki to exoune anagi ^^
  4. Παρακάτω θα δείτε τον καλύτερο τρόπο για να παίζετε με 100 fps και πως να παίζετε με OpenGL.Eπίσης γλιτώνετε τα fps drops. Βήμα 1ο ATI User : εδώ nVIDIA User :εδώ Κατεβάστε το τελευταίο graphic driver και κάντε το Install. Σημείωση: Πρώτα πρέπει να κάνετε όμως uninstall τον παλιό σας δίσκο. Βήμα 2ο Πηγαίντε εδώ---> "C:\windows\system32\" και ψάξτε για το παρακάτω αρχείο και κάντε το copy. "atioglxx.dll" αν είστε ATI User ή "nvoglnt.dll" αν είστε nVidia User. "opengl32.dll" είναι το deafult αν δεν χρησιμοποιείτε ούτε ATI ούτε nVIDIA. Bήμα 3ο Πηγαίντε στο φάκελο----> "gldrv" στο φάκελο του cstrike."Steam\SteamApps\ToAccountNameσας\counter-strike\gldrv". Μέσα σε αυτόν τον φάκελο υπάρχουν 2 αρχεία.Μετονομάστε το "3dfxgl.dll" σε ότι θέλετε. Τώρα κάντε επικόλληση το αρχείο που κάνατε copy.Tώρα θα βλέπετε το αρχείο που αντιγράψατε απο το φάκελο "system32". Βήμα 4ο Ανοίξτε το "drvmap.txt" με οτιδήποτε (Notepad or whatever), εκτός απο MicrosoftWord! Διαγράψτε οτιδήποτε υπάρχει μέσα στο αρχείο! Και κάντε paste τα παρακάτω: "gldrv/nvoglnt.dll OpenGL Driver" (χωρίς τα" ") αν είστε nVidia User "gldrv/atioglxx.dll OpenGL Driver" (χωρίς τα " ") αν είστε ATI User "gldrv/opengl32.dll OpenGL Driver" (χωρίς τα " ") αν έχετε Default OpenGL Αποθηκέυστε και κλείστε το αρχείο. Βήμα 5ο Κάντε Restart το Steam, Start Counter-Strike μετά "Options". Πηγαίντε στο Video Tab και διαλλέξτε το OpenGL (πάνω αριστερά "Renderer"), κάντε apply και είστε οκ. That's it![/color Τo cs σας θα τρέχει τώρα σε OpenGL Mode και θα έχετε 100 FPS! Μην ξεχάσετε να βάλετε στην κονσόλα σας τις παρακάτω εντολές: fps_max 101 cl_updaterate 101 cl_cmdrate 101 cl_rate 9999 cl_cmdbackup 2 cl_upspeed 999 rate 25000 net_graph 3,cl_showfps 1(Για να βλέπετε τα fps σας). Ps: Δεν ανέβασα ScreenShots γιατι είναι πολύ απλό.Ότι απορία έχετε κάντε reply. By iroNMike
  5. Severity: To adjust the gravity turn the console with the tilde (left of 1) and type ‘sv_gravity’ and a number that will be the level of severity. Change Outfits: Activate the console with the tilde (left of 1) and type: . bind w “+ forward; model sas” . bind d “+ MoveRight; model gig-n” . bind a “+ moveleft; model l337″ . bind s “+ back; model arctic” . bind uparrow “+ forward; model vip” . bind rightarrow “+ MoveRight; model sciencetist” . bind leftarrow “+ moveleft; model gorilla . bind downarrow “+ back; model sas” Codes: Activate the console with the tilde (left of 1) and type ‘sv_cheats 1′. Then type: . $ 16,000: impulse101 . Hit all shots: 999999999 sv_clienttrace . Toggle the display mode observation cl_observercrosshair [0 or 1]. 1 by default. . Toggle help messages: ah [0 or 1]. 1 by default. . Set up the ice in the early rounds: mp_freezetime [seconds]. 0 to disable, default 6. . Set the timer C4: mp_c4timer (then type a number between -1000 and 1000) . Adjust the length of a round in minutes: mp_roundtime [3-15]. 5 by default. . Set minutes between map rotations: mp_timelimit. Default 0 . 800×600 environments: r_lightmap 1 . Add an accelerated speed: 999 cl_forwardspeed . Add hand-speed mode: 999 cl_sidespeed . Add speed to the return mode: 999 cl_backspeed . Change level: changelevel [level name] . Change the color of the viewer: adjust crosshair . Disable the previous tip: sv_clienttrace 0000 . Turn off the display to extend the trip: crosshair [1-5] . Separate the command keys: unbind [key currently bound in a command] . Arctic sniper rifle: givespaceweapon_awp . The walls return to normal: gl_zmax 3600 . Modify the map briefing after loading new levels: dm [0 or 1]. 1 by default. . Modify the shot friend mp_friendlyfire [0 or 1] . Modifying gravity: sv_gravity [-999 to 999999] . Modify the use of the flashlight: mp_flashlight [0 ou 1]. 1 by default. . Modifying Graphics: net_graph [0 or 1] . Changing steps: mp_footsteps [0 or 1]. 1 by default. . Get (name of weapon): give weapon_ (name of weapon) . Automatic reload + reload (-reload to clear) . Reveal how much time is left on the map: timeleft . Selection of skins: skin [skin name] . Suicide: kill . See ghosts observation mode: ghosts [0 ou 1]. 0 by default. . See things brightly without flashlight: lambert -1.0001 . View other players’ frags: cl_hidefrags 0 . See and shoot through walls: gl_zmax 0 . Auto Visor only with the sniper rifle: sv_aim Names of weapons: . weapon_ak47 . weapon_xm1014 . weapon_c4 . weapon_m4a1 . weapon_sg552 . weapon_elite . weapon_p90 weapon_glock18 . weapon_hegrenade . weapon_m3 . weapon_mac 10 . weapon_mp5navy . weapon_m249 . weapon_scout . weapon_p228 . weapon_aug . weapon_g3sg1 . weapon_deagle . weapon_flashbang . weapon_defuser . weapon_smokegrenade . weapon_kevlar . weapon_nightvision . weapon_sig550 . weapon_awp . weapon_ump45 . weapon_usp Names of the skins: . sas . GSG9 . seal . terror . arab . guerrilla . arctic . vip . hostage Have 90 bullets for Usp.45 Pistol: Buy a MAC-10 and all its bullets, then buy a Usp.45 Pistol. Have 120 bullets for Glock Pistol: Buy a MP5 and all its bullets, then buy a Glock Pistol. Have 98 bullets for Scout: Buy a Scout, shoot one bullet and reload. Buy more bullets. Have 120 bullets for Steyr TMP: Buy a MP5 and all its bullets, then buy a TMP. Have 59 bullets for the pistol Usp.45: Buy a Usp Pistol, shoot one bullet and reload. Buy more bullets. Have 89 bullets for H & K Sniper Rifle: Buy a Scout and all its bullets. Shoot one bullet, reload, and buy more bullets. Then buy an H & K Sniper Rifle. Tips: For all the tricks before you press the key that is on the left of 1: . To rename the server name and type cmd the name you want eg: cmd el_super_tonto name can not be any space (eg,.,: _. Wink except this line . To change your name during the game type name and the name you like for ex: name el_capo. . To fly, and jump very high (all players doing the same thing) (only works if you are the server) type sv_gravity x (x is any number) eg: sv_gravity 10 (common gravity is 800 and if you put 0 never will fall .) Tip: Download the console and type sv_airaccelerate -18, then hold down jump while keeping w w s tighten it will do is accelerate the speed of the character. Tips: . To take someone off the map (if it bothers you or is Camper) have to put: kick (name). For example: kick atu_tonto_endemoniado (only works if you server). . Rename the server: It is very simple, just to name cmd (name) example: cmd atu_navo name. . If you want your name change you have to put: name (name) example: name el_piojo_fiki. Tips: Click the button that is next to the 1 (No) to lower the console and type the following cheat, to finish writing the trick press Enter: . sv_gravity and number you want, that you put in the computer server is doing, to work. . if you want someone’s take your multiplayer game type kick and the name of the player you want it done. Transferring Walls: To be able to penetrate walls and writes down the console: waypoint on noclip and you do so. Tips: . Download the console with the button next to the Esc º (left of 1), write and play sv_re Tab. Following the completion of writing the command and put a number on how many seconds it will reset the game 0 deaths. . Download the console and as before write and play tab mp_fri and 1 or 0 depends to enable or disable. That will make you attack your friend. . And bring down the console and tab mp_free and the number of seconds. That will sometimes when you put the game within 3 seconds before starting the game. Tips: . If you want a gun and not have any money, just down the console and enter give_weapon (name of weapon you want) . If you want to get $ 16000 effortlessly written to the console menu impulse 101
  6. BEST COUNTER-STRIKE MATCH EVER COUNTER STRIKE 1.6 TIPS AND TRICKS CS 1.6 DE_NUKE BUNNY JUMP CS 1.6 TRICKS FOR GEGINNERS CS 1.6 TRICKS-GRENADES,SECRET PLACES,SECRET KILLING ! Video not found BUGS AND TRICKS CS 1.6 DUST AND DUST 2 COUNTER STRIKE 1.6 SNIPER MONTAGE
  7. en aim bot cheat to usaris sto cs kai travas sunexia headshot ktlp.
  8. The plugin is a mod like warcraft 3 with xp/level/skills. One thing to notice though is that the plugin is based on item finding instead of skills. When you kill someone there is a chance to find an item. Some are passive, like increasing your damage, some has a once-a-round effect while others just help you find even more powerfull stuff There's is about 60 new items in the mod. Most items have a passive and an active skill Some of the items are: x) Place a camera who will follow nearest player x) Sneak round with knife nearly invisible x) Hold down DUCK to jump fast x) Windwalk from dota x) Blind your opponent when hit x) Vampyric aura x) Healing aura x) Lay a fake c4 bomb and detonate it at will x) Dagon from dota x) Throw fireballs which detonates on impact x) Blink forward with knife x) Shield on another player to reflect his damage taken. x) Jump down and stomp the ground killing all below you x) Blind, slow, and damage all players around you with rot x) Steal money and convert them into health x) Put down mines which damage the opponent when they touch them x) Become invisible to ALL players for x seconds. Commands are: x) Menu for a quick navigation menu x) Iteminfo or /Iteminfo x) Dropitem or /Dropitem x) USE button to use specific items x) /Rune to shop runes There's also four skills: x) Intelligence (Boost items damage and length) x) Strength (Boost players hitpoints) x) Dextery (Better chance to find more rare items and reduced damage) x) Agility (More run speed and reduced magic damage) And 6 hero classes: x) Paladin (Bonus to strength) x) Monk (Bonus to experience gained) x) Assassin (Sillent and bonus to speed) x) Barbarian (Regain hp when he kills an enemy) x) Necromancer (Return damage taken and bonus to damage reduction) x) Sorcerer (Bonus to intelligence) Also, each round a leader is chosen, he will earn more experience and his teammates will each more experience while he is alive, so make sure he don't die. Items are saved on mapchange. This mod will not support savexp! It's just not the type of gameplay I want. It is possible to upgrade some items with runes. This will make the item more powerfull or give it a brand new effect. TODO ML Support Item filter configuration Save experience +Bugfix for stalkers ring with changerace +Bugfix for medicine glar +Added server CVAR: diablomod_version +Some small optimizations +Bug with classes not shown in spectator mode fixed +Invisible players can no longer be shielded (as this would ruin the invisibility) +Item 25 now has a name (blood diamond) +Darksteel glove damage is more accurate calculated +Money is now withdrawed AFTER the initial checks for an upgrade is made +More optimizations +Some new abilities to passive items (healing totem) +Fixed money shield not disabling on round end +Fixed /rune not buying for the right amount of money +Rune to gain experience added ===================== +Added ALOT of new abilities for passive items. +Fixed alot of bugs +Removed an optimized most of the player iterations and tasks +Added 4 new items +Added xp bonus on bomb plant +Items will not be triggered when the user is defusing the bomb ===================== +Changerace added (/changerace or /changeclass) +Dextery reduce magic damage taken +Agility reduce damage taken +Various item decriptions fixed +Show percentage of XP needed to level up in hud +Dextery and assassin no longer makes you able to avoid freezetime +Killing hostages as level 1 no longer result in an array out of bounds exception +Players can use the USE buttom instead of binding a key to USEMAGIC to use trigger items +Bleed effect to damage amplifiers +Loginfo to kill messages Download Diablo Install By:alliedmods
  9. i dont need become cs mod im only making shares on cs section any prob? and if you dont like it just dont spam!
  10. 1: Most Popular User - WierdSituation 2: Funnier User - L2expert 3: Active User - Finito 4: Spammer - Elfocrash 5: Top Shares - (none) 6: Most trolling - Raule 7: Most Hated - (none) 8: Most loved - (none) 9: Most Missed - Extremedwarf 10: Most loved moderator - Noble
  11. 9a tou pari xronia na to diavasi :D exi guides edw as diavasi afta ^^
  12. Guide about how to start garena and play Counter Strike 1.6 in garena 1.Open Garena and Log In 2. You Will be getting a window like this 3.Click On “Game” icon on the left side of the client 4.Once you click on “ Game “ tab you will get the list of games 5.Click on "Counter Strike 1.6" icon 6.The room names will appear as given below 7. After chossing the country [ Room ] as per your requirements you will get the screen as shown 8.Now click on Settings 9.The window will appear as shown below 10.Click on the browse icon 11.A window will appear like this 12.Locate the cstrike.exe and click “OPEN” 13.Now in Bootstrap Paramter type “–game cstrike” 14.After doing that click on “Update” 15.And then click “Close” Now you have your Counter Strike 1.6 ready to play [ In garena ] 16.To Start The Game click on “Start Game” icon 17.Now the game opens 18. Press “ ` “[~] button to open console [ Below ESC ] 19. Now get an IP from garena main chat or type slist in console to get ip 20. Copy any IP and type in console “ connect <ip> “ and press Enter or click on “Submit” icon Eg: “connect 192.168.29.38.27015” Now You will be Connected to the server and you can play To change your Nick Name [ in Counter Strike ] 1.Click On Options 3.After typing your name Click on “Apply” Now you got your name changed! By, Aditya
  13. 1.Graphics card Setting: I am displaying with examples of Nvidia display driver you should have similar options in Ati cards or any other gfx card. Ok so first step is to open nvidia control panel from nvidia icon in taskbar by right clicking on it and choosing nvidia control panel. You can do the same by going to control panel and opening it from there. Now Choose "3d settings" option from the nvidia control panel. After that choose "adjust image settings with preview" don't worry if you don't find that option the important point is you have to edit 3d settings. Then choose "use advanced 3d settings " and click on take me there as shown in image. Choose Global Settings tab and then choose texture filtering option and select high performance from drop down list as shown in the figure below. This option is most important as it will cause sharp rise in your fps. Choose Vertical sync option and select force off ,Also turn the anisotropic filtering to application controlled (as it is not allowed to be turned off in tournaments) and anti aliasing to off. One more thing if your graphics card is dual display card then choose hardware acceleration to single display performance mode. Apply these settings and move to game configuration part. 2. Configuring Counter Strike/CS1.6 : Configuring start up options and launch parameters: Right click on the shortcut to your game and select properties then in the target field append the parameters -noipx -sv_lan 0 +heapsize 250000 +sys_ticrate 1000. For example "C:\Counter-Strike 1.6 + Half-Life\hl.exe" -game cstrike -noipx -sv_lan 0 +heapsize 250000 +sys_ticrate 1000" and in case of steam append it after the -applaunch 10 parameter. Now launch the game and open the console by pressing '`' character and type fps_max 101 and after that r_decals 300 , rate 25000 , cl_updaterate 101 ,cl_cmdrate 101 . because they must match your fps rate for better registry. Now go to video options and select open gl mode with resolution of your choice.
  14. Before we begin, it is important to understand that this tutorial assumes you know the basics about Pawn (syntactically and the implementation of it in AMXX). You should be at least an intermediate level scripter, and have knowledge of SQL (the language itself) and perhaps DBI (the now outdated and deprecated, although still functional SQL driver that was used in AMXX for a time). I will do small sections explaining the SQL code itself, but for the most part you should know the basics. SQLx is one of the new SQL driver sets and APIs that were incorporated into AMXX 1.75 (?) and made publicly available shortly after the release of AMXX 1.70. The important new features include the ability to thread queries (to save gameplay interruption, the queries to the database are dispatched to a new thread and then a callback is made when the query is completed or fails), better API abstraction (easier to write plugins with and more understandable), connection "tuples" (a system used to store information about a database but not connect to it - very useful for writing APIs where a connection should be allowed to be independent across differen plugins), and the ability to load multiple modules (can load MySQL, SQLite and any other drivers). The most important thing to understand about SQLx is that the entire system works with "Handles", which store all information such as a connection, tuple, result and prepared query. This makes it very simple to both screw up (trying to connect to a query's result, due to lack of tag differentiation, for example) but at the same time makes things a lot simpler - for example, a connection is dropped by running SQL_FreeHandle, the same native used to free a result, free a prepared query and free a database tuple. Let's look at a comparison between DBI and SQLx: DBI: #include <amxmodx> #include <amxmisc> #include <dbi> new Sql:g_SqlConnection new g_Error[512] public plugin_init() { register_plugin("DBI Demonstration","1.0","Hawk552") new Host[64],User[64],Pass[64],Db[64] // let's fetch the cvars we will use to connect // no pcvars because we're only fetching them once get_cvar_string("amx_sql_host",Host,63) get_cvar_string("amx_sql_user",User,63) get_cvar_string("amx_sql_pass",Pass,63) get_cvar_string("amx_sql_db",Db,63) // ok, we're ready to connect g_SqlConnection = dbi_connect(Host,User,Pass,Db,g_Error,511) // indicates that the connection failed (it's either SQL_OK or SQL_FAILED) if(g_SqlConnection < SQL_OK) // stop the plugin with an error message set_fail_state(g_Error) new Result:Results[3] // run some queries if((Results[0] = dbi_query(g_SqlConnection,"CREATE TABLE IF NOT EXISTS zomg (you INT(11),are INT(11),a INT(11),noob INT(11))")) < RESULT_OK || (Results[1] = dbi_query(g_SqlConnection,"INSERT INTO zomg VALUES('1','2','3','4')")) < RESULT_OK || (Results[2] = dbi_query(g_SqlConnection,"INSERT INTO zomg VALUES('4','3','2','1')")) < RESULT_OK) { // fetch any error if there were problems dbi_error(g_SqlConnection,g_Error,511) // stop the plugin set_fail_state(g_Error) } // free the result handles for(new Count;Count < 3;Count++) dbi_free_result(Results[Count]) } public client_disconnect(id) { // run a random query new Result:QueryResult = dbi_query(g_SqlConnection,"SELECT * FROM zomg WHERE you='1' OR you='4'") // query failed - database probably closed since the last time we used it if(!QueryResult) { dbi_error(g_SqlConnection,g_Error,511) set_fail_state(g_Error) } new Data // notice here that we run the dbi_nextrow first - one of the main reasons I don't like DBI. // you MUST do this, it doesn't start at the first row while(dbi_nextrow(Result)) { // get the row // note that we could also use dbi_result(Result,"you") Data = dbi_field(Result,1) // tell the server console we have found data server_print("zomg, we have data: %d",Data) } } public plugin_end() // close the connection dbi_close(g_SqlConnection) SQLx: #include <amxmodx> #include <amxmisc> #include <sqlx> new Handle:g_SqlTuple new g_Error[512] As you can see, there aren't too many differences when not using threaded querying (which, in case you were wondering, I did not include in this example). Unfortunately, none of this demonstrates the true power of SQLx. The only thing it showcases really is the Handle: and SQL_FreeHandle system. The true power lies in threaded querying. Threaded querying means nothing short of a rewrite of an entire plugin that's written with DBI, but has huge advantages, especially on slow connections. The idea of a threaded query is essentially that a new thread (a sub-process) with which its only goal is to send, monitor, and inform of the things that happen to a query. Because it is on a seperate thread, a query that would normally take 1 second (and 1 second of total connection loss for all clients in the server) still takes the same a-beep-t of time, but does not interrupt gameplay. What are the disadvantages? As I wrote, it means basically a total rewrite, and a hell of a lot more code. When a threaded query is completed, it calls a function (that is declared in the prototype of SQL_ThreadQuery) that handles the result of the query. It could be any a-beep-t of time after this query is sent, meaning time sensitive events would be nearly impossible to work with. Here's an example in action: [code]#include <amxmodx> #include <amxmisc> #include <sqlx> new Handle:g_SqlTuple new g_Cache[512] public plugin_init() { register_plugin("SQLx Demonstration","1.0","Hawk552") new Host[64],User[64],Pass[64],Db[64] // let's fetch the cvars we will use to connect // no pcvars because we're only fetching them once get_cvar_string("amx_sql_host",Host,63) get_cvar_string("amx_sql_user",User,63) get_cvar_string("amx_sql_pass",Pass,63) get_cvar_string("amx_sql_db",Db,63) // we tell the API that this is the information we want to connect to, // just not yet. basically it's like storing it in global variables g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) copy(g_Cache,511,"CREATE TABLE IF NOT EXISTS zomg (you INT(11),are INT(11),a INT(11),noob INT(11))") SQL_ThreadQuery(g_SqlTuple,"TableHandle",g_Cache) } public TableHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { // lots of error checking if(FailState == TQUERY_CONNECT_FAILED) return set_fail_state("Could not connect to SQL database.") else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("Query failed.") if(Errcode) return log_amx("Error on query: %s",Error) SQL_ThreadQuery(g_SqlTuple,"QueryHandle","INSERT INTO zomg VALUES('1','2','3','4')") SQL_ThreadQuery(g_SqlTuple,"QueryHandle","INSERT INTO zomg VALUES('4','3','2','1')") // notice that we didn't free the query - you don't have to return PLUGIN_CONTINUE } public QueryHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { // lots of error checking if(FailState == TQUERY_CONNECT_FAILED) return set_fail_state("Could not connect to SQL database.") else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("Query failed.") if(Errcode) return log_amx("Error on query: %s",Error) return PLUGIN_CONTINUE } public client_disconnect(id) SQL_ThreadQuery(g_SqlTuple,"SelectHandle","SELECT * FROM zomg WHERE you='1' OR you='4'") public SelectHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(FailState == TQUERY_CONNECT_FAILED) return set_fail_state("Could not connect to SQL database.") else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("Query failed.") if(Errcode) return log_amx("Error on query: %s",Error) new DataNum while(SQL_MoreResults(Query)) { DataNum = SQL_ReadResult(Query,0) server_print("zomg, some data: %d",DataNum) SQL_NextRow(Query) } return PLUGIN_CONTINUE } public plugin_end() // free the tuple - note that this does not close the connection, // since it wasn't connected in the first place SQL_FreeHandle(g_SqlTuple) public plugin_init() { register_plugin("SQLx Demonstration","1.0","Hawk552") new Host[64],User[64],Pass[64],Db[64] // let's fetch the cvars we will use to connect // no pcvars because we're only fetching them once get_cvar_string("amx_sql_host",Host,63) get_cvar_string("amx_sql_user",User,63) get_cvar_string("amx_sql_pass",Pass,63) get_cvar_string("amx_sql_db",Db,63) // we tell the API that this is the information we want to connect to, // just not yet. basically it's like storing it in global variables g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) // ok, we're ready to connect new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511) if(SqlConnection == Empty_Handle) // stop the plugin with an error message set_fail_state(g_Error) new Handle:Queries[3] // we must now prepare some random queries Queries[0] = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS zomg (you INT(11),are INT(11),a INT(11),noob INT(11))") Queries[1] = SQL_PrepareQuery(SqlConnection,"INSERT INTO zomg VALUES('1','2','3','4')") Queries[2] = SQL_PrepareQuery(SqlConnection,"INSERT INTO zomg VALUES('4','3','2','1')") for(new Count;Count < 3;Count++) { // run the queries, check if they were alright // note that you can run the same query multiple times // we are not doing this here, but it's nice to have if(!SQL_Execute(Queries[Count])) { // if there were any problems SQL_QueryError(Queries[Count],g_Error,511) set_fail_state(g_Error) } // close the handle SQL_FreeHandle(Queries[Count]) } // you free everything with SQL_FreeHandle SQL_FreeHandle(SqlConnection) } public client_disconnect(id) { // ok, we're ready to connect new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511) if(SqlConnection == Empty_Handle) // stop the plugin with an error message set_fail_state(g_Error) // run a random query new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT * FROM zomg WHERE you='1' OR you='4'") // run the query if(!SQL_Execute(Query)) { // if there were any problems SQL_QueryError(Query,g_Error,511) set_fail_state(g_Error) } // checks to make sure there's more results // notice that it starts at the first row, rather than null new Data while(SQL_MoreResults(Query)) { // columns start at 0 Data = SQL_ReadResult(Query,0) server_print("Found data: %d",Data) SQL_NextRow(Query) } // of course, free the handle SQL_FreeHandle(Query) // and of course, free the connection SQL_FreeHandle(SqlConnection) } public plugin_end() // free the tuple - note that this does not close the connection, // since it wasn't connected in the first place SQL_FreeHandle(g_SqlTuple) [/code] Not so hard - especially if the result you get doesn't matter. Finally, multiple modules running can be accomplished by running SQL_GetAffinity, comparing it to the database type you want to run, and setting it with SQL_SetAffinity. An example of this can be found in the sqlx.inc header: new set_type[12] //... get_cvar_string("amx_sql_type", set_type, 11) //... SQL_GetAffinity(get_type, 12) if (!equali(get_type, set_type)) { if (!SQL_SetAffinity(set_type)) { log_amx("Failed to set affinity from %s to %s.", get_type, set_type) } SQLx is also useful for dealing with multiple plugins - the "tuple" and "handle" system makes for easy transfer of information across unknown territory (specifically addon plugins). Here is an example: #include <amxmodx> #include <amxmisc> #include <sqlx> new Handle:g_SqlTuple public plugin_init() register_plugin("SQLx Demonstration - Core","1.0","Hawk552") public plugin_natives() { new Host[64],User[64],Pass[64],Db[64] // let's fetch the cvars we will use to connect // no pcvars because we're only fetching them once get_cvar_string("amx_sql_host",Host,63) get_cvar_string("amx_sql_user",User,63) get_cvar_string("amx_sql_pass",Pass,63) get_cvar_string("amx_sql_db",Db,63) // we tell the API that this is the information we want to connect to, // just not yet. basically it's like storing it in global variables g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) register_native("sql_demo_get_handle","_sql_demo_get_handle") } public _sql_demo_get_handle() return _:g_SqlTuple public plugin_end() // free the tuple - note that this does not close the connection, // since it wasn't connected in the first place SQL_FreeHandle(g_SqlTuple) #include <amxmodx> #include <amxmisc> #include <sqlx> native Handle:sql_demo_get_handle() public plugin_init() { register_plugin("SQLx Demonstration - Attachment","1.0","Hawk552") SQL_ThreadQuery(sql_demo_get_handle(),"QueryHandle","CREATE TABLE IF NOT EXISTS zomg (rofl INT(11))") } public QueryHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(FailState == TQUERY_CONNECT_FAILED) return set_fail_state("Could not connect to SQL database.") else if(FailState == TQUERY_QUERY_FAILED) return set_fail_state("Query failed.") if(Errcode) return log_amx("Error on query: %s",Error) server_print("zomg, table made") Accomplishing this in DBI is not hard, but a connection would constantly need to be left open, something that SQLx doesn't demand. Remember that all SQLx modules contain support for DBI as well, and many people are more comfortable with it. DBI has its weaknesses however, and SQLx was designed to overcome them. Like always, if you have any questions or comments, feel free to post. By: Hawk552
  15. This is for Zombie Plague 4.3 Im going to show you how to make a simple zombie class! we are going to make a Zombie Class called "Gravity Zombie" and will have low gravity. First step, we need to include ZombiePlague #include <amxmodx> #include <zombieplague> 2 step. is to make the Zombie Attributes // Zombie Attributes new const zclass_name[] = { "Gravity Zombie" } // name new const zclass_info[] = { "Low grav -HP" } // description new const zclass_model[] = { "zombie_Source" } // model new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } // claw model const zclass_health = 800 // health const zclass_speed = 200 // speed const Float:zclass_gravity = 0.4 // gravity const Float:zclass_knockback = 0.6 // knockback 3 step. make a simple "new" code for the next entry. // Class IDs new g_zclassid1 4. Now register the Zombie Class so we make this. // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[ZP] Zombie Class: Gravity Zombie", "1.0", "Zombiezzz") // Register the new class and store ID for reference g_zclassid1 = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) } 5. We are almsot done. Now we make a code that makes something happens when the persone chooses the class. We will use a simple Client_print which will show the player w.e u want when he choose the class. public zp_user_infected_post ( id, infector ) { if (zp_get_user_zombie_class(id) == g_zclassid1) { client_print(id, print_chat, "[ZP] You Have Choosen Gravity Zombie") } } you can add glow and other items in that place. Now put it all together and you should have it like this ^_^ /* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <zombieplague> // Zombie Attributes new const zclass_name[] = { "Gravity Zombie" } // name new const zclass_info[] = { "Low Grav -HP" } // description new const zclass_model[] = { "zombie_source" } // model new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } // claw model const zclass_health = 800 // health const zclass_speed = 200 // speed const Float:zclass_gravity = 0.5 // gravity const Float:zclass_knockback = 0.6 // knockback // Class IDs new g_zclassid1 // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[ZP] Zombie Class: Gravity Zombie", "1.0", "Zombiezzz") // Register the new class and store ID for reference g_zclassid1 = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) } public zp_user_infected_post ( id, infector ) { if (zp_get_user_zombie_class(id) == g_zclassid1) { client_print(id, print_chat, "[ZP] You Have Choosen Gravity Zombie") } } also if you want to add more like lets say red glow, just reamnber to #include fun or whate ever function is needed like here. /* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <fun> #include <zombieplague> // Zombie Attributes new const zclass_name[] = { "Gravity Zombie" } // name new const zclass_info[] = { "Low Grav -HP" } // description new const zclass_model[] = { "zombie_source" } // model new const zclass_clawmodel[] = { "v_knife_zombie.mdl" } // claw model const zclass_health = 800 // health const zclass_speed = 200 // speed const Float:zclass_gravity = 0.5 // gravity const Float:zclass_knockback = 0.6 // knockback // Class IDs new g_zclassid1 // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[ZP] Zombie Class: Gravity Zombie", "1.0", "Zombiezzz") // Register the new class and store ID for reference g_zclassid1 = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) } public zp_user_infected_post ( id, infector ) { if (zp_get_user_zombie_class(id) == g_zclassid1) { set_user_rendering(index,kRenderFxGlowShell,255,0,0,kRenderNormal,25) client_print(id, print_chat, "[ZP] You Have Choosen Gravity Zombie") } }
  16. Since the release of my source code for Warcraft 3: Expansion, I've gotten a lot of praise from people saying things like "wow that's the cleanest code I have ever seen!", and "where did you learn to code like that?", and my favorite, "that must have taken you forever to get your code that neat", etc etc... ...but this is simply not the case.. If you adapt to good programing habits at the start of a project, your code will look clean and professional at the very end as well. And that's what I'm here to help everyone with today. Now let me start by saying that I've looked at the source code to lots of plugins, and overall they are very sloppy. This is not to say they were not coded well, more that they could have been layed out better. This is helpful when admins try to alter bits and pieces for their server(s), or if someone is looking to revamp or convert a script over to another platform. -- (BEGIN BABBLING) -- I'll let you all in on a secret.. I used to play War3mod (by spacedude) and i LOVED it, however, crit nades, teleportation, and levitation really hurt the server(s) I played on because (especially with levitation and teleport) these skills were used and abused by the players, and there were not many admins available at peak times. My intention was simply to modify these skills so that they re-balanced the game while keeping it fun, but I took one look at the source code and decided I NEEDED to write it from scratch. So I did. And so WAR3X was born. -- (END BABBLING) -- So let's get down to it. Below is a list of things that can be done to improve your programing habits, which will make them easier for you and others to edit in the long run. Meaningful Variable Names (MODIFIED) Many people have a problem with variable names. I've seen variables hit with such a bad case of shorthand that by looking at them, it is a mystery where they came from and what they do. Don't be afraid to use more than 10 characters in your variable names! The key is READABILITY! One good habit to get into is using Hungarian Notation (HN) where applicable. For example, all global variables should start with "g_". This will let anyone know that looks at your code that "hey, this is a global variable!", without needing to see where and how it was initialized. It is also helpful to prefix any variable that will be used in mathematical equasions with HN, ie- integers with "i", floats with "f", etc, etc. Even though Small is different from other languages in that every variable, no matter the "label", is actually an integer (even floats!), by using a little bit of HN you're almost guaranteed never to get a tag mismatch warning on your compile. Don't overdo it, though!!! The key once again is READABILITY. If you don't know which HN to prefix with, then don't bother. Come up with your own naming convention. A good example is player indexes. using "id" is great. but if you're using 2 or more different player indexes in a bit of your code, differenciate them a bit, like "attackerId" and "victimId" or "killerId", etc. Remember the phrase KISS - Keep it simple, stupid! Naming Schemes Good naming schemes are always a sight for sore eyes. Prefixing similar functions/variables with a common word makes for easy reading and editing of source code. For example, If you have in your script events for damage and death, avoid naming them Damage_Event() and Death_Event(). Instead, name them Event_Damage(), and Event_Death(). For text editors that have function lists (Ultraedit32 is what I use), these will appear right on top of each other, adding to the organization of the plugin. The same goes for variables. If you are trying to store a player's current health and armor as global variables, try naming them something like g_iPlayerHealth and g_iPlayerArmor. Multiple Files Multiple files will help you keep your plugin(s) very organized. This is not necessary for small scripts, however, when your script begins to grow very large, this is definately a good idea. You'd be amazed at how much throwing all of your events into their own file really cleans up your code. There is one minor problem with combining files, though, and that is the inaccurate display of runtime errors (if they exist). If your script is made up of 5 files, and in the 5th file there is a runtime on line 10, AMXX will report your error on line 10, even if there are 500 lines of code in file 4 alone. To fix this problem for war3x, Willyumyum came up with an INLINE FILE COMBINER, which combines all of our inline files into one large file, which we then compile. This program will be made public, complete with a nice looking GUI frontend, within the next month or so Use constants Another thing you want to avoid while programing, is hard-coding things into your scripts. Use constants, and #defines instead. Even if something is used only once in your plugin, it might be worth making a constant for it. Why? because constants take normal things, like numbers, and make them into something named, which are far easier to remember. They also make changing an aspect of your plugin as easy as changing one constant, instead of having to change EVERY occurance of the number '3' in your code, for example. Here's another example... You want to write a plugin that acts like an RPG, and will have 4 races, with 3 classes per race. You want to save a couple of constants like so: #define TOTAL_RACES 4 #define TOTAL_CLASSES 3 This will make performing loops much easier, and if you decide to add an additional race in the future, All you'd need to do is change TOTAL_RACES to 5. Make extensive use of comments! Even though you may know every inch of your plugin, a foreign set of eyes may not, and as your script gets bigger, you may forget about things yourself. If there is ever something you can not finish, or don't quite know how to implement, a comment can be a useful tool. Putting one in your code may catch a fellow coder's attention that has a solution to a problem you may be having, etc etc. For example.. /* for some reason, this sequence screws up if this variable is not initialized to 0 */ new iVariable = 0; This could prevent another programer from looking at your plugin and removing this seemingly redundant initialization, in turn causing untraceable problems in the plugin down the road. So do yourself a favor, and add the comments in. You will thank yourself in the long run. Close with semicolons (MODIFIED) I want to emphasise that this is NOT REQUIRED by the Small language, but a good habit to get into is closing out your lines with semicolons. This is because if you have any intentions of learning any other language, you're almost guaranteed that you will need to close out your lines with them. So again, not required, but overall a good habit. /* For people that want to force the compiler to look for closing semi's, you can force them with the following: */ #pragma semicolon 1 Conformity (NEW) If you pick a style, stick with it. Don't make multiple coding standards in one document. (From: BAILOPAN) Indentation, PLEASE! I've seen a LOT of scripts that do not do a single bit of indentation. This is NIGHTMARE to debug!!! Every time you open a brace "{" INDENT! this means at the start of functions, the start of if/then conditionals, switches, etc, etc, etc, etc, etc, etc, etc, etc, etc! Please no more of this!... public some_function(id){ new szVariable[10] format(szVariable,9,"hello!!!!") if(id==0){ server_print(szVariable) }else{ client_print(id,print_chat,szVariable) } return PLUGIN_HANDLED } Take the time to make it READABLE! Like so.. public some_function( id ) { new szVariable[10]; format( szVariable, 9, "hello!!!!" ); if ( id == 0 ) { server_print( szVariable ); } else { client_print( id, print_chat, szVariable ); } return PLUGIN_HANDLED; } Whitespace, Whitespace, Whitespace!!! This I saved for last because it is the MOST IMPORTANT!!! whitespace does not add to the size of your compiled code (because it is overlooked by the compiler), but adds a whole new dimension of readability to your plugin. Avoid clumping things together. Use common sense and separate things from each other. This means adding spaces after every function argument, indents after every conditional statement, and linefeeds to separate unrelated actions. Also use comments, and be sure to space out all arguments inside of parenthesis ()'s. (see example above). I'm going to use a function right out of one of the default .sma files that come with both AMX and AMXMODX, originally written by OLO. Original Code public cmdSlay(id,level,cid) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new arg[32] read_argv(1,arg,31) new player = cmd_target(id,arg,5) if (!player) return PLUGIN_HANDLED user_kill(player) new authid[32],name2[32],authid2[32],name[32] get_user_authid(id,authid,31) get_user_name(id,name,31) get_user_authid(player,authid2,31) get_user_name(player,name2,31) log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name,get_user_userid(id),authid, name2,get_user_userid(player),authid2 ) switch (get_cvar_num("amx_show_activity")) { case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAY_2",name,name2) case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAY_1",name2) } console_print(id,"[AMXX] %L",id,"CLIENT_SLAYED",name2) return PLUGIN_HANDLED } Polished Code public cmdSlay( id, level, cid ) { if ( !cmd_access( id, level, cid, 2 ) ) return PLUGIN_HANDLED; new szArg[32]; read_argv( 1, szArg, 31 ); // Get ID of player to be slayed new targetId = cmd_target( id, szArg, 5 ); if ( !targetId ) return PLUGIN_HANDLED; user_kill( targetId ); // Grab admin/target names/authids new szAuthid[32], szName[32], szAuthid2[32], szName2[32]; get_user_authid( id, szAuthid, 31 ); get_user_name( id, szName, 31 ); get_user_authid( targetId, szAuthid2, 31 ); get_user_name( targetId, szName2, 31 ); // Log command log_amx( "Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", szName, get_user_userid( id ), szAuthid, szName2, get_user_userid( targetId ), azAuthid2 ); // Display slay to all other players switch ( get_cvar_num( "amx_show_activity" ) ) { case 2: client_print( 0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_2", szName, szName2 ); case 1: client_print( 0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_1", szName2 ); } // Confirm slay to admin console_print( id, "[AMXX] %L", id, "CLIENT_SLAYED", szName2 ); return PLUGIN_HANDLED; } I hope this information is helpful to everyone that wants to clean up their code a little bit! (or a lot) Take care By: Ryan
  17. Counter-Strike 1.6 Basic Knowledge Followings are the Default BUY menu & Controls for Counter-Strike 1.6 |----------------------------------------------------------------------------| | [1.3] Controls |----------------------------------------------------------------------------| |-------------------------|-------------| | Function | Key | |-------------------------|-------------| | Buy Menu | B | |-------------------------|-------------| | Buy Equip Menu | O | |-------------------------|-------------| | Buy Prim. Ammo | , | |-------------------------|-------------| | Buy Sec. Ammo | . | |-------------------------|-------------| | Select Team | M | |-------------------------|-------------| | Drop Weapon | G | |-------------------------|-------------| | Standard Radio Msgs | Z | |-------------------------|-------------| | Group Radio Msgs | X | |-------------------------|-------------| | Report Radio Msgs | C | |-------------------------|-------------| | Move Forward | W, Up arrow | |-------------------------|-------------| | Move Backwards | S, Down Arr | |-------------------------|-------------| | Turn Left | Lft Arrow | |-------------------------|-------------| | Turn Right | Rgt Arrow | |-------------------------|-------------| | Move Left (strafe) | A | |-------------------------|-------------| | Move Right (strafe) | D | |-------------------------|-------------| | Jump | SPACE | |-------------------------|-------------| | Crouch | CTRL | |-------------------------|-------------| | Swim Up | ' | |-------------------------|-------------| | Swim Down | / | |-------------------------|-------------| | Look Up | PGUP | |-------------------------|-------------| | Look Down | PGDN | |-------------------------|-------------| | Look Ahead | END | |-------------------------|-------------| | Strafe Modifier | ALT | |-------------------------|-------------| | Mouse Look Modifier | ; | |-------------------------|-------------| | Keyboard Modifier | INSERT | |-------------------------|-------------| | Fire | MB1, ENTER | |-------------------------|-------------| | Special Mouse Function | MB2, \ | |-------------------------|-------------| | Reload | R | |-------------------------|-------------| | Use | E | |-------------------------|-------------| | Walk | SHIFT | |-------------------------|-------------| | NV Goggles | N | |-------------------------|-------------| | Flashlight | F | |-------------------------|-------------| | Spray Logo | T | |-------------------------|-------------| | Weapon #1 | 1 | |-------------------------|-------------| | Weapon #2 | 2 | |-------------------------|-------------| | Weapon #3 | 3 | |-------------------------|-------------| | Weapon #4 | 4 | |-------------------------|-------------| | Weapon #5 | 5 | |-------------------------|-------------| | Last used Weapon | Q | |-------------------------|-------------| | Multiplayer Scores | TAB | |-------------------------|-------------| | Talk to everyone | Y | |-------------------------|-------------| | Talk to Teammates | U | |-------------------------|-------------| | Take Screen Shot | F5 | |-------------------------|-------------| Following Are The Basic-Guide Lines For Counter-Strike1.6 Important Rifles CV-47 (AK-47) (Terrorist Force) 30 rounds per clip, $80 per clip, 90 rounds total. Damage: 39 Firing rate (cps): 10.5 Price: $ 2500 Pros: powerful, cheap and through things Cons: poor accuracy and significant decline in long-range burst First of all the best way to kill with the AK47 is when you see the enemy you mainly shoot the head.If you can get a direct hit on it then the enemy will die fastly.If you spray shoot and by that i mean shoot without stopping then i suggest to bring your crosshair lower to there feet.That way you will get a good shot.If you for example shoot then stop and then shoot then just aim for the head. The Ak47 specially use for tapping of bulletes and spaming.This weapon is a important in a long range firing.The AK47 is the standard un-zoom assault rifle used by the Terrorists Forece (and is only available to them). It is a hard weapon to use well, but is very accurate when used properly. The key to using the AK47 is to remember that it is only accurate when fired from a standstill, and only for the first shot or two of a burst, and after that the accuracy severely degrades. Even in close quarters, holding down the trigger on the AK47 is not a good idea due to its extremely poor accuracy. It is surprisingly cheap for its accuracy when used properly. Learn to fire only one shot or two at a time when holding still, and the AK47 becomes an extremely accurate weapon. Maverick (M4A1)(Counter-Terrorist) 30 rounds per clip, $60 per clip, 90 rounds total. Colt M4A1 Carbine Damage: 28 Firing rate (counts per second): 11.4 Price: $ 3,100 Pros: has a quiet, high damage, through things (doors and crates) Cons: limited accuracy in burst mode M4 Is a spacially uisng for spray & spaming continuously. This weapon is a favorite in Counter-Strike; although it is available for purchase only to Counter-Terrorists, one will often find Terrorists using that they've picked up from their killed enemies. This extremely accurate, and although its accuracy is considerably reduced when fired in bursts, it does not nearly have the same accuracy problems that the AK47 has.So what i mainly do is at the beginning i put on the silencer that way they wont here that much and i find it easier to use.And it simply stands the same way as the AK47 Magnum Sniper Rifle (AWP) 10 rounds per clip, $125 per clip, 30 rounds total. Damage: 48 Firing rate (cps): 4 Price: $ 4,750 Pros: high rate of fire for a sniper rifle, through walls Cons: very expensive and important cooldown The Madnum Sniper Rifle is the most expensive weapon (AWP).if a player uses the AWP sniper rifle he may only rerquire one good shot to get the kill rather than a good few rounds of fire from weapons like the M4 & AK-47. Because of this you could class it as an advantage to the AWP player and therefore he/she is playing the newbie route, taking the easy option. Thank You Regards, By:G.BuZz
  18. AK-47(CK-47) is the most powerful weapon for those who knows its use.!! But if you are able to unlock the secret behind this weapon, it will improve your CS Skills (as Terrorist) for life.!! Avaibility: Terrorist Only Cost: $2500 Rounds per Clip: 30 Rate of fire: 11rps Reload Time: 2.5 Seconds Avg. damage to unarmored chest: 38 health Avg. damage to unarmored head: 100 health Avg. damage to armored chest: 27 health 4 armor Avg. damage to armored head: 100 health 15 armor Advantages 1. AK-47 weapon is the most effective weapon with a great power no matter how far your enemy stands. 2. It has a very high rate of fire and comes at a very reasonable price. 3. At medium and long range, it can be used as a sniper but without scope. 4. It has a very tight crosshair like the MP5 Navy, which increases accuracy and gives a greater chance for grabbing a headshot within the first few bullets fired. 5. It helps give you time to reload as it frighten the enemies because of its loud noise on fire. Disadvantages 1. Very harsh recoil. 2. Very loud noise on firing. 3. On firing it gives the location of the person because of the noise. 4. The cross-hair expands very fast on shooting, this leads to lack of accuracy. Despite of its disadvantages, you will find that this gun is a very useful gun and you won't be bothered about the recoil. So keep on practicing and the kills will flow. How to Control Recoil Recoil control is not as easy as it may seem. Timing and precision are very important, and must be combined with burst fire. When the crosshair expands, try to pull the crosshair down slightly towards the lower body. By doing this, you’ll get a nice, clean shot and can hopefully get off a few more bullets before having to take a moment to allow the crosshair to recover, before your next burst. Short Range Kill In short range combat, sharp aiming is required, along with lightning reactions. It is recommended that you shoot in 3-5 shots bursts, where possible, to increase accuracy and handle recoil. Medium Range Kill In medium range combat, first assessment of weapon is very important. 1. If you come across a SMG or any other weapon, take more time to aim and maintain your position a little longer. If he fires back, throw any grenades that may assist you. When he’s blinded/hurt, take advantage of this situation and fire your bursts. He might not grab a shot on you. 2. If he has a rifle too, use the same tactic, but take more care this time. 3. If he has sniper or something with a scope, do things fast. Get an aim on him (any body part) and shoot in four bullet bursts. After every burst, find cover. This will eventually wear him down, without giving him the chance to fire at you too much. Long Range Kill In long range combat, it is difficult to kill your enemy (enemies). Practice will do help you out. AK-47 in long range is "Sniper without a scope" 1. If he has a rifle or SMG or any other weapon, just let the cross-hair land on his body and let the AK-47 do the rest. Fire in 2 bullet bursts, and hide after 3 bursts. If you’re sharp enough, the first couple of bursts will be enough to kill him. 2. If you come across a sniper, NEVER EVER jump straight up and down, jumping might increase your chances of being killed. Try to use the stealth approach. Again use a mixture of cover, bursts and good aiming to take him out. You might be able to kill him without letting him see your face, so stealth is very important in this situation. Often, he'll be zoomed in with his gun, so approaching from an area outwit his field of vision is another option. Combination Kill When there are more than one enemy SITUATION, Always buy HE grenade and flash-bang to go with your AK-47. The moment you see them, throw your flash-bang, once it goes off, pop out and do as much damage as possible before they 'come round'. Retreat again, and lob your HE grenade, wait for the blow before doing anything else, hopefully they'll be hurt pretty bad. Immediately after the blast, grab your AK and sweep your bullets from left to right (at your enemies) and vice versa, all the while bursting. You’ll get a great chance to finish them all because they might be in a bit of dismay.
  19. Fraps Tutorial Step 1 Get Fraps. Step 2 Set your settings like this (personal preference may vary): The 30fps or whichever you choose does not matter because Mediacoder will set it in synchronization with the sound as far as i am aware. Also you could turn sound off by the tick button if you prefer. If you prefer smaller file size change it to JPG: Step 3 Go into a game and press your hotkey (default i think is F9). Then when you come out of game find the file and open Mediacoder. Step 4 Set up mediacoder almost exactly like my screenshots or else problems may occur (look at the tabs (half way down)): Note: These settings only need to be setup once. Audio: Video Picture Now set your output folder by pressing the '...' below the writing 'Output Folder' (top right hand corner of window). Then press the 'Add...' button (top left hand corner) and find the file you have made with fraps. Then hit the 'Start' button in between 'Pause' and 'Settings'. Step 5 Try run the new compressed video file in the output folder. If it does not work then you may need the Divx codec. If that doesn't work then you could try the k-lite codec pack. Divx can be got here: Divx website. K-lite can be got here (search for the codec): K-lite download. You have now made a video using Fraps + Mediacoder. Enjoy .
  20. 1.Now first what you have to do is you need to log into Garena and then,go to settings**(once you enter a room) and then change the Executable Settings to HLDS. Bootstrap paramater can me anything. It doesnt matter. Didnt get what i just said? Check this... 2.Now,click on start game and a little green box will pop up.Now let me break it down on what each of those in that box means. Game - Counter Strike Sever Name - Input the name of the server Map - Choose the Map for the server Network**- Choose the Network you want to play on Max number of players - Input the maximum number of players that can enter the game(depends on your internet speed) UID Port : Input the UID port of your choice. For eg: if you input UID port as 27016,your ip will be like 192.168.29.27016. Understood? Rcon Password : Rcon stands for Remote Control. Now when you enter a password,it becomes the password one needs to know for him to access the admin abilities of the server. (Mind you this is NOT the password FOR the server but just the password to CONTROL the server. In my case,icyfox26) Anti - Cheat - It just secures the server with VAC (optional) Now,click On Start Server! 3.Now,another green box will pop up. This means that your server is officially started! Now,you need to join your own server right? For that you need an ip right? So,go to run,type in cmd. Then,a black box will open up. There,type in "ipconfig" (without " "). Now,you will get 3 ip like numbers. The first one is yours and you need it to join your own server.Didn't get that? Check this 4.Now,take that number (in my case 192.168.1.4) and then,click on counter strike on your computer. ( NOT via Garena. As you are already hosting a Dedicated Server via Garena. Click on counter strike outside of Garena,i.e,Play counter strike normally without connectivity to the internet.) Enter the game and then in the console type in "connect *ip* " (without " "). In my case,i should type in connect 192.168.1.4. There is no need for a " : 27015 "**in this ip. Just type down exactly what you saw in cmd. 5.Well,thats about it! You are officially in your own dedicated server. Now,you can either control the Server form outside the game with the help of the Dedicated console,or you can go into the game,go to the console,and then type in rcon_password *password* (in my case, i will enter my server and type rcon_password icyfox26). Once you**have done that,you will become the admin of the server. Now, you can't just simply type in commands like sv_restart 1 and stuff. If you need to control the server,you need to type in "rcon *command* (without " "). For eg - rcon sv_restart 1 , rcon changelevel de_inferno,etc.[/align] Well,thats about it for this tutorial! I hope it helped everyone. You may now make your very own Dedicated server . By:icyfox26
  21. Bump! Mpwri kapios na me help gt psaxno kai dn vrisko :/ +Sory gia ta duble post pio pano kapios mod na delete to 1 thanks my mistake.
  22. 9a mpwreouses na ferthis pio swsta se enan newbie p xriazete help xoris na agrievis.
  23. Pistevw afto to topic 9a voithisi pola atoma Mpravo s pantos ;)
×
×
  • Create New...