Accueil > Jeux Vidéo > Shattered Realm > Protocoles
Les identifiants <id> et <charID> sont textuels (ils peuvent être composés de plusieurs chiffres séparés par des points ou de mots, mais dans tous les cas ils sont à interpréter comme des chaînes ASCII). Les <aspect> sont des identifiants numériques positifs entiers. Les tilesets sont à charger les uns après les autres, dans un ordre prédéterminé ; chaque tile recevant un identifiant incrémental. (Par exemple, le premier tile du premier fichier a comme identifiant 0, et après avoir chargé un premier fichier contenant 100 tiles, identifiés de 0 à 99, le premier tile du fichier suivant recevra l'identifiant 100.) Il est à noter que le protocole ne présupose pas quel personnage est contrôlé par le client. msg <text> Rajouter la ligne <text> à la console. move <charID> <aspect> <X> <Y> Créer ou mettre à jour le personnage <charID> avec l'aspect <Aspect> et aux coordonnées <X> et <Y>. TODO : renommer en "updatechar" ? TODO : rajouter le nom (à afficher au-dessus). floor <W> <H> <name> Changer de zone (oublier les informations de la zone précédente et des personnages vus) ; la nouvelle zone est de dimensions <W> par <H> et est nommée <name>. Cette commande est suivie par une seule ligne comportant une liste d'identifiants d'aspects séparés par des virgules de taille <W>*<H>, dans l'ordre de lecture occidental (chaque ligne de gauche à droite puis de haut en bas ; la première case étant celle en haut à gauche, de coordonnées 0;0). TODO : renommer en "newzone" ou "changezone" ? floorchange <aspect> <X> <Y> Changer l'<aspect> de la case aux coordonnées <X> et <Y>. gauge <id> <name> <val> <max> <full> <empty> Créer ou mettre à jour la jauge <id> de nom <name> avec une valeur <val> sur un maximum <max>, et dont les icônes ont l'aspect <full> lorsqu'elles sont pleines et <empty> lorsqu'elles sont vides. (Par exemple, une jauge avec <val> à 2 et <max> à 5 affichera deux icônes <full> suivies de trois icônes <empty>.) nogauge <id> Supprime la jauge <id>. follow <charID> Suivre les déplacements du personnage <charID> (cette information persiste entre chaque changement de zone). hint <aspect> <text> Créer une nouvelle commande <text> avec l'aspect <aspect>. TODO : depreciated.
c_rand(max) -> int setverbose() setnoverbose() isverbose() -> bool info(message) warning(message) fatal(message) halt() open(port, spawn_script_filename, spawn_zone, x, y) close() is_open() -> bool get_port() -> int add_action(trigger, script) get_action(trigger) -> string delete_action(trigger) set_default_action(script) -- list_actions() register_aspect(string, int [, passable]) set_disconnection_script(script) serialize_place(zone, x, y) -> string deserialize_place(string) -> string, int, int // zone, x, y server_gettag(tag_id) server_settag(tag_id, value) server_deltag(tag_id) create_timer(duration, script) -> timer_id delete_timer(timer_id) timer_getremaining(timer_id) -> int | 0 timer_setremaining(timer_id, val) timer_triggernow(timer_id) new_zone(id, name, width, height, tile_id [, passable]) delete_zone(zone_id) assert_zone(zone_id) -> bool zone_getname(zone_id) -> string zone_setname(zone_id, name) zone_getwidth(zone_id) -> int zone_getheight(zone_id) -> int zone_event(zone_id, message) zone_gettag(zone_id, tag_id) zone_settag(zone_id, tag_id, value) zone_deltag(zone_id, tag_id) zone_getcharacters(zone_id) -> table of { character_id } assert_place(zone_id, x, y) -> bool place_getaspect(zone_id, x, y) place_setaspect(zone_id, x, y, aspect) // Automatically set aspect's default passability. place_ispassable(zone_id, x, y) place_setpassable(zone_id, x, y) place_setnotpassable(zone_id, x, y) place_getlandon(zone_id, x, y) place_setlandon(zone_id, x, y, script) place_resetlandon(zone_id, x, y) place_gettag(zone_id, x, y, tag_id) place_settag(zone_id, x, y, tag_id, value) place_deltag(zone_id, x, y, tag_id) create_npc(aspect [, name]) -> character_id delete_character(character_id) assert_character(character_id) -> bool character_spawn(character_id, zone_id, x, y) character_getname(character_id) -> string character_setname(character_id, name) character_getaspect(character_id) -> int character_setaspect(character_id, aspect) character_hasplayer(character_id) -> bool character_detachplayer(character_id) -> player_id character_attachplayer(character_id, player_id) -> old_player_id character_getzone(character_id) -> string character_getx(character_id) -> int character_gety(character_id) -> int character_setxy(character_id, x, y) character_move(character_id, x_shift, y_shift) character_changezone(character_id, zone_id, x, y) character_setnozone(character_id) character_setcanmove(character_id) character_setcantmove(character_id) character_getcanmove(character_id) -> bool character_getwhendeath(character_id) -> string character_setwhendeath(character_id, script) character_getwhenbump(character_id) -> string character_setwhenbump(character_id, script) -- character_list_gauges(character_id) character_delgauge(character_id, gauge_id) character_gettag(character_id, tag_id) -> string | tag character_settag(character_id, tag_id, value) character_deltag(character_id, tag_id) character_isghost(character_id) -> bool character_setghost(character_id, bool) character_message(character_id, message) character_follow(character_id, target_character_id) character_hint(character_id, aspect, hint) new_gauge(character_id, gauge_id, gauge_name, val, max, aspectFull, aspectEmpty, [, visible]) assert_gauge(character_id, gauge_id) -> bool gauge_getname(character_id, gauge_id) -> string gauge_setname(character_id, gauge_id, name) gauge_getval(character_id, gauge_id) -> int gauge_setval(character_id, gauge_id, val) gauge_increase(character_id, gauge_id, val) gauge_decrease(character_id, gauge_id, val) gauge_getmax(character_id, gauge_id) -> int gauge_setmax(character_id, gauge_id, max) gauge_getwhenfull(character_id, gauge_id) -> string gauge_setwhenfull(character_id, gauge_id, script) gauge_resetwhenfull(character_id, gauge_id) gauge_getwhenempty(character_id, gauge_id) -> string gauge_setwhenempty(character_id, gauge_id, script) gauge_resetwhenempty(character_id, gauge_id) gauge_isvisible(character_id, gauge_id) -> bool gauge_setvisible(character_id, gauge_id, bool) create_inventory(size, [type]) -> inventory_id delete_inventory(inventory_id) assert_inventory(inventory_id) -> bool inventory_gettype(inventory_id) -> string inventory_size(inventory_id) -> int inventory_resize(inventory_id, size) inventory_total(inventory_id) -> int inventory_available(inventory_id) -> int inventory_get(inventory_id, item_name) -> table of { artifact_id } inventory_get_all(inventory_id) -> table of { artifact_id } create_artifact(inventory_id, name, type, [quantity] ) -> artifact_id delete_artifact(inventory_id, artifact_id, [quantity] ) -> bool assert_artifact(inventory_id, artifact_id) -> bool artifact_move(inventory_id, artifact_id, destination_inventory_id, [quantity]) -> bool artifact_getname(inventory_id, artifact_id) -> string artifact_setname(inventory_id, artifact_id, name) artifact_gettype(inventory_id, artifact_id) -> string artifact_settype(inventory_id, artifact_id, type) artifact_getquantity(inventory_id, artifact_id) -> int artifact_gettag(inventory_id, artifact_id, tag_id) -> string artifact_settag(inventory_id, artifact_id, tag_id, value) artifact_deltag(inventory_id, artifact_id, tag_id)