Forum gesperrt  Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Plugin_Dustwarp
BeitragVerfasst: 10.02.2003, 20:12 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Jetzt wundern sich einige, warum denn Offtopic :-)

Weil es zu sehr das Spiel Counterstrike verändert.

Mit dem Plugin kann man Teleporter - Felder öffnen.

Damit man die Teleporter auch sieht, habe ich mal eine neue de_dust.bsp mit einem sprite erstellt, was ein Teleporter, Wurmloch etc. darstellen soll...(Lasst eure Phantasie spielen)

Leider ist der sprite nicht transparent....hatte aber keine Lust mehr, mit dem Programm rumzuprobieren.

Die Teleporter sind dann über die Map de_dust verteilt.

Ist jetzt der Warp-Modus aktiv, wird man zufällig zu einem anderen Teleporter gebeamt.

Die Befehle des plugins sind:
admin_warp_on und admin_warp_off.

Hier gehts zum Download:

Dust_Warp

So. Habe alle benutzen Tools dem DL beigefügt. Wie immer übernehme ich keine Garantie für Schäden. Leßt am Besten alle Readme Dateien, die ihr finden könnt. So könnt ihr die Idee ja auch weiterentwickeln.

Das ganze ist hauptsächlich für LAN gemacht. Keine Ahnung, ob es auch auf Inet Servern läuft. Sollte schon, aber keine Ahnung, wie die Performance dann fällt.

Nun denn. Sagt Bescheid, wenn Euch was gefällt/ nicht gefällt. Ich weiß aber nicht, ob ich noch was daran korrigiere. Das Ganze dient nur zum Austesten bestimmter Adminmod-Funktion.

Gruß,
Sir Drink a lot

_________________
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: 10.02.2003, 20:55 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
da ist aber viel raum für optimierungen :)
*bastel*
da könnte ich endlich mal meine ganzen vektorfunktionen nutzen


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10.02.2003, 21:09 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
nur zu :-)

Ist ja als Anregung gedacht.

Aber gleich eine Vektor-Berechnung?
Nunja..

Gib alles :lol:

_________________
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: 10.02.2003, 21:45 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
was haltet ihr?

/edith: merke, erst testcompilen
Code:
/* Includes */
#include <adminlib>

/* Constants */
#define MAX_KOORDS  6
#define COOLDOWN 10
#define RANGE 50

/* Global Variables */
new g_Teleporters[MAX_KOORDS][3] = {
                    {19,3089,36},
                    {-1582,2505,68},
                    {2320,668,36},
                    {533,-445,57},
                    {498,-1218,100},
                    {-1211,1459,-156}
};
new g_Version[20] = "10.2.03 21:42";

new g_LastWarp[MAX_PLAYERS];
new g_Enabled;

/* Event Handler */
public plugin_init() {
    plugin_registerinfo("DUSTWARP","WARP-Plugin for de_dust",g_Version);
    plugin_registercmd("admin_warp", "admin_warp", ACCESS_MAP,"admin_warp <0|1>: Teleporter aktivieren/deaktivieren");
    return PLUGIN_CONTINUE;
}

public warp(Timer,Repeat,HLUser,HLParam) {
    new i,j,k;
    new Origin[3];
    new Vec[3];
    new maxplayers=maxplayercount();
    new Dead;
    new Text[MAX_TEXT_LENGTH];
    new Name[MAX_NAME_LENGTH];
    new time = systemtime();
    if(g_Enabled) {
        typesay("WARP-MODUS!^n Die Teleporter sind eingeschaltet!",12,random(5) ? 250 : 10,random(5) ? 250 : 10,random(5) ? 250 : 10);
        for(i=1;i<=maxplayers;i++) {
            if(g_LastWarp[i] + COOLDOWN <= time) {
                if(playerinfo(i,Name,MAX_NAME_LENGTH,_,_,_,Dead) && Dead == 0){
                    if(get_userorigin(Name,Origin[0],Origin[1],Origin[2]) == 1) {
                        for(j=0;j<MAX_KOORDS;j++){
                            diffvec(Origin,g_Teleporters[j],Vec);
                            if(veclen(Vec) <= RANGE) {
                                while((k = random(MAX_KOORDS)) != j) {}
                                teleport(Name,g_Teleporters[k][0],g_Teleporters[k][1]+30,g_Teleporters[k][2]);
                                g_LastWarp[i] = time;
                                snprintf(Text,MAX_TEXT_LENGTH,"%s hat sich von Teleporter %i zu Teleporter %i gewarpt",Name,j,k);
                                say(Text);
                                break;
                            }
                        }
                    }
                }
            }
        }
        set_timer("warp",1,0);
    } else {
        typesay("WARP-MODUS!^n Die Teleporter sind ausgeschaltet!",12,250,10,10);
    }
    return PLUGIN_CONTINUE;
}

/* Command Handler */
public admin_warp(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[MAX_DATA_LENGTH];
    convert_string(HLData,Data,MAX_DATA_LENGTH);
    if(!Data[0]) selfmessage("admin_warp <0|1>: Teleporter aktivieren/deaktivieren");
    else if(Data[0] - 48 != g_Enabled) {
        g_Enabled = Data[0] - 48;
        snprintf(Data,MAX_DATA_LENGTH,"WARP-MODUS ist %s",g_Enabled ? "aktiviert" : "deaktiviert");
        selfmessage(Data);
        if(g_Enabled) set_timer("warp",1,0);
    }
    return PLUGIN_HANDLED;
}

