eXtreme assault multigaming community

Normale Version: EA #08 | Update / Verbesserung des Mods
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
allgemeine Modverbesserung
Ich habe mir Soloists Quellcode einmal angeschaut, aber selbst in der neuen Version 3.1 gibt es einiges, was noch verbessert werden könnte, das v.a. die xp-Vergabe betrifft. Ich habe paar Zeilen geändert/hinzugefügt, sodass es folgende Neuerungen gibt:
-jeweils minimal erhöhte xp-rewards pro event (headshot z.b. 20 statt 15, normalkill 12 statt 10 xp, bombplant etc.)
- event message fixed beim Hochgehen der Bombe auf de-maps ("You just earned 20XP for bombing the target", statt dem missverständlichen "You just earned 20XP for rescuing all the hostages" lol)
- ein paar events hinzugefügt:
Hostages_Not_Rescued (Ts bekommen XP, wenn CTs Geiseln auf cs-maps nicht retten)
bzw. Target_Saved (vice-versa, CT bekommen XP, da Ts keine Bombe gelegt haben)
-> spornt zum Verfolgen des Mapziels an !!
alle events bezüglich VIPs hinzugefügt (aber derzeitig gibts ja noch keine as-maps, was ich persönlich schade finde ^^ wär bestimmt lustig)

Ich habe diese ausgearbeitete Form des Quellcodes sowohl als .sma als auch als fertig kompilierte .amxx Datei vorliegen und bin gespannt, was ihr zu meiner Überarbeitung zu sagen habt.

MfG, Mephisto
Hättest keinen neuen Thread eröffnen brauchen, Meph. Zur Zeit gibt es halt ein paar Dinge die wichtiger sind, die erledigt werden müssen - deswegen wohl auch noch keine Antwort auf Deinem Beitrag in dem anderen Thread. Shy Wink
Hay finde deine vorschläge gut aber normaler kill 15 exp ist besser dann bleibt man fasst auf geraden zahlen Big Grin
Ach ich will noch so ein kleinen bug melden aufem nintendo mod server das wenn man als Yoshi falschirm benutzt die gravity weg sind also dann jumpt man nicht mehr so hoch( ich weiß net ob das gewollt ist)
*push*

ich weiß, dass es zur Zeit wegen der Umstellung auf nen neuen root viel Stress und viel zu tun gibt... aber es ist nun doch schon einige Tage her, seitdem ich den Thread eröffnet habe, und noch kein einziger Admin hat sich dazu geäußert ... und wenn sowieso gerade alles umgestellt werden muss, könnte man ja gleich zwei Fliegen mit einer Klappe schlagen, bisschen mehr Aufwand, und man könnte einiges verbessern am nintendo mod =)
Nagut dann sag ich mal was dazu.
Bitte habe etwas Geduld Big Grin

Es wird momentan wirklich viel besprochen, auch wegen diesem Server.
Ich poste mal ein paar maps dazu weil die sidn dringend nötig:
de_rats4_final
de_westwood
fy_fly2kill.bsp
fy_buzzkill
fy_maps auf so einem Server? Ne, Danke. Vielleicht sollten sich hier so langsam einige mal anmelden und ihre Meinungen dazu geben, aber so lange bin ich dagegen das fy_maps auf diesen Server hoch geladen werden - vor allem so kleine.
ganz deiner meinung Dee, wozu sonst die skills wenn man eh aufm haufen hockt... das is ja grad das schöne an manchen chars, mit denen man in kürzester zeit selbst durch riesige maps gelangen kann Wink
jedoch de_westwood ist echt cool und meiner meinung nach auch für nintendo geeignet.

