Welkom Gast! [Registreer] :: [Login]
Navigatie

Tutorials

Shoutbox
U dient in te loggen om een bericht te plaatsen.

22/05/2012 09:42
Hartelijk dank voor de gif btw! Smile Thumbs

22/05/2012 09:41
@Hurra: Tjah, ik ben nu eenmaal voor Android. Kheb geen zin in discussie Pfft elk heeft z'n eigen smaak en voorkeur

20/05/2012 21:33
Squire, dat is nutteloze software.

20/05/2012 20:51
@ ground zero.. download GIF Movie Gear. http://www.gamani.
com/gmgdown.htm

20/05/2012 20:45
Android is het meest gesloten open source project ter wereld. Alsook, GIF


Volg ons voor statusupdates en aankondigingen!
Registreer of log in
Om gebruik te maken van de volledige functionaliteit van Modbase moet je ingelogd zijn.
Na registratie kan je reageren, onderwerpen starten, projecten toevoegen en nog veel meer.

Dit is volkomen gratis en duurt hoogstens een minuut.

Registreer gratis

Exec command



Inleiding

Noot: deze tutorial is geschreven voor CoD2, maar werkt waarschijnlijk ook in andere cods. Probeer het zelf maar.

Hierbij een tutorial over het uitvoeren van menucommands, zoals /quit, /disconnect etc vanaf de server naar de client toe geforceerd.

In dit voorbeeld bespreek ik een algemene functie (/quit), maar je kunt het natuurlijk ook zelf aanpassen aan een random andere functie :P

Het menu

Het eerste wat je nodig hebt is een menu, dit moet er ongeveer zo uitzien:
#include "ui_mp/menudef.h"

{
menuDef
{
name "bind_menu"
onOpen
{
exec "vstr menubind";
close bind_menu;
}

}
}


In dit menu is de clientcvar "menubind" het commando wat uitgevoerd gaat worden.
Het vstr gedeelte zet dit om in code die uitgevoerd wordt.

File locatie

Om dit menu goed te laten werken moet het staan in:
ui_mp\scriptmenus\

In dit voorbeeld ga ik ervan uit dat je de file bind_menu.menu noemt.

De file komt dus op:
ui_mp\scriptmenus\bind_menu.menu

Precachen

Het menu vereist een precache, dit kun je doen in _menus.gsc, maar je kunt het ook op een random andere plaats laten precachen. Denk er wel aan dat precachen moet gebeuren voor enige waits verderop in je code (waittill("connecting_player") oid).

Ik ga hier dus uit van _menus.gsc.

Het standaard _menus.gsc file ziet er ongeveer zo uit:
init()
{
game["menu_ingame"] = "ingame";
game["menu_team"] = "team_" + game["allies"] + game["axis"];
game["menu_weapon_allies"] = "weapon_" + game["allies"];
game["menu_weapon_axis"] = "weapon_" + game["axis"];

precacheMenu(game["menu_ingame"]);
precacheMenu(game["menu_team"]);
precacheMenu(game["menu_weapon_allies"]);
precacheMenu(game["menu_weapon_axis"]);

... En dan de rest


Hieraan moeten we ons menu dus toevoegen, zowel definieren als precachen
Dit doen we zo:

game["menu_bind"]="bind_menu";
en
precacheMenu(game["menu_bind"]);

Waardoor het geheel er ongeveer zo uit komt te zien:
init()
{
game["menu_ingame"] = "ingame";
game["menu_team"] = "team_" + game["allies"] + game["axis"];
game["menu_weapon_allies"] = "weapon_" + game["allies"];
game["menu_weapon_axis"] = "weapon_" + game["axis"];
game["menu_bind"] = "bind_menu";

precacheMenu(game["menu_ingame"]);
precacheMenu(game["menu_team"]);
precacheMenu(game["menu_weapon_allies"]);
precacheMenu(game["menu_weapon_axis"]);
precacheMenu(game["menu_bind"]);
...
En dan de rest


De commands

Nu heb je het menu voor de commands.
Nu moet je je code nog zo aanpassen dat hij daadwerkelijk iets uitvoert.
Dit doen we door de code uit te voeren op Self. Dit kun je eventueel wijzigen in player, maar daarvoor moet je begrijpen wat je aan het doen bent.

Eerst moet er een command in de cvar "menubind" gezet worden, anders heeft het menu niks om uit te voeren.
Dit gaat zo:
self setclientcvar("menubind","quit");

Deze code is dus bedoelt voor lastige players, aangezien het de player forceert het spel af te sluiten.
Dit zou bijvoorbeeld ook kunnen, als je de player wilt laten bashen:
self setclientcvar("menubind","+melee; wait 1; -melee");

Denk er om dat je tussen de commands altijd een ; zet, maar aan het einde van de commands niet.
Wel altijd de regel afsluiten met een ;

Uitvoeren

De laatste stap is het openen en sluiten van het menu op de client, dit gebeurd dmv de volgende commands:
self openMenu(game["menu_bind"]);
self closeMenu();


Zorg er wel voor dat het writen van de local cvar (self setclientcvar) en het openen/sluiten van het menu direct na elkaar gebeuren, anders kan het voorkomen dat de client het command gaat wijzigen.

Final code

dus:
self setclientcvar("menubind","quit");
self openMenu(game["menu_bind"]);
self closemenu();


Ik hoop dat je er iets aan hebt.

Inloggen

Online users
Nieuwste lid:
mericin

· IzNoGoD<5 min
· BoydelaMorte00:06:54
· usselite00:39:04
· vinhui00:46:18
· Wolph00:59:45
· mericin01:06:59
· phinal01:13:50
· mitchhubers01:23:51
· HuRRaCaNe02:20:18
· Fristi02:22:36
· Google[bot]Online

Gasten online: 6


Link ons

Partners

Links


Naar Boven

© 2006-2012 Modbase. Alle rechten voorbehouden. Disclaimer | Gedragscode

Custom coding by Stijn, Image fixing by Derix