/* Helper Functions */
stock diffvec(vec1[3],vec2[3],vec0[3]) { //Puts the diffenrece-vector of vec1 and vec2 in vec0.
    new i;
    for(i=0;i<3;i++) {
        vec0[i] = vec1[i] - vec2[i];
    }
}

stock veclen(vec[3]) { //Returns the length of a vector, multiplied with factor.
    new i,j,k,l;
    for(i=0;i<3;i++){
        l = abs(vec[i]);
        k = max(l,k);
        j += l * l;
    }
    i = j;
    while(j > k) {
        j = (j + k) / 2;
        k = i / j;
    }
    return j;
}

stock abs(num) { //Returns the positive value of num.
    if(num > 0) {
        return num;
    }
    return -num;
}


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10.02.2003, 23:18 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Sicher würde das funktionieren. Ein sekündlicher Timer sollte aber nach Möglichkeit vermieden werden.
Grundsätzlich aber eine witzige Idee.

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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 10.02.2003, 23:39 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
mit taste drücken, dafür ohne timer:
Code:
/* Includes */
#include <adminlib>

/* Constants */
#define MAX_KOORDS  6
#define COOLDOWN 10
#define RANGE 50

/* Global Variables */
new g_Teleporters[MAX_KOORDS][3] = {
                    {19,3089,36},
                    {-1582,2505,68},
                    {2320,668,36},
                    {533,-445,57},
                    {498,-1218,100},
                    {-1211,1459,-156}
};
new g_Version[20] = "10.2.03 21:42";

new g_LastWarp[MAX_PLAYERS];
new g_Enabled;

/* Event Handler */
public plugin_init() {
    plugin_registerinfo("DUSTWARP","WARP-Plugin for de_dust",g_Version);
    plugin_registercmd("admin_warp", "admin_warp", ACCESS_MAP,"admin_warp <0|1>: Teleporter aktivieren/deaktivieren");
    plugin_registercmd("warpme", "warpme", ACCESS_ALL);
    return PLUGIN_CONTINUE;
}

/* Command Handler */
public warpme(HLCommand,HLData,HLUserName,UserIndex) {
    new j,k;
    new Origin[3];
    new Vec[3];
    new Dead;
    new Text[MAX_TEXT_LENGTH];
    new Name[MAX_NAME_LENGTH];
    new time = systemtime();
    if(g_Enabled) {
        if(g_LastWarp[UserIndex] + COOLDOWN <= time) {
            if(playerinfo(UserIndex,Name,MAX_NAME_LENGTH,_,_,_,Dead) && Dead == 0){
                if(get_userorigin(Name,Origin[0],Origin[1],Origin[2]) == 1) {
                    for(j=0;j<MAX_KOORDS;j++){
                        diffvec(Origin,g_Teleporters[j],Vec);
                        if(veclen(Vec) <= RANGE) {
                            while((k = random(MAX_KOORDS)) != j) {}
                            teleport(Name,g_Teleporters[k][0],g_Teleporters[k][1]+30,g_Teleporters[k][2]);
                            g_LastWarp[UserIndex] = time;
                            snprintf(Text,MAX_TEXT_LENGTH,"%s hat sich von Teleporter %i zu Teleporter %i gewarpt",Name,j,k);
                            say(Text);
                            break;
                        }
                    }
                }
            }
        }
    }
    return PLUGIN_CONTINUE;
}

public admin_warp(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[MAX_DATA_LENGTH];
    convert_string(HLData,Data,MAX_DATA_LENGTH);
    if(!Data[0]) selfmessage("admin_warp <0|1>: Teleporter aktivieren/deaktivieren");
    else if(Data[0] - 48 != g_Enabled) {
        g_Enabled = Data[0] - 48;
        snprintf(Data,MAX_DATA_LENGTH,"WARP-MODUS ist %s",g_Enabled ? "aktiviert" : "deaktiviert");
        selfmessage(Data);
    }
    return PLUGIN_HANDLED;
}

/* Helper Functions */
stock diffvec(vec1[3],vec2[3],vec0[3]) { //Puts the diffenrece-vector of vec1 and vec2 in vec0.
    new i;
    for(i=0;i<3;i++) {
        vec0[i] = vec1[i] - vec2[i];
    }
}

stock veclen(vec[3]) { //Returns the length of a vector, multiplied with factor.
    new i,j,k,l;
    for(i=0;i<3;i++){
        l = abs(vec[i]);
        k = max(l,k);
        j += l * l;
    }
    i = j;
    while(j > k) {
        j = (j + k) / 2;
        k = i / j;
    }
    return j;
}

stock abs(num) { //Returns the positive value of num.
    if(num > 0) {
        return num;
    }
    return -num;
}


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01.03.2003, 15:48 

Registriert: 27.02.2002, 14:50
Beiträge: 262
Wohnort: Hall in Tirol
jo is witzig sowas könnte man ja aber auch mappen

_________________
This shit got Pop -[Shorty´s Skateboard Stuff]-


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01.03.2003, 16:02 
AM.de Team

Registriert: 04.10.2002, 16:14
Beiträge: 1212
oder die teleporter mit stripper2 in die map einfügen, ja


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01.03.2003, 16:08 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ich habe leider keine Ahnung von mapping :-(

_________________
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  
Forum gesperrt  Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 9 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 ]"