Beiträge von [DT]Sniper

    Einen Server mit vielen Bucks zu starten ist dumm, such dir so 10 Leute mach auf den Server ein pw und mach eine Beta phase von ner Woche. Dannach würde ich den Server richtig (und hoffentlich mit viel weniger Bucks) starten.

    ganz oben:
    forward getIPfromString(string[]);


    ganz unten:
    public getIPfromString(string[]) {
    new round = 0, lastchars = 0;
    for(new i = 0; i < strlen(string); i++) {
    if(round == 0 && string[i] == '.') {
    round = 1;
    } else if(round <= 3 && string[i] == '.' && lastchars <= 3 && lastchars >= 2) {
    round += 1;
    lastchars = 0;
    } else if(round == 3 && string[i] == ':' && lastchars <= 3 && lastchars >= 2) {
    round += 1;
    lastchars = 0;
    } else if(round >= 1) {
    lastchars++;
    }
    }
    printf("%d %d", round, lastchars);
    if(round == 4) {
    return 1;
    } else {
    return 0;
    }


    }


    in dem befehl wie /o (/ooc)

    if(getIPfromString(result))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
    SendClientMessageToAll(COLOR_RED,string);
    KickLog(string);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
    Kick(playerid);
    return 0; // GANZ WICHTIG!
    }

    das sehe dann bei ooc ca. so aus:

    Spoiler anzeigen

    if(strcmp(cmd, "/ooc", true) == 0 || strcmp(cmd, "/o", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " You havent logged in yet !");
    return 1;
    }
    if ((noooc) && PlayerInfo[playerid][pAdmin] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD2, " The OOC channel wurde von einem Admin deaktieviert !");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, " You can't speak, you have been silenced !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/o)oc [ooc chat]");
    return 1;
    }
    if(getIPfromString(result))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
    SendClientMessageToAll(COLOR_RED,string);
    KickLog(string);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
    Kick(playerid);
    return 0;
    }
    format(string, sizeof(string), "(( %s: %s ))", sendername, result);
    OOCOff(COLOR_OOC,string);
    printf("%s", string);
    }
    return 1;
    }


    Bei OnPlayertext ist das bei GF so:
    public OnPlayerText(playerid, text[])
    {
    new giver[MAX_PLAYER_NAME];
    new sendername[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    new tmp[256];
    new string[256];
    new giveplayerid;
    if(getIPfromString(text)) {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "SCRIPT: %s wurde wegen Werbung gekickt!", sendername);
    SendClientMessageToAll(COLOR_RED,string);
    KickLog(string);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, "Keine Werbung!");
    Kick(playerid);
    return 0;
    }

    ok mach das so:


    dein forward umändern zu
    forward Maut();
    und deine funktion zu:



    public Maut()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    new stringziel[256];
    new playrname[MAX_PLAYER_NAME];


    if(PlayerToPoint(5.0, playerid, 144.2668,-1374.6394,49.6506) || PlayerToPoint(5.0, playerid, 1181.9232,-677.2064,62.3592))
    {
    GetPlayerName(playerid, playrname, sizeof(playrname));
    format(stringziel, sizeof(stringziel), "%s Setting.ini", playrname);
    new number = dini_Int(stringziel, "Maut");
    if(number == 1)
    {
    }
    else if(number == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "TELEMAUT: Du hast die Mautstation passiert. Kosten: 25$ . Bitte fahre weiter zur Entwerungsstation!");
    GivePlayerMoney(playerid, -25);
    new schondrin = dini_Int("Maut.ini", "Kasse");
    dini_IntSet("Maut.ini", "Kasse", schondrin+25);
    dini_IntSet(stringziel, "Maut", 1);
    }
    }
    }
    return 1;
    }


    Sorry aber ich muss sagen dass die map shr dürftig und detail arm ist. Di Titanic war ein großes shr schönes schiff und deins sieht erher aus wie Schiffsrumpf+Häuser+Schornsteine+Schiffsschraube.
    Also dass hätte man viel schöner machen können.
    Mein Tipp das nächste mal mehr zeit fran setzten, viel mehr um jede kleinigkeit kümmern etc.
    2/10 Punkten

    Probiers mal so:



    public OnPlayerLogin(playerid,const string[])
    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    format(string2, sizeof(string2), "%s.cer", pname2);
    new File: UserFile = fopen(string2, io_read);


    if (UserFile)
    {
    new valtmp[128];
    fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPasswort], valtmp, 0, strlen(valtmp)-1, 255);


    if ((strcmp(PlayerInfo[playerid][pPasswort], string, true, strlen(valtmp)-1) == 0))
    {
    new key[128],val[128];
    new Data[128];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if( strcmp( key , "Kills" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Deaths",true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Geld" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
    if( strcmp( key , "Bank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBank] = strval( val ); }
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]); // wenn ich das lösche dann wird das geld nicht gespeichert!
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    new kills = PlayerInfo[playerid][pKills];
    SetPlayerScore(playerid, kills);
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "Willkommen %s, du hast dich erfolgreich eingeloggt!", pname3);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, WEIS,string3);
    }
    else
    {
    Versuche[playerid]++;
    if(Versuche[playerid] == 1) { SendClientMessage(playerid, ROT, "Falsches Passwort noch 2 versuche"); }
    else if(Versuche[playerid] == 2){ SendClientMessage(playerid, ROT, "Falsches Passwort letzte chance bevor du gekickt wirst"); }
    else if(Versuche[playerid] > 2) { Kick(playerid); }


    fclose(UserFile);
    }
    }
    return 1;
    }

    SetPlayerInterior(playerid,0);
    da ich denke dass du bei den Koordianaten die du angegeben hast nicht in einem Interrior bist musst du dass so machen.

    nö habe ich leider nicht ist aber ne nette idee bin nur heute auf einer Lan und kann deswegen nicht so große Sachen scripten, soll aber auf GF basieren oder?
    Wenn ja wäre es am einfachsten für uns beide wenn du mir Samstag abend dein Script sendest und ich dir das rein mache, da es schon ein haufen arbeit ist. würdest das script dann am Sonntag morgen wieder bekommen, müsstest mir nur vertrauen.