aber bitte back to topic... warte immer noch auf meinungen zu meiner modverbesserung?
neue Verbesserungen:
1.) Resetskills-Bug Abusing Fixed
Wenn man z.B. einen Donkey Kong spielt, dessen Passiver Skill erhöhte HP ist, konnte man bisher leicht durch die Eingabe von "resetskills" mitten im Spiel wieder auf volle HP kommen, was natürlich den andern gegenüber unfair ist. Dies ist Bugusing und gehört bestraft... ich habe selber schon manche auf diese weise "cheaten" gesehen. Diejenigen gingen sogar soweit, sich auf eine Taste den say-command "resetskills" zu binden, was sie quasi immun machte...
Mit diesem Anreiz hab ich mich an die Arbeit gemacht und den Mod leicht verändert, sodass man nur noch am Anfang jeder Runde seine Skills resetten kann, um diesen Betrügern vorzubeugen...

2.) charakterspez. Gravity in Verbindung mit Parachute-Plugin
Damit die low-grav von manchen Chars nach dem Einsatz des Fallschirms nicht verloren geht, habe ich ein bisschen am Parachute-Plugin gearbeitet und tada, mit der Veränderung kann nun auch Yoshi / Princess / Mario den Fallschirm problemlos nutzen, ohne dass die low-Gravity verloren geht Wink

wiedereinmal warte ich auf eure Anregungen und v.a. mal auf eine Meinung eines Admins, da es jetzt schließlich sogar schon um den Ausschluss von Bugusern / Cheatern geht.

MfG, Mephisto
Das PTB System sollte mal gescheit angepasst werden, z.b. erst ab 4 oder 5 Spieler aktiv werden, da es voll nervig ist, wenn man jede runde geswitched wird (es changed auch dauernd den stärkeren Spieler zu einem teammate, anstatt ihn allein gegen 2 spielen zu lassen bei 3 leuten aufm server oder so Oo

Mephisto schrieb:
allgemeine Modverbesserung
Ich habe mir Soloists Quellcode einmal angeschaut ...

Ich auch ... Smile, um Deine Vorschläge nachvollziehen zu können.

Mephisto schrieb:
-jeweils minimal erhöhte xp-rewards pro event (headshot z.b. 20 statt 15, normalkill 12 statt 10 xp, bombplant etc.)

Du meinst also die Änderung der Zeilen 505 bis 508 von

PHP-Code:
            if(headshot)
                
AddXP(attacker15);
            else
                
AddXP(attacker10); 

in

PHP-Code:
            if(headshot)
                
AddXP(attacker20);
            else
                
AddXP(attacker12); 

Mephisto schrieb:
- event message fixed beim Hochgehen der Bombe auf de-maps ("You just earned 20XP for bombing the target", statt dem missverständlichen "You just earned 20XP for rescuing all the hostages" lol)

Du meinst also die Änderung der Zeile 322 von

PHP-Code:
                    client_print(playerprint_chat"[Nintendo Mod] You just earned 15XP for rescuing all the hostages"); 

in

PHP-Code:
                    client_print(playerprint_chat"[Nintendo Mod] You just earned 15XP for bombing the target"); 

Mephisto schrieb:
- ein paar events hinzugefügt:
Hostages_Not_Rescued (Ts bekommen XP, wenn CTs Geiseln auf cs-maps nicht retten)
bzw. Target_Saved (vice-versa, CT bekommen XP, da Ts keine Bombe gelegt haben)
-> spornt zum Verfolgen des Mapziels an !!

Du meinst also die Erweiterung der //Team Events ab Zeile 298 um:

PHP-Code:
        else if(equal(logdata3,"Hostages_Not_Rescued"))
        {
            new 
players[32], numplayer;
            
get_players(playersnum);
            for(new 
0<= numi++)
            {
                
player players[i];
                if(
Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_T)
                {
                    
client_print(playerprint_chat"[Nintendo Mod] You just earned 10XP for preventing CTs of rescueing the hostages");
                    
AddXP(player10);
                }
            }
        }
    }

sowie

