Ein neues Thema erstellen  Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bombtimer
BeitragVerfasst: 06.10.2004, 16:54 

Registriert: 06.10.2004, 16:45
Beiträge: 3
Guten tag,

hey mein buyscript belegt nur eine Taste!!!Und kann meine Einkäufe trotzdem variieren, aber egal.


Ich wollte mal was zu dem impressive plugin sagen. Ist das möglich das man den Bombtimer per admin_csay(nur beispiel) richtig von mp_c4timer bis 1 "öffentlich" runterzählen kann? Eigenlich weiß ich, dass das geht, aber wie? Wollt mich schon mal ans selber Programmieren machen, mit Hilfe vom textpad und so, aber meine Kenntnisse reichen definitiv nicht aus.

Könnt ihr mir irgendwie helfen?


Skusie


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06.10.2004, 17:52 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Wie wäre es denn damit:
?q=node/view/41&plugin=plugin_logd_bombtimer

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags: Bombtimer
BeitragVerfasst: 06.10.2004, 20:10 

Registriert: 06.10.2004, 16:45
Beiträge: 3
Nee, den hat ich schon. Glaub ich. Egal, wenn man sich den quelltext anschaut sieht man, dass der immer Sprünge macht: thirty, twenty,ten,five, four,etc.

Ich hab auch schon versucht den quelltext umzuschreiben und hab einfach die, ich glaube das sind funktionen, kopiert und die Ausgabe geändert. Also so das er richtig runterzählt : 30,29,28,27,26,25,24,23sek, etc.

Das logd_bombtimer ist ja ähnlich dem impressive plugin.

Respekt @ Sir drink a lot, find das Plugin sehr cool, bis auf kleine Sachen macht es richtig spaß und die werner sounds rocken.


Thnx@ Black Knight aber hab mir die plugins auf der adminmod-site schon ausführlich angeschaut, aber wie gesagt ich bräuchte son richtigen Countdown, sound ist mir dabei unwichtig.


Wär cool wenn mir jemand mal sagen könnte ob das mit dem Countdown derartig möglich ist und n bissl beim Quellcode helfen.

Skusie


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06.10.2004, 21:49 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Code:
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_CONSOLE 131072

new STRING_VERSION[MAX_DATA_LENGTH] = "v1.2";
new bombdefused = 1;

public bt_checkplant(HLCommand,HLData,HLUserName,UserIndex) {
	new Data[MAX_DATA_LENGTH];
	new sID[MAX_DATA_LENGTH];

	convert_string(HLData, Data, MAX_DATA_LENGTH);
	strbreak(Data, sID, Data, MAX_DATA_LENGTH);

	if(strcmp(Data, "Planted_The_Bomb") == 0) {
		new c4time = getvar("mp_c4timer");
		set_timer("boom", 1, c4time-1);
		bombdefused = 0;

	}
	return PLUGIN_CONTINUE;
}

public bt_checkdone(HLCommand,HLData,HLUserName,UserIndex) {
	new Params[MAX_DATA_LENGTH];
	convert_string(HLData,Params,MAX_DATA_LENGTH);
	switch( Params[ 6 ] ) {
		case 'S':
		{
			bombdefused = 1;
			return PLUGIN_CONTINUE;
		}
		case 'E':
		{
			bombdefused = 1;
			return PLUGIN_CONTINUE;
		}
	}

	return PLUGIN_CONTINUE;
}

public boom(Timer,Repeat,HLUserName,HLParam) {
	if(bombdefused == 0) {
		new messageout[MAX_DATA_LENGTH];
		if(Repeat==1){
			strcpy(messageout,"1 second until explosion!",MAX_DATA_LENGTH);
		}
		else {
			snprintf(messageout,MAX_DATA_LENGTH,"%d seconds until explosion!",Repeat);
		}
		centersay(messageout,5,255,0,0);
	}
}

public plugin_init() {
	plugin_registerinfo("Bomb Planting Timer","Just a countdown until the bomb explodes.",STRING_VERSION);
	plugin_registercmd("bt_checkplant", "bt_checkplant", ACCESS_CONSOLE);
	plugin_registercmd("bt_checkdone", "bt_checkdone", ACCESS_CONSOLE);

	exec( "logd_reg 60 admin_command bt_checkplant" );
	exec( "logd_reg 62 admin_command bt_checkdone" );

	return PLUGIN_CONTINUE;
Soviel dazu. Sir Drink a lot's Version kommt auch noch. :)

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 02:13 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
naja...ich habe ein bisschen mehr Overhead :)
Alles bunt und mit Sprachausgabe :)

