Spawnchange geht nicht

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
  • spawnchange Befehl geht nicht (ändert sich nicht in der Datenbank)
    und wenn ich spawnchange schreibe spawne ich immer noch im noobspawn kann mir wer bitte bitte helfen


    OnPlayerSpawn:



    public OnPlayerSpawn(playerid)
    {
    if(!isPlayerInFrakt(playerid, 0)){
    if(sInfo[playerid][spawnchange]==1)
    {
    new fID;
    fID = sInfo[playerid][fraktion];
    SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
    SetPlayerInterior(playerid, fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
    SetPlayerColor(playerid, fInfo[fID][f_color]);
    }
    }
    return 1;
    }

  • Schick mal /spawnchange bitte.




    ocmd:spawnchange(playerid, params[])
    {
    if(isPlayerInFrakt(playerid, 0))return SendClientMessage(playerid,COLOR_WHITE,"Du bist in keiner Fraktion.");
    if(sInfo[playerid][spawnchange]==0)
    {
    sInfo[playerid][spawnchange]=1;
    }
    if(sInfo[playerid][spawnchange]==1)
    {
    sInfo[playerid][spawnchange]=0;
    }
    SendClientMessage(playerid,COLOR_RED,"ACHTUNG: Du hast dein Spawn geändert du Spawnst ab jetzt an deiner Fraktion Basis.");
    return 1;
    }

  • Ist das in einem Filterscript? Wenn ja, was hast du im Gamemode unter OnPlayerSpawn stehen?
    Wenn nein, was steht sonst noch unter OnPlayerSpawn? Poste mal alles dazu.



    isPlayerInFrakt(playerid, f_id){
    if(sInfo[playerid][fraktion]==f_id)return 1;
    return 0;
    }


    public OnPlayerSpawn(playerid)
    {
    if(!isPlayerInFrakt(playerid, 0)){
    if(sInfo[playerid][spawnchange]==1)
    {
    new fID;
    fID = sInfo[playerid][fraktion];
    SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
    SetPlayerInterior(playerid, fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
    SetPlayerColor(playerid, fInfo[fID][f_color]);
    }
    }
    return 1;
    }

  • Ich glaube Jeffry: meint die Koordinaten wo die Spieler Spawnen.


    BSP:


    if(PlayerInfo[playerid][pMember] == 1)// LSPD Member Spawn
    {
    SetPlayerPos(playerid,X.Y.Z);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }

  • 1. Sicher dass du in der Fraktion 1 - LSPD bist?


    2. Was steht aktuell in der Datenbank bei spawnchange? Wenn 0, setze es auf 1 und guck dann ob du in deiner Sitzung richtig spawnst und ob nach der Sitzung bei spawnchange noch 1 steht.


    3. Such mal nach " [spawnchange] " und guck ob du es irgendwo falsch/ungewollt setzt oder ausliest.

  • 1. Sicher dass du in der Fraktion 1 - LSPD bist?


    2. Was steht aktuell in der Datenbank bei spawnchange? Wenn 0, setze es auf 1 und guck dann ob du in deiner Sitzung richtig spawnst und ob nach der Sitzung bei spawnchange noch 1 steht.


    3. Such mal nach " [spawnchange] " und guck ob du es irgendwo falsch/ungewollt setzt oder ausliest.



    1 . Ja sicher das ich in der Fraktion 1 LSPD bin da es auch in der Datenbank ändert
    2 . Nichts Wenn ich mehrmals /spawnchange eingebe ändert das sich nich Ingame sowie in der Datenbank.
    3 . Nein

  • Das ist zwar unwarscheinlich, aber warscheinlich geht /spawnchange nicht.
    Probier mal:
    ocmd:spawnchange(playerid, params[])
    {
    if(isPlayerInFrakt(playerid, 0))return SendClientMessage(playerid,COLOR_WHITE,"Du bist in keiner Fraktion.");
    if(sInfo[playerid][spawnchange]==0)
    {
    sInfo[playerid][spawnchange]=1;
    print("Spawnchange auf 1");
    }
    if(sInfo[playerid][spawnchange]==1)
    {
    sInfo[playerid][spawnchange]=0;
    print("Spawnchange auf 0");
    }
    SendClientMessage(playerid,COLOR_RED,"ACHTUNG: Du hast dein Spawn geändert du Spawnst ab jetzt an deiner Fraktion Basis.");
    print("/spawnchange");
    return 1;
    }
    Und sag dann hinterher was da in der Konsole steht.


    Schick auch mal bitte wo du überall sInfo[playerid][spawnchange] nutzt. Also Spielerdatei laden, Spielerdatei speichern usw.


  • Klappt leider nicht und beim Server Konsole steht Spawnchange auf 1 aber es ändert sich nicht in der Datenbank!


    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);



    public OnPlayerSpawn(playerid)
    {
    if(!isPlayerInFrakt(playerid, 0)){
    if(sInfo[playerid][spawnchange]==1)
    {
    new fID;
    fID = sInfo[playerid][fraktion];
    SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid, fInfo[fID][f_r]);
    SetPlayerInterior(playerid, fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
    SetPlayerColor(playerid, fInfo[fID][f_color]);
    }
    }
    return 1;
    }



    sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);

  • Schick mal das Enum, was du in sInfo[playerid][spawnchange] nutzt. Also wo level, spawnchange usw. drinne ist.


    Ich kenne mich mit MySql nicht aus, aber probiere mal bei ausgeschaltetem Server spawnchange mit den Wert 1 zu erstellen und dann zu joinen. Guck mal ob es dann geht oder spawnchange aus der Datenbank wieder verschwindet.

  • Schick mal das Enum, was du in sInfo[playerid][spawnchange] nutzt. Also wo level, spawnchange usw. drinne ist.


    Ich kenne mich mit MySql nicht aus, aber probiere mal bei ausgeschaltetem Server spawnchange mit den Wert 1 zu erstellen und dann zu joinen. Guck mal ob es dann geht oder spawnchange aus der Datenbank wieder verschwindet.



    //enums
    enum playerInfo{
    eingeloggt,
    level,
    db_id,
    alevel,
    fraktion,
    rang,
    spawnchange
    }

  • Ok, ich weiß nicht woran es liegt. Probier mal das was ich oben gesagt habe oder mach dir mal einen neuen Account auf dem Server. Wenn das nicht geht, weiß ich selber nicht mehr weiter.



    Habn Lösung gefunden undzwar:


    ocmd:spawnchange(playerid, params[])
    {
    if(isPlayerInFrakt(playerid, 0))return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner Fraktion");
    if(sInfo[playerid][spawnchange]== 0)
    {
    sInfo[playerid][spawnchange]= 1;
    SendClientMessage(playerid, COLOR_RED, "Du Spawnst absofort am Fraktions-Spawn");
    }
    else if(sInfo[playerid][spawnchange]== 1)
    {
    sInfo[playerid][spawnchange] = 0;
    SendClientMessage(playerid, COLOR_RED, "Du Spawnst absofort am Zivilisten-Spawn");
    }
    return 1;
    }