PHP-Code:
        else if(equal(logdata3,"Target_Saved"))
        {
            new 
players[32], numplayer;
            
get_players(playersnum);
            for(new 
0<= numi++)
            {
                
player players[i];
                if(
Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_CT)
                {
                    
client_print(playerprint_chat"[Nintendo Mod] You just earned 10XP for preventing Ts of bombing the target");
                    
AddXP(player10);
                }
            }
        }
    }

Mephisto schrieb:
alle events bezüglich VIPs hinzugefügt (aber derzeitig gibts ja noch keine as-maps, was ich persönlich schade finde ^^ wär bestimmt lustig)
Ich habe diese ausgearbeitete Form des Quellcodes sowohl als .sma als auch als fertig kompilierte .amxx Datei vorliegen und bin gespannt, was ihr zu meiner Überarbeitung zu sagen habt.

Ich hab' im Moment keinen Nerv, VIP-Events "nachzuschlagen", was sicherlich auch kein Problem wäre. Nur ... Deine Vorschläge sind mehr als interessant und sicherlich auf jeden Fall Verbesserungen, deshalb Top dafür, aber ... AMXModX lebt von der Offenheit und Mitarbeit nicht nur von Codern wie Soloist, sondern auch denjenigen, die deren Plugins verwenden und - so wie Du eben mit Deinen Vorschlägen - eben auch verbessern.
Ich bitte Dich also, Deine Vorschläge nicht nur uns hier zu unterbreiten und aus deren Codes so ein "Geheimnis" zu machen, sondern auch im Coder-Board im entsprechenden Thread zu posten. AMXModX und all seine Plugins waren es und sollten es weiterhin sein: Open Source !

Mephisto schrieb:
neue Verbesserungen:
1.) Resetskills-Bug Abusing Fixed
Wenn man z.B. einen Donkey Kong spielt, dessen Passiver Skill erhöhte HP ist, konnte man bisher leicht durch die Eingabe von "resetskills" mitten im Spiel wieder auf volle HP kommen, was natürlich den andern gegenüber unfair ist. Dies ist Bugusing und gehört bestraft... ich habe selber schon manche auf diese weise "cheaten" gesehen. Diejenigen gingen sogar soweit, sich auf eine Taste den say-command "resetskills" zu binden, was sie quasi immun machte...
Mit diesem Anreiz hab ich mich an die Arbeit gemacht und den Mod leicht verändert, sodass man nur noch am Anfang jeder Runde seine Skills resetten kann, um diesen Betrügern vorzubeugen...

2.) charakterspez. Gravity in Verbindung mit Parachute-Plugin
Damit die low-grav von manchen Chars nach dem Einsatz des Fallschirms nicht verloren geht, habe ich ein bisschen am Parachute-Plugin gearbeitet und tada, mit der Veränderung kann nun auch Yoshi / Princess / Mario den Fallschirm problemlos nutzen, ohne dass die low-Gravity verloren geht Wink

wiedereinmal warte ich auf eure Anregungen und v.a. mal auf eine Meinung eines Admins, da es jetzt schließlich sogar schon um den Ausschluss von Bugusern / Cheatern geht.

MfG, Mephisto

Auch diese Änderungen kann ich durchaus nachvollziehen, bringen uns aber reinweg gar nichts, wenn Du den Code dazu nicht postest.

