Beiträge von Lazoking1996

    Als erstens musst du so machen wie der Cabo geschrieben hat.


    und du hast ein Fehler bei if(weapon < 0 || weapon > 54)


    Da kommt kein || sondern && weil dann wird immer das Fehler nachricht kommen.


    Bei Skin hast du auch gleiche gemacht if(skin < 0 || skin > 999)


    alles ändern :D

    Sowas ?


    new plname[MAX_PLAYER_NAME]; // Neue Variable wird erstellt.
    GetPlayerName(playerid,plname,sizeof(plname)); // Die Variable holt die Name der Spieler raus.
    new namestring = strfind(plname, "_", true); // Es wird ein Variable erstellt.
    new namestring2 = strfind(plname, ".", true); // Es wird ein Variable erstellt.
    if(namestring == -1 || namestring == -1) // Wenn der Spieler kein _ zeichen oder . zeichen hat...
    {
    // Hier Kommt was passieren soll ich hab Vorlage gemacht

    // Es wird ClientMessage für Spieler gekommt und wird gekickt
    SendClientMessage(playerid, 0xEB0000FF, "===================================================");
    SendClientMessage(playerid, 0x37FF00FF, "Einwanderungsamt: Dieser Name ist hier leider nicht legal!");
    SendClientMessage(playerid, 0x37FF00FF, "Einwanderungsamt: Benutze Vorname_Nachname!");
    SendClientMessage(playerid, 0xEB0000FF, "===================================================");
    Kick(playerid);
    }

    Ganz oben:


    new saveallow[MAX_PLAYERS];


    Unter OnPlayerCommandText
    if(!strcmp(cmdtext,"/allowsavespawn",true,15))
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin");
    if(cmdtext[15] == 0) return SendClientMessage(playerid,0xFFFFFFFF,"NUTZUNG: /allowsavespawn [playerid]");
    if(!IsPlayerConnected(strval(cmdtext[15]))) return SendClientMessage(playerid,0xFFFFFFFF,"Kein Spieler mit dieser ID gefunden");
    saveallow[strval(cmdtext[15])] = 1;
    SendClientMessage(playerid,0xFFFF00FF,"Du hast dem Spieler das Spawn-Speichern erlaubt");
    SendClientMessage(strval(cmdtext[15]),0xFFFF00FF,"Dir wurde das Speichern deines Spawnpunkts erlaubt");
    return 1;
    }


    if(!strcmp(cmdtext,"/savespawn",true))
    {
    if(saveallow[playerid] != 1) return SendClientMessage(playerid,0xFF0000FF,"Dir wurde das Speichern deines Spawnpunkts nicht erlaubt");
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    new spielerdatei[80];
    format(spielerdatei,sizeof(spielerdatei),"Spawns/%s.ini",playername);
    dini_FloatSet(spielerdatei,"SpawnX",x);
    dini_FloatSet(spielerdatei,"SpawnY",y);
    dini_FloatSet(spielerdatei,"SpawnZ",z);
    SendClientMessage(playerid,0xFFFF00FF,"Spawnpunkt gespeichert");
    return 1;
    }

    Du musst die Variable
    new Spieler[MAX_PLAYERS][spieler_daten];


    unter
    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt}


    nehmen.


    Also so:


    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt
    }


    new Spieler[MAX_PLAYERS][spieler_daten];


    Dann klappt es

    Also, als erstens entschuldige ich für Doppelpost.


    Hab Textdraw gelöscht funkt wieder. ich weiß nicht wo das fehler ist wenn ich mit pawno kombiliere kommt kein error/warning


    Das ganz oben


    new Text:Textdraw0;
    new Text:Textdraw1;
    new Text:Textdraw2;
    new Text:Textdraw3;


    Das ganz oben
    new GroveKills;
    new BallasKills;
    new VagosKills;
    new TraidsKills;


    Ganz oben
    new Groves[50], Ballas[50], Vagos[50], Traids[50];


    Unter Gamemodeinit
    format(Groves,sizeof(Groves),"~g~Groves: ~w~%d",GroveKills);
    format(Groves,sizeof(Groves),"~p~Ballas: ~w~%d",BallasKills);
    format(Groves,sizeof(Groves),"~y~Vagos: ~w~%d",VagosKills);
    format(Groves,sizeof(Groves),"~r~Traids: ~w~%d",TraidsKills);
    Textdraw0 = TextDrawCreate(11.000000,260.000000,Groves);
    Textdraw1 = TextDrawCreate(12.000000,281.000000,Ballas);
    Textdraw2 = TextDrawCreate(23.000000,301.000000,Vagos);
    Textdraw3 = TextDrawCreate(18.000000,321.000000,Traids);
    TextDrawAlignment(Textdraw0,0);
    TextDrawAlignment(Textdraw1,0);
    TextDrawAlignment(Textdraw2,0);
    TextDrawAlignment(Textdraw3,0);
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawBackgroundColor(Textdraw1,0x000000ff);
    TextDrawBackgroundColor(Textdraw2,0x000000ff);
    TextDrawBackgroundColor(Textdraw3,0x000000ff);
    TextDrawFont(Textdraw0,2);
    TextDrawLetterSize(Textdraw0,0.599999,1.100000);
    TextDrawFont(Textdraw1,2);
    TextDrawLetterSize(Textdraw1,0.599999,1.100000);
    TextDrawFont(Textdraw2,2);
    TextDrawLetterSize(Textdraw2,0.599999,1.100000);
    TextDrawFont(Textdraw3,2);
    TextDrawLetterSize(Textdraw3,0.599999,1.100000);
    TextDrawColor(Textdraw0,0xffffffff);
    TextDrawColor(Textdraw1,0xffffffff);
    TextDrawColor(Textdraw2,0xffffffff);
    TextDrawColor(Textdraw3,0xffffffff);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetOutline(Textdraw1,1);
    TextDrawSetOutline(Textdraw2,1);
    TextDrawSetOutline(Textdraw3,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetProportional(Textdraw1,1);
    TextDrawSetProportional(Textdraw2,1);
    TextDrawSetProportional(Textdraw3,1);
    TextDrawSetShadow(Textdraw0,1);
    TextDrawSetShadow(Textdraw1,1);
    TextDrawSetShadow(Textdraw2,1);
    TextDrawSetShadow(Textdraw3,1);


    Unter OnPlayerDisconnected
    TextDrawHideForPlayer(playerid,Textdraw0);
    TextDrawHideForPlayer(playerid,Textdraw1);
    TextDrawHideForPlayer(playerid,Textdraw2);
    TextDrawHideForPlayer(playerid,Textdraw3);


    OnPlayerSpawn
    TextDrawShowForPlayer(playerid,Textdraw0);
    TextDrawShowForPlayer(playerid,Textdraw1);
    TextDrawShowForPlayer(playerid,Textdraw2);
    TextDrawShowForPlayer(playerid,Textdraw3);


    Unter OnPlayerDeath
    if(pTeam == TEAM_GROVES)
    {
    GroveKills++;
    }
    if(pTeam == TEAM_BALLAS)
    {
    BallasKills++;
    }
    if(pTeam == TEAM_VAGOS)
    {
    VagosKills++;
    }
    if(pTeam == TEAM_TRIADS)
    {
    TraidsKills++;
    }


    TextDrawHideForAll(Textdraw0);
    TextDrawHideForAll(Textdraw1);
    TextDrawHideForAll(Textdraw2);
    TextDrawHideForAll(Textdraw3);

    TextDrawShowForAll(Textdraw0);
    TextDrawShowForAll(Textdraw1);
    TextDrawShowForAll(Textdraw2);
    TextDrawShowForAll(Textdraw3);

    Also ich bin kein Anfänger. Ich bin Pawno Profi, leider weiß ich nicht wieso mein server crasht.
    Es ist keine Warning/Error im Gamemode drinn.


    Server.log :



    Und In server.cfg alles richtig eingestellt.


    Das Fehler gab eigentlich nicht nachdem ich Textdraw erstellt habe crasht das Server

    Problem steht oben und hier die Crashcode:


    #include <Dini>


    -Es wird Dini Include aus der Ordner /pawno/include geholt.


    new PlayerWeapons[12][MAX_PLAYERS]; // Das ist unser Weapons
    new PlayerAmmo[12][MAX_PLAYERS] // Das ist unser Munition
    new Datei[40] // Das ist unser Datei von derjenige Spieler


    for(new w=0;w<13;w++) // Unser Slots
    {
    PlayerWeapons[w][playerid] = 0; // Waffe von der Spieler
    PlayerAmmo[w][playerid] = 0; } // Die Munition von derjenige Waffe
    format(Datei,sizeof(Datei),"%s.Weapons.txt",oGetPlayerName(playerid)); // Unser Ordner
    if(!dini_Exists(Datei)) // Wenn der Datei nicht existiert
    {
    printf("no such file '%s'? created...", file); dini_Create(Datei); // Kommt in Server Console diese Nachricht
    dini_Create(Datei); // Neue Datei wird erstellt also für derjenige Spieler der Connected hat.
    }
    }


    for(new weap=0;weap<13;weap++) // Unser Slots
    {
    GetPlayerWeaponData(playerid,weap,PlayerWeapons[weap][playerid],PlayerAmmo[weap][playerid]); // Holt die Spieler Waffen und Muinition auf die Variablen
    format(Datei,sizeof(Datei),"%s.Weapons.txt",oGetPlayerName(playerid)); // Ordner wird Formatiert also %s steht für Name der Spieler
    new slotname[20]; // Neue Variable
    format(slotname,sizeof(slotname),"Slot%d",weap); // %d steht für Slots, es geht bis 13
    dini_IntSet(Datei,slotname,PlayerWeapons[weap][playerid]); // Datei wird verarbeitet. (Seine Waffen werden gespeichert)
    new slotammo[20]; // Neue Variable
    format(slotammo,sizeof(slotammo),"AmmoSlot%d",weap); // %d steht für Slots, es geht bis 13
    dini_IntSet(Datei,slotammo,PlayerAmmo[weap][playerid]); // Datei wird verarbeitet. (Seine Muniton werden gespeichert)
    }


    for(new weap=0;weap<13;weap++) // 13 Slots
    {
    format(file,sizeof(file),"%s.Weapons.txt",oGetPlayerName(playerid));
    new slotname[20]; // Ist gleiche wie oben
    format(slotname,sizeof(slotname),"Slot%d",weap); // Ist gleiche wie oben
    new slotammo[20]; // Ist gleiche wie oben
    format(slotammo,sizeof(slotammo),"AmmoSlot%d",weap); // Ist gleiche wie oben
    PlayerWeapons[weap][playerid] = strval(dini_Get(file, slotname)); // Der variable bekommt das Waffe aus der datei
    PlayerAmmo[weap][playerid] = strval(dini_Get(file, slotammo)); // Der variable bekommt das Munition aus der datei
    GivePlayerWeapon(playerid, PlayerWeapons[weap][playerid], PlayerAmmo[weap][playerid]); // Hier wird waffen zu spieler gegeben
    }


    stock oGetPlayerName(playerid) // Neue Pawno Befehl. Der Befehl nimmt den Namen der Spieler
    {
    new name[MAX_PLAYER_NAME]; // Neue Variable
    GetPlayerName(playerid,name,sizeof(name)); // Holt den Spieler name
    return name;
    }

    Inhalt
    -Was wird gebraucht ?


    -Vorführung
    -Einleitung


    Was wird gebraucht ?
    Ihr braucht nur Dini Include.
    Download: http://dracoblue.net/download/dini-16/35/
    Ihr fügt nur das Dini.inc auf Ordner /pawno/includes ein.


    Vorführung
    Ihr öffnet ein Neues Ordner in /scriptfiles
    Und der Ordnername soll Weapons heißen


    Einleitung
    Ganz oben im Script fügt ihr das Dini Include ein.
    #include <Dini>

    Dann wieder oben die Variablen einfügen
    new PlayerWeapons[12][MAX_PLAYERS];
    new PlayerAmmo[12][MAX_PLAYERS];
    new Datei[40]


    Unter OnPlayerConnect diese Code einfügen
    for(new w=0;w<13;w++)
    {
    PlayerWeapons[w][playerid] = 0;
    PlayerAmmo[w][playerid] = 0;
    }
    format(Datei,sizeof(Datei),"%s.Weapons.txt",oGetPlayerName(playerid));
    if(!dini_Exists(Datei))
    {
    printf("no such file '%s'? created...", file);
    dini_Create(Datei);
    }


    Unter OnPlayerDisconnect fügt ihr diese Code ein.
    for(new weap=0;weap<13;weap++)
    {
    GetPlayerWeaponData(playerid,weap,PlayerWeapons[weap][playerid],PlayerAmmo[weap][playerid]);
    format(Datei,sizeof(Datei),"%s.Weapons.txt",oGetPlayerName(playerid));
    new slotname[20];
    format(slotname,sizeof(slotname),"Slot%d",weap);
    dini_IntSet(Datei,slotname,PlayerWeapons[weap][playerid]);
    new slotammo[20];
    format(slotammo,sizeof(slotammo),"AmmoSlot%d",weap);
    dini_IntSet(Datei,slotammo,PlayerAmmo[weap][playerid]);
    }


    Und Unter OnPlayerSpawn
    for(new weap=0;weap<13;weap++)
    {
    format(file,sizeof(file),"%s.Weapons.txt",oGetPlayerName(playerid));
    new slotname[20];
    format(slotname,sizeof(slotname),"Slot%d",weap);
    new slotammo[20];
    format(slotammo,sizeof(slotammo),"AmmoSlot%d",weap);
    PlayerWeapons[weap][playerid] = strval(dini_Get(file, slotname));
    PlayerAmmo[weap][playerid] = strval(dini_Get(file, slotammo));
    GivePlayerWeapon(playerid, PlayerWeapons[weap][playerid], PlayerAmmo[weap][playerid]);
    }


    Anschließend diese Code ganz unten im Script
    stock oGetPlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    return name;
    }

    Erst OCMD herunterladen und in Ordner /pawno/includes/ legen.


    ocmd: http://uploaded.to/file/y8yffe


    GameMode öffnen (mit Pawno).


    Ganz oben im Script diese Code einfügen:


    #include <ocmd>


    und ganz unten fügst du sscanf code ein:


    stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; }


    und als nächstet zwichen OnPlayerCommandText und OnPlayerText fügst du diese Code ein:


    ocmd:veh(playerid,params[])
    {
    new vehid, color1, color2;
    if(sscanf(params,"ddd",vehid,color1,color2)) return SendClientMessage(playerid,0xFF0000FF,"Verwendung: /veh [VehicleID] [Color] [Color2]");
    {
    if(vehid > 611 || vehid < 400 || color1 > 252 || color1 < 0 || color2 > 252 || color2 < 0)
    {
    SendClientMessage(playerid,0xFF0000FF,"Vehicle ID (400-611) | Color ID (0-252)");
    }
    else {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    CreateVehicle(vehid,x+1,y+1,z,a,color1,color2,50000000000);
    }
    }
    return 1;
    }