Infos zu Spielen, Bots und Tools.
-
1. FC Keller
- Moderator
- Beiträge: 866
- Registriert: 04.07.2004, 17:10
- Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
-
Kontaktdaten:
Ungelesener Beitrag
von 1. FC Keller » 17.11.2010, 14:21
Ich habe eben den Code so editiert, dass man wieder im Chat schreiben kann während man die Sperre hat.
Wenn man /fight eingibt wird in der Eingabezeile angezeigt wieviele Sekunden man noch gesperrt ist.
-
1. FC Keller
- Moderator
- Beiträge: 866
- Registriert: 04.07.2004, 17:10
- Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
-
Kontaktdaten:
Ungelesener Beitrag
von 1. FC Keller » 17.11.2010, 16:22
Ich habe das Script eben um eine HP- und eine Cooldown-Anzeige in der Onlineliste erweitert. Da ich nur im Firefox testen konnte habe ich die Version im ersten Post noch nicht ersetzt. Das folgt sobald ich weiß dass es in den anderen Browsern auch klappt.
Code: Alles auswählen
var fightRaum="fight";
var fightKoRaum="hauptchat"; // hier hin wird man geschoben wenn man KO ist.
var fightDefaultHP=200;
var fightBefehl="/fight";
var fightCoolColor="#0000ff";
var fightHPColor="#ff0000";
var fightWeapons={
faust:{hp:10, timeout:2500},
schlag:{hp:9, timeout:2000},
tritt:{hp:15, timeout:3000},
hammer:{hp:30, users:["dg", "moni"], timeout:6000},
atombombe:{hp:3000, users:["dg"], timeout:60000}
}
//feste Variablen des Scripts. Nicht aendern!
var fightLastRoom="";
var fightHP={};
var fightCooldown={};
function fightBefehlsAuswertung(eingabe, sender){
if(getRoom()!=fightRaum){
document.write("das Fight-Spiel funktioniert nur im Raum <a href='javascript:sendeText(\"/join "+fightRaum+"\")'>"+fightRaum+"</a>.");
}
eingabe=strip_tags(eingabe).split(" ");
sender=strip_tags(sender);
var weapon=eingabe[0].toLowerCase();
if(weapon=="start"){
if(eingabe.length==1){
document.write("tritt dem Spiel mit "+fightDefaultHP+" HP bei.");
if(myNick==sender)fightHP={}; //ggf. leeren falls noch daten von einer frueheren runde vorhanden sind.
fightHP[sender.toLowerCase()]=fightDefaultHP;
fightViewHP(sender.toLowerCase());
if(sender!=myNick)sendeText(fightBefehl+" start "+myNick+" "+fightHP[myNick.toLowerCase()]);
}else if(sender==eingabe[1]){
if(typeof(fightHP[sender.toLowerCase()])=="undefined"){
fightHP[sender.toLowerCase()]=eingabe[2];
fightViewHP(sender.toLowerCase());
}
hideLine();
}
}else if(fightWeapons[weapon]){ // z.B. /fight hammer DG
if(typeof(fightWeapons[weapon].users)!="undefined" && !fightWeapons[weapon].users.inArray(sender.toLowerCase()))document.write("hat versucht "+eingabe[0]+" zu verwenden.");
else{//user darf waffe verwenden
var nick=eingabe[1].toLowerCase();
document.write("bekämpft "+eingabe[1]+" mit "+eingabe[0]);
fightHP[nick]-=fightWeapons[weapon].hp;
fightViewHP(nick);
if(fightHP[nick]<=0){
document.write("<br>"+nick+" geht K.O.");
if(myNick.toLowerCase()==nick){
sendeText("/join "+fightKoRaum);
fightHP={};
}
}else{
document.write(". Übrige HP: "+fightHP[nick]);
}
if(typeof(fightWeapons[weapon].timeout)!="undefined"){
if(myNick==sender)blockFight((new Date()).getTime()+fightWeapons[weapon].timeout);
fightCooldown[sender]=[(new Date()).getTime(), fightWeapons[weapon].timeout];
}
}
}else{
document.write("kein gueltiger Befehl eingegeben:"+eingabe[0].toLowerCase());
}
}
function startFight(){
fightHP[myNick]=fightDefaultHP;
}
function fightCheckRoom(){
var thisRoom=getRoom();
if(fightLastRoom!=thisRoom){
if(thisRoom.toLowerCase()==fightRaum.toLowerCase())sendeText(fightBefehl+" start");
fightLastRoom=thisRoom;
}
}
function hideLine(){
tbls=document.getElementsByTagName("table");
tbls[tbls.length-1].style.display="none";
}
function blockFight(until){
if((new Date()).getTime()<=until){
setTimeout("blockFight("+until+")", 50);
with(parent.info.document.eingabe.message){
if(value.match(fightBefehl))value="Fight-Befehl geblockt für "+((until-(new Date()).getTime())/1000)+" Sekunden";
}
}else parent.info.document.eingabe.message.value="";
}
function fightCooldownFunc(){
var now=(new Date()).getTime();
var s, p, i;
for(i in fightCooldown){
if(now>=fightCooldown[i][0]+fightCooldown[i][1]){
fightViewCool(i, 0);
delete fightCooldown[i];
}else{
s=now-fightCooldown[i][0];
p=s*100/fightCooldown[i][1];
fightViewCool(i, parseInt(100-p));
}
}
setTimeout(fightCooldownFunc,50);
}
function fightViewCool(n, p){
var pNode, coolBar;
if(coolBar=parent.rightFrame.document.getElementById("fightCool_"+n)){
coolBar.style.width=p+'%';
}else if(pNode=parent.rightFrame.document.getElementById(n)){
coolBar=parent.rightFrame.document.createElement("div");
coolBar.id="fightCool_"+n;
coolBar.style.backgroundColor=fightCoolColor;
coolBar.style.width=p+'%';
coolBar.style.height='5px';
pNode.appendChild(coolBar);
}//else alert("Div nicht gefunden!");
}
function fightViewHP(n){
var pNode, hpBar, hp, p;
hp=fightHP[n];
n1=getNickCase(n);
p=parseInt(hp*100/fightDefaultHP);
if(hpBar=parent.rightFrame.document.getElementById("fightHP_"+n1)){
hpBar.style.width=p+'%';
}else if(pNode=parent.rightFrame.document.getElementById(n1)){
pNode.style.width='150px';
hpBar=parent.rightFrame.document.createElement("div");
hpBar.id="fightHP_"+n1;
hpBar.style.backgroundColor=fightHPColor;
hpBar.style.width=p+'%';
hpBar.style.height='5px';
pNode.appendChild(hpBar);
}//else alert("Div nicht gefunden!");
}
function getNickCase(nick){
nick=nick.toLowerCase();
var ol=parent.rightFrame.document.getElementsByTagName("div");
var i;
for(i=0;i<ol.length;i++){
if(ol[i].id && ol[i].id.toLowerCase()==nick)return ol[i].id;
}
//alert("nick "+nick+" nicht gefunden!");
}
fightCooldownFunc();
window.setInterval(fightCheckRoom, 550);
Neu sind unter anderem diese beuden Zeilen:
Code: Alles auswählen
var fightCoolColor="#0000ff";
var fightHPColor="#ff0000";
Dort könnt ihr einstellen welche Farben die beiden Balken haben.
Jetzt sieht das schon fast nach einem richtigen beat'em up aus
![Smilie :-)](./images/smilies/icon_smile.gif)
-
Maxs
- Moderator
- Beiträge: 551
- Registriert: 09.10.2008, 18:21
-
Kontaktdaten:
Ungelesener Beitrag
von Maxs » 17.11.2010, 17:19
Im IE klappt es einigermaßen, wenn man wieder nach der Waffe atombombe im Script das Komma entfernt
![Auf den Arm nehmen :P](./images/smilies/icon_razz.gif)
Nur manchmal kann es vorkommen, dass man eine Person nicht "verletzten" kann. Dann steht im Chat nur
[User1] verletzt [User2] mit [Waffe].
User1 und User2 werden entsprechend mit den Usern ersetzt und Waffe mit der entsprechenden Waffe. Das geht solange dann nicht, bis User2 mal wieder
/fight start schreibt.
Außerdem wenn jemand neu hinzu kommt, dann steht im Chat der Name des Users, der schon im Raum ist. Ich denke, dass ist dazu da, um dem neuen User den Status mitzuteilen, aber das könnte man ja unischtbar machen
![Winken ;)](./images/smilies/icon_wink.gif)
Die Balken funktionieren Perfekt
![Winken ;)](./images/smilies/icon_wink.gif)
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?
-
1. FC Keller
- Moderator
- Beiträge: 866
- Registriert: 04.07.2004, 17:10
- Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
-
Kontaktdaten:
Ungelesener Beitrag
von 1. FC Keller » 17.11.2010, 21:11
Das mit dem Komma und der leeren Zeile ist korrigiert.
Ich habe inzwischen in IE8 und Opera auch nochmal testen können und es schien soweit zu laufen. Daher habe ich das Script auf der ersten Seite des Threads nun durch die aktuelle Verison mit den
-
nitnelav
- Beiträge: 11
- Registriert: 09.06.2010, 16:37
Ungelesener Beitrag
von nitnelav » 21.11.2010, 19:28
cool,dass du das fight spiel verbessert hast
Allerdings klappt es bei mir jetzt irgendwie nicht mehr... Wenn ich jetzt in den kampfraum gehe,kommt auch nicht mehr: nitnelav tritt dem Spiel mit 200 HP bei
Was könnte ich denn falsch gemacht haben? ^^
Wäre cool,wenn du / ihr mir helfen könntet o.o
Danke!
mfG nitnelav
-
1. FC Keller
- Moderator
- Beiträge: 866
- Registriert: 04.07.2004, 17:10
- Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
-
Kontaktdaten:
Ungelesener Beitrag
von 1. FC Keller » 21.11.2010, 21:39
Eine geschweifte Klammer hatte gefehlt. Wenn du den Code von der ersten Seite nochmal kopierst sollte es klappen.
-
nitnelav
- Beiträge: 11
- Registriert: 09.06.2010, 16:37
Ungelesener Beitrag
von nitnelav » 21.11.2010, 21:52
vielen dank
![Sehr glücklich :D](./images/smilies/icon_biggrin.gif)
es klappt jetzt...
nur irgendwie wird der gegner nicht besiegt,wenn man die atombombe benutzt o.o
EDIT: Mir ist aufgefallen,dass das nicht nur bei Atombombe ist ,sondern man kann schlicht und einfach keinen besiegen...
-
Lkwmonster
- Beiträge: 85
- Registriert: 15.01.2012, 10:29
- Wohnort: In einem kleinen Bergbaudorf in China wo Kinder schon mit 5 Jahren in einem Bergbau arbeiten müssen.
-
Kontaktdaten:
Ungelesener Beitrag
von Lkwmonster » 07.03.2012, 19:42
Hallo,
ich habe jetzt ein problem das wenn man in den Raum geht, garnichts angezeigt wird, habe nochmal geguckt, ich habe alles richtig eingegeben trotzdem nichts zu sehen, kann mir jemand helfen?
MfG Lkwmonster
MfG
Lkwmonster
Wer ist online?
Mitglieder in diesem Forum: Google [Bot] und 37 Gäste