Mephisto schrieb:
Das PTB System sollte mal gescheit angepasst werden, z.b. erst ab 4 oder 5 Spieler aktiv werden, da es voll nervig ist, wenn man jede runde geswitched wird (es changed auch dauernd den stärkeren Spieler zu einem teammate, anstatt ihn allein gegen 2 spielen zu lassen bei 3 leuten aufm server oder so Oo

Das System wird seit 2 Tagen angewandt und befindet sich momentan noch in einer Feinabstimmungsphase.

Also ... insgesamt, recht herzlichen Dank für Deine Anregungen und wirklich brauchbaren Verbesserungsvorschläge, aber behalte bitte im Fokus, dass solche bei Open Source-Codes bitte auch als solche zu posten sind. Alles andere ist nur unnötige und ganz besonders in der AMXModX-Community eine mehr als geschmähte Geheimniskrämerei ! Wink

Greetts

Na gut, dann will ich mal etwas konkreter werden...

changes/fixes:
- Missbrauch des resetskills-commands
globale Variable einführen, line 128

Code:
new bool:AllowReset = true;

in Funktion plugin_init() folgende Zeile hinzufügen

Code:
register_logevent("round_start",2,"0=World triggered","1=Round_Start")

diese 2 neuen Funktionen hinzufügen

Code:
public round_start(id)
{
    AllowReset = true;
    // Allow only in first 12 sec of a round to reset skills
    set_task(12.0,"ToggleAllowReset")
}

public ToggleAllowReset()
{
    AllowReset = false;
}

am Beginn der Funktion ResetSkills(id) if-Abfrage hinzufügen

Code:
if (!AllowReset) {
        Nintendo_StatusHUD(id, "You can only reset skills at the beginning of a round", 1);
        return PLUGIN_HANDLED;
    }

............................................................................................................
- erhöhte xp-rewards
Änderung der Zeile 589 und 591

Code:
if(headshot)
    AddXP(attacker, 18);
else
    AddXP(attacker, 12);

...........................................................................................................
- mehr xp-events
in Funktion plugin_log()
if-Abfrage zu Individual Events folgendermaßen abändern

Code:
//Individual Events
if(equal(logdata1, "triggered"))
{
    //Get the username and id out
    parse_loguser(logdata0, name, 31);
    id = get_user_index(name);
    //Hostage Events
    if(equal(logdata2, "Rescued_A_Hostage"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just earned 15XP for rescuing a hostage");
        AddXP(id, 15);
    }
    else if(equal(logdata2, "Killed_A_Hostage"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just lost 10XP for killing a hostage");
        AddXP(id, -10);
        }
    //Bomb Events
    else if(equal(logdata2, "Planted_The_Bomb"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just earned 20XP for planting the bomb");
        AddXP(id, 20);
    }
    else if(equal(logdata2, "Defused_The_Bomb"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just earned 20XP for defusing the bomb");
        AddXP(id, 20);
    }
    // VIP Events
    else if(equal(logdata2, "VIP_Assassinated"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just earned 20XP for assassinating the VIP");
        AddXP(id, 20);
    }
    else if(equal(logdata2, "Escaped_As_VIP"))
    {
        client_print(id, print_chat, "[Nintendo Mod] You just earned 20XP for escaping as VIP");
        AddXP(id, 20);
    }
}

if-Abfrage zu Team Events folgendermaßen abändern

Code:
//Team Events
else if(equal(logdata3,"All_Hostages_Rescued"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_CT)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for rescuing all the hostages");
            AddXP(player, 20);
        }
    }
}
else if(equal(logdata3,"Hostages_Not_Rescued"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_T)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for preventing the rescue of the hostages");
            AddXP(player, 20);
        }
    }
}
else if(equal(logdata3,"Target_Bombed"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_T)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for bombing the target");
            AddXP(player, 20);
        }
    }
}
else if(equal(logdata3,"Target_Saved"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_CT)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for saving the target");
            AddXP(player, 20);
        }
    }
}
else if(equal(logdata3,"VIP_Escaped"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_CT)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for the VIP could escape");
            AddXP(player, 20);
        }
    }
}
else if(equal(logdata3,"VIP_Not_Escaped"))
{
    new players[32], num, player;
    get_players(players, num);
    for(new i = 0; i <= num; i++)
    {
        player = players[i];
        if(Nintendo_IsValidPlayer(player) && cs_get_user_team(player) == CS_TEAM_T)
        {
            client_print(player, print_chat, "[Nintendo Mod] You just earned 20XP for preventing the escape of the VIP");
            AddXP(player, 20);
        }
    }
}

