spawn punkt ändern

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • ich habe eben angefangen ein cmd zum ändern des Spawnpunktes zu schreiben


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(spawnen,7,cmdtext);
    return 0;
    }
    dcmd_spawnen(playerid,params[])
    {
    new pID;
    new name[MAX_PLAYER_NAME];
    new string[256];
    new name2[MAX_PLAYER_NAME];
    new string2[256];
    if (!IsPlayerAdmin(playerid))
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
    }
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /spawnen [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s hat deinen Spawnpunkt geändert", name);
    SendClientMessage(pID,COLOR_RED, string);


    GetPlayerName(pID, name2, sizeof(name2));
    format(string2, sizeof(string2), "Du hast %s Spawnpunkt geändert", name2);
    SendClientMessage(playerid,COLOR_RED, string2);
    }
    return 1;


    }wie find ich nun die position des admins heraus und speicher sie in einer datei "die so heist wie der spieler pID"(ich hab login system)die koordinaten und wie mach ich das der spieler nach dem einlogen dort spawnt
    ich ken mich mit new float net so aus
    danke im vorraus
    //edit:ich konnte nicht im pwn quelltext schreiben da das dan nur 2 zeilen sind und die übersucht flöten geht
    ________________________________
    sorry für fehler aber 20%meiner finger sind daumen ^^

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(spawnen,7,cmdtext);
    return 0;
    }


    dcmd_spawnen(playerid,params[])
    {
    new pID;
    new name[MAX_PLAYER_NAME];
    new string[256];
    new name2[MAX_PLAYER_NAME];
    new string2[256];
    if (!IsPlayerAdmin(playerid))
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
    }
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /spawnen [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s hat deinen Spawnpunkt geändert", name);
    SendClientMessage(pID,COLOR_RED, string);


    GetPlayerName(pID, name2, sizeof(name2));
    format(string2, sizeof(string2), "Du hast %s Spawnpunkt geändert", name2);
    SendClientMessage(playerid,COLOR_RED, string2);
    }
    return 1;
    pwn quelltext spinnt

  • achso.. du willst das ganze auch noch inder ini speicher. ja kla kanst du das. hast du ein public, wo die ini überschrieben wird? also bei den meisten heißt es Update oder Playerupdate oder Spielerupdate oder sowas in der art, was so aussieht:


    public Update(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini",SpielerName);
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"AdminLevel",Spieler[playerid][Admin]);
    dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Wanteds",Spieler[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(Spielerdatei,"Spawn",Spieler[playerid][Spawn]);
    dini_IntSet(Spielerdatei,"Team",gTeam[playerid]);
    new plrIP[16];
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    dini_Set(Spielerdatei,"IP",plrIP);
    return 1;
    }


    und dann benötige ich noch das von dir, wo es definiert wird, so in der art:


    enum Sinfo
    {
    Passwort[256],
    Geld,
    Score,
    Admin,
    Geschlecht,
    Alter,
    Wanteds,
    Skin,
    Team,
    Spawn,
    IP[128]
    }
    new Spieler[MAX_PLAYERS][Sinfo];


    Dann kann ich es einbauen

  • also in meiner ini wird momentahn nur passwort skin und geld gespeichert cih geb dir die sachen mal


    enum spieler_daten{geld,skin,eingeloggt}


    das zum 1.
    new pname[MAX_PLAYERS],accFormat[128];GetPlayerName(playerid,pname,sizeof pname);format(accFormat,sizeof accFormat,"%s.datei",pname);if(fexist(accFormat)){ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");}else{ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");}


    das hab cih bei player connect
    new pname[MAX_PLAYERS],accFormat[128];Spieler[playerid][geld] = GetPlayerMoney(playerid);Spieler[playerid][skin] = GetPlayerSkin(playerid);GetPlayerName(playerid,pname,sizeof pname);format(accFormat,sizeof accFormat,"%s.datei",pname);if(fexist(accFormat) && Spieler[playerid][eingeloggt]){dini_IntSet(accFormat,"geld",Spieler[playerid][geld]);dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);}Spieler[playerid][eingeloggt] = 0;Spieler[playerid][geld] = 0;Spieler[playerid][skin] = 0;


    das bei disconnect
    new pname[MAX_PLAYERS],accFormat[128];GetPlayerName(playerid,pname,sizeof pname);format(accFormat,sizeof accFormat,"%s.datei",pname);SetPlayerSkin(playerid,spielerskin);SetPlayerMoney(playerid,spielergeld);


    das bei onplayerspawn
    new pname[MAX_PLAYERS],accFormat[128];GetPlayerName(playerid,pname,sizeof pname);format(accFormat,sizeof accFormat,"%s.datei",pname);if(response){switch(dialogid) // dialogid auswählen{case DIALOG_LOGIN: // ID Login{ if(!strlen(inputtext)){ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");}if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden{Spieler[playerid][geld] = dini_Int(accFormat,"geld");Spieler[playerid][skin] = dini_Int(accFormat,"skin");Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggtspielergeld = Spieler[playerid][geld];spielerskin = Spieler[playerid][skin];SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.Drücke in der ClassSelection einfach auf spawn dein Skin wird automatisch geladen");}else{ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");}}case DIALOG_REG: // ID Registrieren{if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts{ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter"); return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");}dini_Create(accFormat);dini_Set(accFormat,"Passwort",inputtext); Spieler[playerid][eingeloggt] = 1; SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");}}}else{switch(dialogid){case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");}}return 1;}


    und dan nurnoch die dialoge mehr net das system geht super
    das war mal ein tut iwo hier im forum such dir raus was du brauchst


    danke


    /edit und schonwieder spinnt der pwn code

    Einmal editiert, zuletzt von carlos1710 ()

  • oke ich tu was ich kan damit der pwn code es akzeptirt
    also ich hab kein playerupdate bei mir speichert es wen der spieler den server verlässt einmal so



    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    Spieler[playerid][geld] = GetPlayerMoney(playerid);
    Spieler[playerid][skin] = GetPlayerSkin(playerid);
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"geld",Spieler[playerid][geld]);
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][geld] = 0;
    Spieler[playerid][skin] = 0;
    return 1;
    }
    enum spieler_daten
    {
    geld,
    skin,
    eingeloggt
    }
    also das enum ist selbstverständlich unter den defines
    und mein enum
    udn wieder spinnt er ich machs nun ohne
    //edit:ist es das was du brauchst ode rmeinst du was anderes???

    Einmal editiert, zuletzt von carlos1710 ()