Dini bestimmen Namen Laden + paar Fragen^^

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
  • Hallo Breadfishcom.
    Da ich grad ein kleines CTF Script am schreiben bin und auch recht aktiv dran sitze hab ich nun ein paar kleine Fehler im Command um die Base zu starten^^


    1. Ich glaube die Varible (also die BaseID) wird nicht geladen
    2. Nur ID 0 Spawnt und das am 0-Punkt (also auf der Farm)
    3. Ist es möglich bei einem attachedobject die Materials zu ändern?
    4. Wie speicher ich die Punkte (Habs in der Basedata^^)


    Hier der Code (Bitte wenn ihr den Fehler sehr nicht nur einfach posten ich würd gern wissen was er war ums fürs nächste mal zu lernen:):


    CMD:startbase(playerid, params[])
    {
    new mID[8];


    if(sscanf(params,"d",mID))return SendClientMessage(playerid, 0xFFFFFFFF,"{FFFFFF}Usage:{740000} /startbase [BaseID]");


    if(SpielerInfo[playerid][Adminlevel] >= 1 || IsPlayerAdmin(playerid))
    {
    format(mID,sizeof(mID),"/Warfield/Bases/%d.txt",mID);

    for (new i = 0; i != MAX_PLAYERS; ++i)
    {

    //Red Flag
    new Float: RFX, Float: RFY, Float: RFZ;
    RFX = dini_Float("/Warfield/Bases/%d.txt", "RedFlagXSpawn");
    RFY = dini_Float("/Warfield/Bases/%d.txt", "RedFlagYSpawn");
    RFZ = dini_Float("/Warfield/Bases/%d.txt", "RedFlagZSpawn");

    CreateObject(2993, RFX, RFY, RFZ, 0.0, 0.0, 10000.0); // DarkFlag
    SetPlayerMapIcon( i, 12, RFX, RFY, RFZ, 19, 0, MAPICON_GLOBAL );



    //Blue Flag
    new Float: BFX, Float: BFY, Float: BFZ;
    BFX = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagXSpawn");
    BFY = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagYSpawn");
    BFZ = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagZSpawn");

    CreateObject(2993, BFX, BFY, BFZ, 0.0, 0.0, 10000.0); // DarkFlag
    SetPlayerMapIcon( i, 12, BFX, BFY, BFZ, 53, 0, MAPICON_GLOBAL );

    //Interiors
    new iID = dini_Int("/Warfield/Bases/%d.txt", "IntID");

    SetPlayerInterior(i, iID);

    if (GetPlayerSkin(i) == 58)
    {
    SetPlayerTeam(i,1);

    new Float: RSX, Float: RSY, Float: RSZ;
    RSX = dini_Float("/Warfield/Bases/%d.txt", "RedXSpawn");
    RSY = dini_Float("/Warfield/Bases/%d.txt", "RedYSpawn");
    RSZ = dini_Float("/Warfield/Bases/%d.txt", "RedZSpawn");
    SetPlayerPos(i, RSX, RSY, RSZ);
    return 1;
    }
    if (GetPlayerSkin(i) == 210)
    {
    SetPlayerTeam(i,2);

    new Float: BSX, Float: BSY, Float: BSZ;
    BSX = dini_Float("/Warfield/Bases/%d.txt", "BlueXSpawn");
    BSY = dini_Float("/Warfield/Bases/%d.txt", "BlueYSpawn");
    BSZ = dini_Float("/Warfield/Bases/%d.txt", "BlueZSpawn");
    SetPlayerPos(i, BSX, BSY, BSZ);
    return 1;
    }
    if (GetPlayerSkin(i) == 137)
    {
    SetPlayerTeam(i,3);
    SetPlayerPos(i,1728.1007,-1668.2566,22.6094);
    SetPlayerInterior(i,18);

    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"{FFFFFF}Error: {740000}Your Adminlevel is not high enough!");
    }
    return 1;
    }

  • Oh ok jetzt weiss ich was du mit dem String meinst, ich dachte das wäre nur ID.txt^^


    Und was ändert sich da an der For schleife genau?
    Also nicht wies geschrieben ist sondern den unterschied und wann mans benutzen sollte


    @Edit: spawne immernoch falsch :S


    Kann ich damit auch ne existabfrage machen?
    Ich versuchs so aber es geht nicht, dann seh ich ja ob die base denn überhaupt ausm string geladen wird


    Zitat

    if(dini_Exists(format(mID,sizeof(mID),"/Warfield/Bases/%d.txt",mID)))

  • Machs so ;) :


    pfad[50];
    format(pfad,sizeof(pfad),"/Warfield/Bases/%d.txt",mID); //Hier die "Variable" Datei die nach Base immer anders ist.
    if(dini_Exists(pfad)) //Du fragst ab obs den "Pfad" den du formatiert hast gibt.
    {
    //Falls es die Datei gibt.....
    }
    else
    {
    //Falls nicht
    }


    Du hast auch die Möglichkeit abzufragen ob Alles außer nicht den Pfad exestiert...Also um genau zu sein andersrum....


    if(!dini_Exists(pfad))
    {
    //Falls es die Datei nicht gibt.....
    }
    else
    {
    //Falls es sie gibt.....
    }


    L.G.
    heyho ;)

  • ich habs nun so, spawne aber immernoch am Nullpunkt :S


    CMD:startbase(playerid, params[])
    {
    new pfad[50];


    if(sscanf(params,"d",pfad))return SendClientMessage(playerid, 0xFFFFFFFF,"{FFFFFF}Usage:{740000} /startbase [BaseID]");


    if(SpielerInfo[playerid][Adminlevel] >= 1 || IsPlayerAdmin(playerid))
    {
    format(pfad,sizeof(pfad),"/Warfield/Bases/%d.txt",pfad);
    if(dini_Exists(pfad))
    {



    for (new i=0; i<MAX_PLAYERS; i++)
    {


    //Red Flag
    new Float: RFX, Float: RFY, Float: RFZ;
    RFX = dini_Float("/Warfield/Bases/%d.txt", "RedFlagXSpawn");
    RFY = dini_Float("/Warfield/Bases/%d.txt", "RedFlagYSpawn");
    RFZ = dini_Float("/Warfield/Bases/%d.txt", "RedFlagZSpawn");


    CreateObject(2993, RFX, RFY, RFZ, 0.0, 0.0, 10000.0); // DarkFlag
    SetPlayerMapIcon( i, 12, RFX, RFY, RFZ, 19, 0, MAPICON_GLOBAL );



    //Blue Flag
    new Float: BFX, Float: BFY, Float: BFZ;
    BFX = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagXSpawn");
    BFY = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagYSpawn");
    BFZ = dini_Float("/Warfield/Bases/%d.txt", "BlueFlagZSpawn");


    CreateObject(2993, BFX, BFY, BFZ, 0.0, 0.0, 10000.0); // DarkFlag
    SetPlayerMapIcon( i, 12, BFX, BFY, BFZ, 53, 0, MAPICON_GLOBAL );


    //Interiors
    new iID = dini_Int("/Warfield/Bases/%d.txt", "IntID");


    SetPlayerInterior(i, iID);


    if (GetPlayerSkin(i) == 58)
    {
    SetPlayerTeam(i,1);
    DMArena[playerid] = 0;


    new Float: RSX, Float: RSY, Float: RSZ;
    RSX = dini_Float("/Warfield/Bases/%d.txt", "RedXSpawn");
    RSY = dini_Float("/Warfield/Bases/%d.txt", "RedYSpawn");
    RSZ = dini_Float("/Warfield/Bases/%d.txt", "RedZSpawn");
    SetPlayerPos(i, RSX, RSY, RSZ);
    return 1;
    }
    if (GetPlayerSkin(i) == 210)
    {
    SetPlayerTeam(i,2);
    DMArena[playerid] = 0;


    new Float: BSX, Float: BSY, Float: BSZ;
    BSX = dini_Float("/Warfield/Bases/%d.txt", "BlueXSpawn");
    BSY = dini_Float("/Warfield/Bases/%d.txt", "BlueYSpawn");
    BSZ = dini_Float("/Warfield/Bases/%d.txt", "BlueZSpawn");
    SetPlayerPos(i, BSX, BSY, BSZ);
    return 1;
    }
    if (GetPlayerSkin(i) == 137)
    {
    SetPlayerTeam(i,3);
    DMArena[playerid] = 0;


    SetPlayerPos(i,1728.1007,-1668.2566,22.6094);
    SetPlayerInterior(i,18);


    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"{FFFFFF}Error: {740000}This Base does not exist!!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"{FFFFFF}Error: {740000}Your Adminlevel is not high enough!");
    }
    return 1;
    }