Ok. Der einzige Unterschied ist, dass ich den Timer töte und zusätzlich mit Flags arbeite. Warum soll er auch weiterlaufen, obwohl er nicht gebraucht wird bzw. nichts mehr ausgeführt wird :)
Code:
/*
[WHO]Them's bomb countdown timer.
Ripped and stripped from bud-froggy's bombsay code to expedite release.

Edited by Kndroc to be complient with LogD 1.0
Edit by Sir Drink a lot
*/
#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define ACCESS_CONSOLE 131072

new STRING_VERSION[MAX_DATA_LENGTH] = "v0.8";

new g_TimerIndex;

////////////////////////////////////////
// ROUND COUNTER (Big THX an SR71GOKU)//
////////////////////////////////////////
static OnesLib[10][] = { 
	"", "one ", "two ", "three ", "four ", "five ", "six ", "seven ", "eight ", "nine " 
};
static TensLib[10][] = {
	"", "ten ", "twenty ", "thirty ", "fourty ", "fifty ", "sixty ", "seventy ", "eighty ", "ninety " 
};
static TeensLib[10][] = {
	"", "eleven ", "twelve ", "thirteen ", "fourteen ", "fifteen ", "sixteen ", "seventeen "
	, "eighteen ", "nineteen " 
};
static HundredsLib[10][] = { 
	"", "one hundred ", "two hundred ", "three hundred ", "four hundred ", "five hundred ", 
	"six hundred ", "seven hundred ", "eight hundred ", "nine hundred " 
};
static GroupNamesLib[5][] = {
	"", "thousand ", "million ", "billion ", "trillion " 
};

public plugin_init() {
	plugin_registerinfo("Bomb Planting Timer","Just a countdown until the bomb explodes.",STRING_VERSION);
	plugin_registercmd("bt_playeraction", "bt_playeraction", ACCESS_CONSOLE);
	exec( "logd_reg 60 admin_command bt_playeraction" );
	plugin_registercmd("bt_world", "bt_world", ACCESS_CONSOLE, "");
	exec( "logd_reg 62 admin_command bt_world" );
	return PLUGIN_CONTINUE;
}

public bt_playeraction(HLCommand,HLData,HLUserName,UserIndex){
	new Data[MAX_DATA_LENGTH];
	new sID[MAX_DATA_LENGTH];
	new C4Timer;

	convert_string(HLData, Data, MAX_DATA_LENGTH);
	strbreak(Data, sID, Data, MAX_DATA_LENGTH);
	if(strcmp(Data, "Planted_The_Bomb") == 0){
		C4Timer=getvar("mp_c4timer");
		g_TimerIndex=set_timer("announce_bomb",1,C4Timer);
		playsound_all("barney/badfeeling");
	}else if (strcmp(Data, "Defused_The_Bomb") == 0){
		if(g_TimerIndex>0){
			kill_timer(g_TimerIndex);
			g_TimerIndex=0;
			playsound_all("barney/survive");
		}
	}
	return PLUGIN_CONTINUE;
}

public bt_world(HLCommand,HLData,HLUserName,UserIndex){
	new Data[MAX_DATA_LENGTH];
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	if(g_TimerIndex>0){
		if(Data[6]=='E' || Data[6]=='S'){
			kill_timer(g_TimerIndex);
			g_TimerIndex=0;
		}
	}
	return PLUGIN_CONTINUE;
}

