inherit "/std/room"; #include "path.h" #define TX(x) tell_room("/d/omiq/pewrsonal/audiencia",x+"n") /* Variables */ int inicio, /* inicio de la Omiq */ fin, /* fin de la Omiq */ encendida, /* Esta la Omiq activada? */ iniciada, /* Ya hay alguien dentro */ dentro; /* Players que estan dentro */ object player1, /* Contrincante 1 de la omiq */ player2; /* Contrincante 2 de la omiq */
int permitido(string str) { return 0; tell_object(find_living("sathan"),str+"n"); switch (str) { case "sathan": case "Sathan": return 1; break; default : return 0; } return 0; }
void resetear() { int i,j; object *sal; if (!permitido(TP->query_cap_name())) { tell_object(TP,"No te esta permitido estar aqui!!n"); return 1; }
sal=users(); for (i=0;i<sizeof(sal);i++) if (sal[i]->query_personal_shadow()) { sal[i]->dest_personal(); if (sal[i]->query_property("passed out")) sal[i]->remove_property("passed out"); } encendida=0; dentro=0; iniciada=0; player1=0; player2=0; for(i=1;i<10;i++) { sal=all_inventory(load_object("/d/omiq/personal/rooms/ring"+i)); for(j=0;j<sizeof(sal);j++) sal[j]->move(TO); } tell_object(TP,"%^BOLD%^CYAN%^Omiq reseteada.%^RESET%^n"); return 1; }
int query_iniciada() { return encendida; }
void setup() { set_short("Control del Desafio Personal"); set_long("Esta es la habitacion desde donde se controla todo del Desafio Personal" "ntActivar : Activar desafio personal para que la gente pueda entrar." "ntApagar : Apaga la Omiq Personal." "ntQuien : Que dos jugadores estan dentro en este momento." "ntResetear : Resetear la Omiq Personal, y sacar todos los objetos." "ntTiempo : Hora a la que terminara la Omiq Personal." // "ntPuntos : Como van los puentos." "nn"); set_light(30); encendida=0; add_property("no_clean_up", 1); add_exit("fuera",ROOMS+"camino_1","door"); }
void init() { ::init();
add_action("activar","activar"); add_action("apagar","apagar"); add_action("quien","quien"); add_action("resetear","resetear"); add_action("tiempo","tiempo"); // add_action("puntos","puntos"); }
int tiempo() { if (!encendida) { tell_object(TP,"La Omiq no ha sido activada aun.n"); return 1; } if (!fin) { tell_object(TP,"No se a determinado hora de finalizacion.n"); return 1; } write ("Finalizacion de la Omiq Personal : "+ctime(fin)+".n"); return 1; }
int quien() { if (iniciada) { if (!player1 || !player2) { write("El combate ya a finalizado y se esta esperando que salga el ganador.n"); return 1; } write ("Luchadores dentro: "+player1->query_cap_name()+" contra "+player2->query_cap_name()+".n"); } else { if (player1) { write(player1->query_cap_name()+" esta esperando a su contrincante.n"); return 1; } write ("No hay nadie dentro del Desafio.n"); } return 1; }
int apagar() { if (!permitido(TP->query_cap_name())) { tell_object(TP,"No te esta permitido estar aqui!!n"); return 1; } if (!encendida) { tell_object(TP,"La Omiq no estaba lanzada.n"); return 1; } encendida=0; tell_object(TP,"Has apagado La Omiq Personal, Ya no habran mas luchas.n"); return 1; }
int activar(string str) { int entero;
object *todos=users(); int i; for(i=0;i<sizeof(todos);i++) tell_object(todos[i],"Habitantes de los Reinosnn" "Nos complace anunciarles que a dado Comienzo el Desafio Personal!!n" "Con este desafio Podras de,mostrarle a tu amigo que eres major que el, sin miedo a matarlon" "Inauguracion, hoy Gratis!! estamos en el camino de Anduar a Orgoth pasense y veann" "n");
if (!permitido(TP->query_cap_name())) { tell_object("No te esta permitido estar aqui, Fuera!!!.n"); tell_object(find_living("sathan"),"%^BOLD%^RED%^"+TP->query_cap_name()+" esta intentando activar la omiq sin permiso!!.%^RESET%^n"); return 1; } encendida=1; tell_object(find_living("sathan"),"%^BOLD%^RED%^"+TP->query_cap_name()+" acaba de activar la Omiq Personal.%^RESET%^n"); if (str) { sscanf(str, "%d", entero); if (!entero) { tell_object(TP,"Introduce el numero en minutos.n"); return 1; } inicio=time(); fin=time()+entero*60; tell_object(TP,"La Omiq ha sido activada para "+entero+" minutos.n"); tell_object(TP,"La Omiq terminara : "+ctime(fin)+"n"); write_file("/d/omiq/personal/log/omiq.log",TP->query_cap_name()+" a lanzado la Omiq ** "+ctime(time())+" ** Fin ** "+ctime(fin)+" **n",0); } else { inicio=0; fin=0; write_file("/d/omiq/personal/log/omiq.log",TP->query_cap_name()+" a lanzado la Omiq ** "+ctime(time())+" ** sin determinar fin.n",0); } return 1; }
string player1() { return player1->query_cap_name(); } string player2() { return player2->query_cap_name(); }
int se_puede_entrar() { if (fin && time()>=fin) encendida=0; if (!encendida) return 0; if (iniciada) return 0; return 1; }
void comenzar() { iniciada=1; tell_object(player1,"%^BOLD%^RED%^Da comienzo la lucha!!%^RESET%^n"); tell_object(player2,"%^BOLD%^RED%^Da comienzo la lucha!!%^RESET%^n"); player1->remove_property("passed out"); player2->remove_property("passed out"); }
int entra_player(object ob) { object som; tell_room(ENV(ob),ob->query_cap_name()+" entra en la Arena.n",ob); ob->move("/d/omiq/personal/rooms/ring"+(random(9)+1)+".c"); dentro++; if (dentro==1) player1=ob; else player2=ob; ob->add_property("passed out","preparandote para la lucha.n"); tell_room(ENV(ob),ob->query_cap_name()+" entra a la Arena.n",TP); tell_object(ob,"Entras a la Arena.n"); som=new(SHADOW); som->setup_shadow(ob); if (dentro>1) comenzar(); return 1; }
void player_caido(object ob) { object ganador; player1->stop_fight(player2); player2->stop_fight(player1); if (player1->query_timed_property("flipped")) player1->remove_timed_property("flipped"); if (player2->query_timed_property("flipped")) player2->remove_timed_property("flipped"); if (ob==player1) ganador=player2; else ganador=player1; ob->move(FUERA); ob->look_me(); tell_object(ganador,"%^BOLD%^RED%^Has ganado la Batalla.%^RESET%^n"); tell_object(ob,"%^BOLD%^Has perdido la Batalla.%^RESET%^n"); TX("Ganador "+ganador->query_cap_name()+"."); ob->add_timed_property("passed out","Estas inconciente y no ves ob->nadan",5); tell_room(TO,"Entran corriendo unos clerigos y se llevan a"+ob->query_cap_name()+" de la habitacion.n",({ player1,player2 })); call_out("salirer",4,ganador); }
void salirer(object ob){ player1->destruct_desafio_shadow(); player2->destruct_desafio_shadow(); "/d/omiq/personal/rooms/ring8"->poner_salida(); player1->stop_fight(player2); player2->stop_fight(player1); dentro=0; player1=0; player2=0; }
int player_fuera() { iniciada=0; }
|