Beiträge von Kaliber

    Du speichertst die Server.cfg einfach als Variable. Dann kannst du diese auch Ingame ändern!


    Dann wird sie aber nicht beim Restart übernommen ;)


    Theoretisch könnte man das machen mit folgender Pfad angabe: (nicht getestet)


    Code
    ../server.cfg


    und dann könnte man die Server.cfg editieren sprich so:


    new File:f = fopen("../server.cfg",io_write);
    fwrite(f,"Alles gelöscht");
    fclose(f);
    //In der Server.cfg würde jetzt stehen: "Alles gelöscht"


    mfg. :thumbup:

    Ich schreib dir mal eins, hier:


    ocmd:countdown(playerid,params[]) {
    new string[128],count;
    if(sscanf(params,"d",count)) return SendClientMessage(playerid,rot,"Verwendung: /countdown [Zeit]");
    Start_Countdown(count);
    format(string,128,"Du hast den Countdown für %d Sekunden laufen lassen !",count);
    SendClientMessage(playerid,blau,string);
    return 1;
    }
    forward Start_Countdown(count);
    public Start_Countdown(count) {
    if(count > 1) format(string,128,"~r~%d",count);
    else if(!count) format(string,128,"~g~Go Go Go"); //Text evtl ändern
    else return 1;
    GameTextForAll(string,1000,5);
    new zahl = count--;
    SetTimerEx("Start_Countdown", 1000, 1, "d",zahl);
    return 1;
    }


    Versuchs mal ^^


    //Edit: ja den GameText doch nur für 1sek anzeigen lassen :D


    mfg. :thumbup:

    Sagt mal, finde das ja cool was ihr da so alles mit ein programmiert, aber ich habe dazu mal ein paar Fragen:


    1. Ein paar Dinge die ihr da macht sind verboten und Kalcor wird diese Server bestimmt Blacklisten z.B. das mit den Bots...


    2. Werdet ihr das dann als Plugin veröffentlichen ?


    3. Lohnt es sich denn das zu machen, wenn ihr doch wisst das es verboten ist ?!


    Ich verstehe den Sinn nicht dahinter, außerdem gibt es schon ein paar Sachen, wie z.B. Player seitige Gravitation hat Y_LESS schon mal veröffentlicht oder das mit den Bots...^^


    mfg. :huh:

    Nein :D


    Du fragst ab ob die Schleife bei playerid 3 ist etc... ;)


    So sollte das aussehen:


    stock bool:Are3Online() {
    new count;
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(PlayerInfo[i][pFrak] == 3) count++; //PlayerInfo[i][pFrak] halt anpassen, wie du die Gang da einstellst
    if(count > 3) return true;
    }
    return false;
    }


    //So abfragen
    if(Are3Online()) {
    //Es sind 3 Leute aus der Gang online
    }
    else {
    //Hier nicht
    }


    mfg. :thumbup:

    Man sieht, das du den Befehl zusammenkopiert hast und das richtig schlecht, so langsam solltest du doch mal etwas besser scripten können...


    Schreibe das mal so:


    if(!strcmp(cmdtext,"/tban",true))
    {
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /tban [Spielerid] [Zeit]");
    new pid = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!tmp[0]) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /tban [Spielerid] [Zeit]");
    new time = strval(tmp), name[MAX_PLAYER_NAME];
    GetPlayerName(pid,name,sizeof(name));
    format(string,sizeof(string),"Du hast den Spieler %s für %d Minuten gebannt!",name,time);
    SendClientMessage(playerid,WHITE,string);
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"Der Admin %s hat dich für %d Minuten vom Server gebannt!",name,time);
    SendClientMessage(pid,WHITE,string);
    TBan(pid,time);
    return 1;
    }


    Falls das immernoch nicht gehen sollte, poste mal bitte die Funktion TBan(pID,time); ;)


    mfg. :thumbup:

    Wie schaut es aus, wenn einer das tor in eine andere richtung öffnen will als in der Z achse?


    Ja, da muss man dann selber rann, das würde dann so aussehen:


    new obj = GetGate(playerid);
    if(obj == -1) return SendClientMessage(playerid,rot,"Du befindest dich an keinem Tor !");
    MoveObject(obj,neuX,neuY,neuZ,4.0);
    return 1;


    Muss man halt noch mit MoveObject machen :)


    mfg. :thumbup:


    //Edit: Omg, hatte da Buchstaben vertauscht :D Habe das alles jetzt mal getestet und so funktioniert es ^^ sry nochmal :rolleyes:

    Oh, Leute wie soll man denn aus so einer Scheiße etwas rausholen ?


    Gebt ihm wenn schon etwas sinnvoles vor und nicht so einen kopierten GF Mist :pinch:


    Hier mal ein besserer Ansatz:


    stock bool:Car_Check(v) {
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInVehicle(i,v)) return true;
    }
    return false;
    }


    if(!strcmp(cmd, "/respawncars", true)) {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF4800FF,"Du bist kein Rcon-Administrator !");
    for(new v; v<MAX_VEHICLES; v++) {
    if(!Car_Check(v)) SetVehicleToRespawn(v);
    }
    SendClientMessage(playerid,0xFFFF00FF,"Du hast die Cars erfolgreich respawnt !");
    return 1;
    }


    Ja, wenn du das jetzt noch richtig einfügst, funktioniert es ^^


    mfg. :thumbup:

    Weil sie dafür bezahlt haben und wir ihnen das ja nicht einfach wegnehmen können.


    Ich glaube 1ner hat bezahlt die anderen nicht mehr :D
    Es gab nämlich den Bug ich weiß nicht ob ihrs wusstet, aber man konnte einfach den Link kopieren, nachdem man gezahlt hatte und dann Telefonnummer etc...angeben und dann musste man net mehr zahlen nur noch Telefonnummer bestätigen lassen etc...dann hatte man das auch, halt ohne bezahlen, das System war so mega buggy von denen :D


    Naja...^^


    mfg. :thumbup:

    1. Seid wann gibt es "Anschrift bestätigt" und "Donator Provider" ? Daraus folgend, wenn ich mich recht erinnere, verkauft Grex auch Donator's ? Wieso bekommt er das nicht, muss man dafür "offizieller Partner" sein ? Und muss man da wirklich Rangbilder für unter dem Namen haben ? Wie wird die Adresse bestätigt ? Kann das jeder machen ? Brauch man einen Gewrbeschein ?


    Das war nur eine Idee, die nicht richtig besprochen wurde Intern ^^
    Also ich rede von dieser Anschrift bestätigt, das wird sich glaube ich auch nicht durchsetzten, wieso das nicht entfernt wurde, liegt einfach daran, dass immernoch versucht wird mit diesem Geld die Server Kosten zu decken...


    "Hilfreichster Beitrag" im Showroom anfangen ?


    Naja, wenn einer z.B. irgend ein Beispiel nochmal zur genauen Code Erklärung gibt, halt einen hilfreichen Beitrag ^^ (ist aber nicht nur im Showroom !)


    3. Yeha, Bronies übernehmen hier auch die Überhand Bekommen wir eine eigene Kategorie ? *.*


    Was meinste :huh:


    4. Ich finde, das hier zu viel mit Verwarnungen "gedroht" wird; als Beispiel Trooper's Tool, so wie ich das sehe wurde das nicht von der Administration entwickelt, sonst währe es ja ein Plugin. Aber warum steht es dann in den Ankündigungen ? Und warum bekommt man eine Verwarnung dafür ?


    Naja, ich finde eigentlich, alle Verwarnungen die die Admins verteilen sind auf eine gewisse Art und Weise berechtigt ;)


    mfg. :thumbup:

    Schreibe es dann bitte einfach so:


    if(!strcmp("/stats",cmdtext,true))
    {
    new string[128],buffer[32];
    switch(GetPVarInt(playerid,"Fraktion")) {
    case 0: format(buffer,32,"Zivi");
    case 1: format(buffer,32,frakname);
    case 2: format(buffer,32,frakname1);
    case 3: format(buffer,32,frakname2);
    case 4: format(buffer,32,frakname3);
    case 5: format(buffer,32,frakname4);
    }
    format(string,sizeof(string),"Stats von %s\n|Level: %d || Kills: %d || Tode: %d || AdminLevel: %d || Fraktion: %s |",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid, "Kills"),GetPVarInt(playerid, "tode"),GetPVarInt(playerid, "Adminlevel"),buffer);
    SCM(playerid,Blau,string);
    return 1;
    }


    mfg. :thumbup:

    Naja, ich weiß nicht wie du das mit den Items machst, aber ich gebe dir mal ein Beispiel:


    new Item[MAX_PLAYERS][5][128];


    //Item Zuweisung
    format(Item[playerid][0], 128,"Milch");
    format(Item[playerid][1], 128,"Butter");
    format(Item[playerid][2], 128,"Käse");
    //Diese Sachen hat man jetzt dabei


    //Der Dialog
    new buffer[32],string[128];
    for(new i; i<5; i++) {
    if(strlen(Item[playerid][i]) < 1) continue;
    format(buffer,32,"%s\n",Item[playerid][i]);
    strins(string,buffer,0,128);
    }
    ShowPlayerDialog(playerid,-1,DIALOG_STYLE_LIST,"Du hast folgendes dabei:",string,"Okay","Nein");
    //Output:
    Käse
    Butter
    Milch


    Nicht getestet, sollte aber klappen ;)


    mfg. :thumbup:

    Guten Abend liebe Community,


    da ich in letzter Zeit immer wieder Probleme mit Toren/Gates gefunden habe, habe ich eine kleine Include geschrieben, die das ganz schön vereinfacht:


    [tabmenu]


    [tab='Allgemeine Informationen','http://forum.sa-mp.de/wcf/icon/infoM.png']
    [subtab='Informationen','http://www.gta-center.com/area_download/posticons/pawn.gif']
    Also dieses Include ermöglicht die Nutzung folgender Funktionen:
    CreateTor(modelid,Float:X,Float:Y,Float:Z,Float:r1,Float:r2,Float:r3,dis=300); //erstellt ein Tor, man muss keine dis angeben, es wird eig 300 verwendet
    GetGate(playerid); //returnt die objektid von dem Tor, welches in der Nähe von dem Spieler ist, -1 falls nicht
    MoveGate(objektid,id); //Bewegt das Tor, schaut hierzu nochmal in den Beispiel Tab...
    [subtab='Beispiel Tab','http://www.rezepte-guru.de/template/images/icon_stern.gif']
    //So könnte etwas aussehen
    new obj = GetGate(playerid);
    if(obj == -1) return SendClientMessage(playerid,rot,"Du befindest dich an keinem Tor !");
    MoveGate(obj,0); //Öffnet das Tor (Z - Achse + 10)
    MoveGate(obj,1); //Schließt das Tor (Z - Achse - 10)
    MoveGate(obj,2); //Öffnet + Schließt das Tor automatisch nach 5 Sekunden
    [subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
    Pastebin: Pastebin Download *Erneuert²*
    Media-Fire Download: Mediafire *Erneuert²*
    [/tabmenu]


    PS: Man kann maximal 20 Gates verwenden, aber einfach es so machen:


    #define MAX_GATES 200
    #include <Easy_Gate>
    und jetzt könnte man 200 Gates verwenden ^^


    Es ist sehr simpel, aber trotzdem hoffe ich, es hilft einigen ;)


    mfg. :thumbup:


    //Edit: Verbessert (Danke Blackace) :D
    //edit²: Omg ich hatte da was verwechselt