public announce_bomb(Timer,Repeat,HLName,HLParam) {
	if(g_TimerIndex>0){
		new Number[MAX_TEXT_LENGTH];
		new Text[MAX_TEXT_LENGTH];
		new iTime;
		
		iTime = Repeat - 1;
		
		switch(iTime){
			case 40: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 35: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 30: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 25: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 20: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 15: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 10: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 5: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 4: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 3: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 2: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 1: numtoword(iTime,Number,MAX_TEXT_LENGTH);
			case 0: {
				numtoword(iTime,Number,MAX_TEXT_LENGTH); 
				g_TimerIndex=0;
			}
		}
		
		snprintf(Text,MAX_TEXT_LENGTH,"*** BOMB PLANTED ***^n%i seconds remaining^n**************************",iTime);
		
		if(iTime>5){
			typesay(Text,12,random(200),random(100),random(100));
		}else{
			typesay(Text,12,255,0,0);
		}
		
		if(strlen(Number)!=0){
			if(iTime>5){
				snprintf(Number,MAX_TEXT_LENGTH,"%s seconds remaining",Number);
				playsound_all(Number);
			}else{
				playsound_all(Number);
			}
		}
	}
}

playsound_all(Data[]){
	new i;
	new Target[MAX_NAME_LENGTH];
	new maxplayers = maxplayercount();
	for(i=1; i<=maxplayers; i++) {
		strinit(Target);
		if(playerinfo(i,Target,MAX_NAME_LENGTH)) {
			speakto(Target,Data);
		}
	}
}

stock do_numtoword(iNum,str[],iLevel,iLength) {
	
	/* If there is more than one group of 3, then take care of the others first. */
	if(iNum >= 1000) do_numtoword(iNum / 1000,str,iLevel + 1,iLength);
	
	/* Grab the the first 3 digits only */
	iNum %= 1000;	
	
	/* Isolate each digit */
	new _hundreds = iNum / 100;
	new _tens = (iNum / 10) % 10;
	new _ones = iNum % 10;
	
	/* Take care of the teen numbers */
	if(_tens == 1 && _ones != 0) {
		snprintf(str,iLength,"%s%s%s%s",str,HundredsLib[_hundreds],TeensLib[_ones],GroupNamesLib[iLevel]);
	} else {
		snprintf(str,iLength,"%s%s%s%s%s",str,HundredsLib[_hundreds], TensLib[_tens], OnesLib[_ones],GroupNamesLib[iLevel]);
	}
	
	if(iLevel==0) str[strlen(str)-1] = 0; /* Gets rid of the trailing space*/
	return 1;
}

stock numtoword(iNum,str[],iLength) {
	/* Empties the first char of the string */
	str[0] = 0;
	str[iLength-1] = 0;
	if(iNum == 0) {
		snprintf(str,iLength,"zero");
		return 1;
	}
	if(iNum < 0) {
		iNum *= -1;
		snprintf(str,iLength,"negative ");
	}
	
	return do_numtoword(iNum,str,0,iLength); 
}

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 16:50 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
hmm...
Code:
      switch(iTime){
         case 40: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 35: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 30: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 25: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 20: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 15: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 10: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 5: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 4: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 3: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 2: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 1: numtoword(iTime,Number,MAX_TEXT_LENGTH);
         case 0: {
            numtoword(iTime,Number,MAX_TEXT_LENGTH);
            g_TimerIndex=0;
         } 
->
Code:
      switch(iTime){
         case 40,35,30,25,20,15,10,5,4,3,2,1,0: numtoword(iTime,Number,MAX_TEXT_LENGTH);
      }
oder noch besser
Code:
      if(iTime <=5 || iTime % 5 == 0) {
            numtoword(iTime,Number,MAX_TEXT_LENGTH);
      }
sorry, aber ich kann nicht anders :o)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 16:55 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Oder man lässt es weg, weil es nervt.

sorry, aber ich kann nicht anders :)

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 17:03 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
achja, wo du in dem plugin flags benutzt musst du mir nochmal erklären


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 19:11 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ah..so geht der case...das war meine Frage an Dich gestern, Blacky...ok..sie war nicht deutlich gestellt.
Ich wusste nicht mehr wie man das genau bastelt.

Was sind Flags?

Nach meinem Verständnis ist es einfach eine Variable, die man auf 1 oder 0 setzt, um damit eine Durchführung zuzulassen. z.B. wenn = 1, dann soll er was machen, wenn 0 dann eben keine Ausführung.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 19:19 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Ach sooo. Steht das so nicht auch im Small-Handbuch?

Genau das sind Flags, und Rinde sollte nochmal ein wenig nach selbigen fahnden.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 07.10.2004, 23:34 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
habe mal den Thread geteilt...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 11 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"