.........................................................................................................
-> abgeändeter Code für mySQL-Version [attachment=1964]

- Abänderung im Parachute-Plugin
neue Globalvariable

Code:
new Float:player_grav[33]

in Funktion plugin_init() am Anfang folgendes hinzufügen

Code:
for(new a = 0; a < 33; a++) {
    player_grav[a] = 0.0
}

in Funktion client_disconnect(id) als erste Zeile hinzufügen

Code:
player_grav[id] = 0.0

alle Vorkommen von

Code:
set_user_gravity(id, 1.0)

durch folgendes ersetzen

Code:
set_user_gravity(id, player_grav[id])

diese if-Abfrage vor den set_user_gravity(id, 0.1) Befehl schreiben (ca. line 470)

Code:
if (player_grav[id] == 0.0)
    player_grav[id] = get_user_gravity(id)

auch hier nochmal den abgeänderten Quellcode
[attachment=1965]

hoffe, konnte dich zufriedenstellen, SweetPie ^^

MfG, Mephisto

hay lol Big Grin was gehtn mit dir Mephisto ich kapier da die hälfte netmal Big Grin:DBig Grin LOL aber deine vorschläge sind BOMBE!!! hat ja auch oben SweetiePie gesagt nur in anderen worten wenn das dann geändert wird fehlen nur noch ein paar mehr maps mir fallen nur keine ein Big Grin

Mephisto schrieb:
1.) Resetskills-Bug Abusing Fixed
Wenn man z.B. einen Donkey Kong spielt, dessen Passiver Skill erhöhte HP ist, konnte man bisher leicht durch die Eingabe von "resetskills" mitten im Spiel wieder auf volle HP kommen, was natürlich den andern gegenüber unfair ist. Dies ist Bugusing und gehört bestraft... ich habe selber schon manche auf diese weise "cheaten" gesehen. Diejenigen gingen sogar soweit, sich auf eine Taste den say-command "resetskills" zu binden, was sie quasi immun machte...
Mit diesem Anreiz hab ich mich an die Arbeit gemacht und den Mod leicht verändert, sodass man nur noch am Anfang jeder Runde seine Skills resetten kann, um diesen Betrügern vorzubeugen...


Glaub mir, diese Spieler werde schon bestraft und zwei Spieler hatten vor 3 Tage auch einen 3-Tages-Ban bekommen, siehe hier und hier.

Zu Deinen Ideen brauch ich eigentlich nicht viel sagen. Hören sich alle klasse an und finde es sogar sehr gut, dass Du Dir den Code vom Mod angeschaut hast und zu den Bug-Fixes nun beiträgst. Auch von mir ein Daumen hoch Top .


/EDIT:
Hier noch einmal der Vorschlag:
"votemap" und/oder "rockthevote", diese Zeitbegrenzung, rausnehmen. Der Mod scheißt so oft ab, man muss immer 3-5 Minuten warten und wenn einige Idioten - sry - noch auf'm Server sind, die es nicht verstehen (wollen), dann wartet man auch ganze 15 Minuten, bis die Map gewechselt wird und der Mod wieder geht. Wir Admin-Trials haben ja - leider? - nicht die Funktion zum Map wechseln.

Sehr gut, Mephisto ! Danke sehr !

Ich werde diese Konkretisierungen sobald wie möglich umsetzen und den Quellcode entsprechend abändern sowie beide Plugins neu kompilieren und auf den Server laden.

Greets

PS.: Ich denke, nicht nur ich wäre Dir sehr dankbar, wenn Du diese wirklich hervorragenden Vorschläge aber auch noch im Allied Coder-Board postest. Falls Du das nicht möchtest, frage ich Dich hiermit um Erlaubnis, dies an Deiner Stelle mit Verweis auf Dich dort zu dürfen. Wink
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Referenz-URLs