Jump to content

[GuiDe]A scripting tutorial.


Recommended Posts

This is a Tutorial on Scripts:


Now lets begin, shall we.



The Basics



First, go to Start>Run and type C:\Program Files\Steam\steamapps\user_name\counter-strike\cstrike

(This way, you can have easy access going into this folder).

(As Seen in Screen Shot A)


Now, view your folder. You should see one .cfg file that you should be concerned with. It is called, config.cfg. You should not worry about this file though. This file is for settings in game. For example, +mouse1 = fire. This, meaning, one click from the mouse button enables the weapon at hand to fire.

(As Seen in Screen Shot B)


Now, to get things further underway, there are a few other things that you should know about.


1. You do not need to make a file called, valve.rc




2. You do not need to save you custom settings and/or configurations in a file called, autoexec.cfg. You could but it really is not necessary.


I have tested this personally so there is no need to do any of the two above.


The reason why these are is this: remember the config.cfg file? Well, at the very bottom of this file is the command, exec userconfig.cfg.

(As Seen in Screen Shot C)


That command tells the game to execute the configuration file. Unfortunately, we do not have a file called, userconfig.cfg, but we will - soon enough.


Oh, yeah. All of this scripting stuff must be done in notepad.exc, and save this file titled, userconfig.cfg.

(As Seen in Screen Shot D)






Now, ask yourself - what is binding?


Binding is how you associate a command to a key (This is laments terms). Everything that happens in the game are associated commands.


For example: pressing w (Default) makes you move forward. Well, this command is +forward.


Now, to bind a key. Well, binding is very simple. This is the structure on how the bind works:


bind "command"


Of course, you can bind a key to several commands instead of one like so:


bind "command; command 2"


Of course, when you do this, make sure you put a space after the semi-colon or else the second command would not read - but the first command will. Also, you must code the command correctly. Please keep these 2 things in mind.






An alias associates a bunch of commands, like a bind, but the difference is that you assign a name to it.


The alias structure is not very much different than the binding structure.


For example:


alias xxx "command1; command2"


xxx = AnyName


Then, you must bind this to a key. Be it any key you want to.




bind f1 "xxx"


xxx= the name that you have assigned to the alias.



Saving the script


You can save all of this in the file, userconfig.cfg. Go to Start>Run and paste this into your cstrike folder.

(As Seen in Screen Shot E)






A 3366.jpg

B width=640 height=414http://image.hazardstrip.com/ss/tuts/3367.jpg[/img]

C width=640 height=414http://image.hazardstrip.com/ss/tuts/3368.jpg[/img]

D width=640 height=414http://image.hazardstrip.com/ss/tuts/3369.jpg[/img]

E width=640 height=414http://image.hazardstrip.com/ss/tuts/3370.jpg[/img]





credits to : chrisbitm

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Posts

    • A-grade stage   01.12 at 09:00 we will have a long-awaited transition to a new stage.   What awaits you at the A-grade stage: - The maximum level is 75. - New locations: Goddart and Rune territory, TOI 5+, Silent Valley, LOA (66+ mobs), Catacombs - Witch, Dark Omens, Necropolis - Martyrdom, Saint's, Devotion, Captains rift, Commanders Rift, 60+ festival zones, Wall of Argos, ToI 8-14, Silent Valley, Blazing Swamp, Hot Springs, Varka, Ketra, Stakato Nest; - Added new epic raid bosses Zaken, Core, Orfen (will spawn randomly from 17:00 to 21:00 server time); - Recipes / keys / whole items of S grade  are not available (quests for them as well); - The Grand Olympiad will take place at: 12.12, 14.12, 15.12, 17.12, 19.12, 20.12, 21.12; - To participate in Olympiad, a minimum of level 61 is required; - It will be possible to receive rewards for the B-grade stage on 01.12 from 00:00 server time and hero status from 12:00 server time - Stage duration: 21 days
    • WTS adena Serious trade 25+ KK in stock 6 USD / KK
    • Hello, I edited a quest for the interlude server. However, I want to add a timer to this quest so that it will be reset every 24 hours or at a certain time of the day. I could not do this because my Java knowledge is not very sufficient. If anyone can help me with this, I would be very happy. Note:I created it by editing the existing kill all sphys task.   ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # Made by Mr. - Version 0.3 by DrLecter import sys from l2jorion.game.model.quest import State from l2jorion.game.model.quest import QuestState from l2jorion.game.model.quest.jython import QuestJython as JQuest qn = "263_KillAllSylphs1" ORB_OF_WATER = 9998 ORB_OF_FIRE = 9999 ORB_OF_WIND = 10000 ORB_OF_EARTH = 10001 STONE_OF_VALOR = 10002 DROPLIST={ 57000:[ORB_OF_WIND,100], 57001:[ORB_OF_EARTH,100], 57002:[ORB_OF_FIRE,100], 57003:[ORB_OF_WATER,100], } class Quest (JQuest) :  def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)  def onEvent (self,event,st) :     htmltext = event     if event == "70737-03.htm" :       st.set("cond","1")       st.setState(STARTED)       st.playSound("ItemSound.quest_accept")     elif event == "70737-06.htm" :       st.exitQuest(1)       st.playSound("ItemSound.quest_finish")     return htmltext  def onTalk (self,npc,player):    htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>    st = player.getQuestState(qn)    if not st : return htmltext    npcId = npc.getNpcId()    id = st.getState()    if id == CREATED :      st.set("cond","0")    if st.getInt("cond")==0 :      if player.getLevel()<76 :        htmltext = "70737-01.htm"        st.exitQuest(1)      else :        htmltext = "70737-02.htm"    else :      water = st.getQuestItemsCount(ORB_OF_WATER)      fire = st.getQuestItemsCount(ORB_OF_FIRE)      wind = st.getQuestItemsCount(ORB_OF_WIND)      earth = st.getQuestItemsCount(ORB_OF_EARTH)      if water == fire == wind == earth == 0 :        htmltext = "70737-04.htm"      if npcId == 70737 and st.getQuestItemsCount(ORB_OF_WATER) and st.getQuestItemsCount(ORB_OF_FIRE) and st.getQuestItemsCount(ORB_OF_WIND) and st.getQuestItemsCount(ORB_OF_EARTH) :        htmltext = "70737-05.htm"        st.giveItems(STONE_OF_VALOR,1)        st.takeItems(ORB_OF_WATER,-1)        st.takeItems(ORB_OF_FIRE,-1)        st.takeItems(ORB_OF_WIND,-1)        st.takeItems(ORB_OF_EARTH,-1)    return htmltext  def onKill(self,npc,player,isPet):    st = player.getQuestState(qn)    if not st : return     if st.getState() != STARTED : return         item,chance=DROPLIST[npc.getNpcId()]    if st.getRandom(100)>1 :      st.giveItems(item,1)      st.playSound("ItemSound.quest_itemget")    return QUEST       = Quest(263,qn,"Kill All Sylphs1") CREATED     = State('Start', QUEST) STARTING    = State('Starting', QUEST) STARTED     = State('Started', QUEST) COMPLETED   = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(70737) QUEST.addTalkId(70737) QUEST.addKillId(57000) QUEST.addKillId(57001) QUEST.addKillId(57002) QUEST.addKillId(57003) STARTED.addQuestDrop(57002,ORB_OF_FIRE,1) STARTED.addQuestDrop(57003,ORB_OF_WATER,1) STARTED.addQuestDrop(57000,ORB_OF_WIND,1) STARTED.addQuestDrop(57001,ORB_OF_EARTH,1)
  • Topics

  • Create New...