[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • habe gerade in meinen MysQl log das gesehn aber weiß nichts damit anzufangen ???


    [17:50:49] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [17:50:52] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [17:51:28] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [17:51:30] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [17:51:32] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [17:51:34] [ERROR] CMySQLQuery::Execute[()] - (error #1054) Unknown column 'id' in 'where clause'
    [18:04:56] [WARNING] CMySQLResult::GetRowDataByName - field not found ("id")
    [18:06:11] [ERROR] "mysql_tquery" - invalid connection handle (ID = 1)
    [18:06:11] [ERROR] "mysql_tquery" - invalid connection handle (ID = 1)
    [18:06:11] [ERROR] "mysql_close" - invalid connection handle (ID = 1)
    [18:06:28] [WARNING] CMySQLResult::GetRowDataByName - field not found ("id")


    #edit was bedeutet unique ? und wie kann ich das ändern ?

  • Also, dein SA-MP Server sagt dir, dass die Spalte "id" fehlt, und die Datenbank sagt dir, dass keine "unique" Spalte vorhanden ist.


    Heißt:
    Füge eine Spalte in deiner Datenbank hinzu, dieser gibst u den Unique Key und nennst sie "id", und setzt den A_I (Auto Increment) Wert.

  • Hey ich wollte das Tut für unseren Server neu schreiben...
    Ich spawne dazu den Player und setze ihn an eine bestimmte Position... allerdings bekommen die Spieler nur das zu sehen:

    An was kann das liegen? Vorher hat alles geklappt und als registrierter Spieler passt auch alles.
    Bin um jeden Tipp dankbar :)

  • Da scheint irgendeine Anweisung zu fehlen. Vergleiche deinen Code mal mit dem von der Registration, ob du da alles hast (TogglePlayerSpectating, SpawnPlayer, SetSpawnInfo, ...).
    Ansonsten poste mal deine beiden Codes, der der geht und der der nicht geht.

  • An der Registrierung selbst habe ich eigentlich nix gemacht also denke nicht das da was schief läuft....
    Hier mal der neue Code:
    new string[956];
    ForEachPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && Spieler[playerid][pViewTutorial] == 0 && ImTutorial[playerid] != 0)
    {
    Spieler[playerid][pTutorialTime]++;
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    if(Spieler[playerid][pTutorialTime] == 1)
    {
    TextDrawHideForPlayer(playerid,BlackScreendraw);
    PlayerTextDrawHide(playerid,PAYDAYdraw[playerid]);
    PlayerTextDrawHide(playerid,HPdraw[playerid]);
    PlayerTextDrawHide(playerid,ARMOURdraw[playerid]);
    TogglePlayerControllable(playerid,0);
    SetPlayerSkin(playerid,2);
    SetPlayerPosEx(playerid,1258.3341,-921.0840,-10.8426);
    SetPlayerInterior(playerid,0);
    StopAudioStreamForPlayer(playerid);
    LoopingAnim(playerid,"ped","SEAT_idle",4.0,1,0,0,0,0);
    PlayAudioStreamForPlayer(playerid,"http://www.westside-roleplay.de/diverses/TrainEffect.mp3");// Zugsound
    SpamChat(playerid,0);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid,2020.700683, 2238.962646, 2105.133300);
    SetPlayerCameraLookAt(playerid,2023.432739, 2242.859863, 2103.601074);
    SendClientMessage(playerid,SERVERFARBEHEX,"Schaffner: Meine Damen und Herren in Kürze erreichen wir");
    SendClientMessage(playerid,SERVERFARBEHEX,"den Untergrundbahnhof von Los Santos");
    }


    Und der alte Code


    new string[956];
    ForEachPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && Spieler[playerid][pViewTutorial] == 0 && ImTutorial[playerid] != 0)
    {
    Spieler[playerid][pTutorialTime]++;
    if(Spieler[playerid][pTutorialTime] == 1)
    {
    SpamChat(playerid,0);// 0 = nur für einen spieler wird der chat kontrolliert 100 zeilen voll gespamt,bei 1 = für alle spieler
    TextDrawHideForPlayer(playerid,BlackScreendraw);
    PlayerTextDrawHide(playerid,PAYDAYdraw[playerid]);
    PlayerTextDrawHide(playerid,HPdraw[playerid]);
    PlayerTextDrawHide(playerid,ARMOURdraw[playerid]);
    TogglePlayerControllable(playerid,0);
    SetPlayerSkin(playerid,2);
    SetPlayerPosEx(playerid,1258.3341,-921.0840,-10.8426);
    SetPlayerInterior(playerid,0);
    InterpolateCameraPos(playerid,990.3641,-964.7941,55.8925,1305.7977,-929.0781,46.9017,5000,CAMERA_MOVE);
    InterpolateCameraLookAt(playerid,1056.5557,-956.4869,58.9628,1258.3341,-921.0840,42.8426,5000,CAMERA_MOVE);
    StopAudioStreamForPlayer(playerid);
    PlayerPlaySound(playerid,1097,0.0,0.0,0.0);
    for(new i=0;i<4;i++){ PlayerTextDrawShow(playerid,Tutorialdraw[playerid][i]); }
    PlayerTextDrawSetString(playerid,Tutorialdraw[playerid][1],"Tutorial - Ein Einblick!");
    PlayerTextDrawSetString(playerid,Tutorialdraw[playerid][2],"Herzlich Willkommen auf unserem Server!~n~Das "#SERVERNAME" Admin Team moechte dich~n~recht Herzlich auf unserem Roleplay Server begruessen.~n~Nun folgt eine kleine Einfuehrung in den Server.~n~~n~~r~"#SERVERNAME"");
    }

  • Hallo ich war gerade dabei ein /a chat zu scripten es geht auch soweit wie ich es getestet habe aber jetze habe ich eine Kleine Frage ich will mit arang den Den Rang auslesen aber wie mach ich das ?


    ich will dann z.b
    format(string,sizeof(string),"**%s %s: %s **", arang(playerid),getPlayerName(playerid), string);


    das dann Ingame steht
    Owner Snake: Test
    aber habe bis Her nur
    Snake:Test
    wie kann ich das machen ?
    Supporter Rang 1 = T-Supporter
    Supporter Rang 2 = Supporter
    Admin Rang 1 = Azubie-Admin
    Admin Rang 2 = *2* Admin
    Admin Rang 3 = *3* Admin
    Admin Rang 1337 = H-Admin
    Admin Rang 2000 = Scripter
    Admin Rang 2002 = Owner

  • Du machst dir einen switch über den Rang.


    stock arang(playerid)
    {
    new str[32];
    switch(RANG VARIABLE DES SPIELERS HIER)
    {
    case 1: str = "Rang 1";
    }
    return str;
    }


    Wenn du für die Supporter Ränge eine extra Variable hast, dann mache nach dem switch noch einen switch mit der anderen Variable.

  • stock arang(playerid)
    {
    new str[32];
    switch(alevel)
    {
    case 1: str = "Azubie-Admin";
    case 2: str = "*2* Admin";
    case 3: str = "*3* Admin";
    case 1337: str = "H-Admin";
    case 2000: str = "Scripter";
    case 2002: str = "Owner";
    }
    return str;
    }


    so ?
    und wie mach ich das mit den Supporter Rängen ?
    meine Supporter Variable ist slevel
    Jeffry:

    Einmal editiert, zuletzt von snake112 ()

  • Nein...
    Du speicherst ja auf einer Variable bzw. Array den Wert von dem Adminlevel des Spielers.
    Außerdem spiegelt case den Wert der einzelnen Fälle wieder.
    Das heißt, falls man Adminlevel 1 soll: str = "AzubieAdmin"; passieren.


    Du solltest noch einen "default" Wert einbauen.
    Er trifft zu, falls alle anderen nicht zutreffen.


    L.G. :)

  • Wir nehmen mal an du speicherst auf einer Array (PlayerInfo) mit dem Index pAdminlevel -> Das solltest du noch anpassen.
    arang(playerid)
    {
    new str[32];
    switch(PlayerInfo[playerid][pAdminlevel])
    {
    case 1: str = "Azubie-Admin";
    case 2: str = "*2* Admin";
    case 3: str = "*3* Admin";
    case 1337: str = "H-Admin";
    case 2000: str = "Scripter";
    case 2002: str = "Owner";
    case default: str = "..."; //noch anpassen
    }
    return str;
    }


    Sollte eigentlich nicht so schwer zu begreifen sein.
    Bei weiteren Fragen kannst du dich auch gerne persönlich bei mit melden. (TS)


    L.G.


  • So habe ich das doch oben gemacht
    und wie füge ich jetze noch ein slevel 1 = T-Supporter und slevel 2 = Supporter ?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen