[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
  • Beitrag von Kisa ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Hmm, hat doch geklappt was du vorgeschlagen hast, das mit SetP layerName weiter runter setzen, wieso kann ich mir nicht erklären .


    Noch eine letzte Frage:


    Ich habe einen weiteren Befehl erstellt womit ich den Namen ändern kann von Spielern die nicht online sind. Der funktioniert problemlos, nur benötige ich eine Abfrage ob der Name bereits in Benutzung ist. Das kann ich ja eigentlich mit



    if(mysql_num_rows() == 0)
    {
    }


    machen, aber im Befehl frage ich ja auch ab ob der Name in der Datenbank existiert. Wie kriege ich beides unter einem Hut?



    CMD:setnameoff(playerid, params[])
    {
    new dName[24], dNewname[24], cQuery[144];



    if(pData[playerid][P_Admin] < 6) return
    SendClientMessage(playerid, COLOR_RED, LV_Fail);



    if(sscanf(params,"s[24]s[24]", dName, dNewname)) return
    SendClientMessage(playerid, COLOR_RED, "Use: /setnameoff <name> <newname>");



    if(!(4 < strlen(params[1]) < MAX_PLAYER_NAME)) return
    SendClientMessage(playerid, COLOR_RED, "The name must be min 4 chars and max 23 chars!");



    format(cQuery, sizeof(cQuery), "SELECT * FROM `players` WHERE Name = '%s'", dNewname);
    mysql_query(MySQL, cQuery);
    mysql_store_result();



    format(cQuery, sizeof(cQuery), "SELECT * FROM `players` WHERE Name = '%s'", dName);
    mysql_query(MySQL, cQuery);
    mysql_store_result();



    if(mysql_num_rows() > 0)
    {
    new Update[128];



    format(Update, sizeof(Update), "UPDATE `players` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `achievements` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `achievements` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `interface` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `inventory` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `playerskills` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(Update, sizeof(Update), "UPDATE `unbans` SET Name = '%s' WHERE Name = '%s'", dNewname, dName);
    mysql_query(MySQL, Update);



    format(cQuery, sizeof(cQuery), "You've changed {FF0000}%s's{FFFFFF} Name to {FF0000}%s", dName, dNewname);
    SendClientMessage(playerid, COLOR_RED, cQuery);



    format(cQuery, sizeof(cQuery), "[Namechange] %s have set %s's Name to %s", GetName(playerid), dName, dNewname);
    writeLog("Logs/General.txt", cQuery);
    }



    else
    {
    SendClientMessage(playerid, COLOR_RED, "This name doesn't exists!");
    }



    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Beitrag von DerPixel ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Coding

  • Hi, ich habe ein Problem mit dem Haus System. Immer wenn der Server Restartet steht da Besitzer: Der Staat obwohl man das Haus gekauft hat. Entweder bin ich blind oder ka ^^. Hier der Code:

    if(HouseInfo[Id][hOwnerId] != -1)
    {
    new Name[MAX_PLAYER_NAME];
    format(query,sizeof(query),"SELECT UserName FROM `"AccTable"` WHERE UserId = '%d' LIMIT 1",HouseInfo[Id][hOwnerId]);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_string(Name);
    mysql_free_result();
    format(query,sizeof(query),"%s{FF6633}Besitzer{FFFFFF}: %s\n",GetHouseName(Id),Name);
    if(HouseInfo[Id][hRentable])
    {
    format(query,sizeof(query),"%s{FF6633}Mietbar:{FFFFFF} Ja\n{FF0000}Miete{FFFFFF}: %d\n",query,HouseInfo[Id][hRent]);
    format(query,sizeof(query),"%s{FF6633}/Rent{FFFFFF} zum einmieten ",query,HouseInfo[Id][hRent]);
    }
    format(query,sizeof(query),"%s{FF6633}/Enter{FFFFFF} zum betreten",query,HouseInfo[Id][hRent]);
    HousePickup[Id] = CreatePickup(1239,23,HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ], -1);
    HouseLabel[Id] = Create3DTextLabel(query, COLOR_WHITE, HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ] + 0.2, 20.0, 0, 0);
    }
    else
    {
    format(query,sizeof(query),"%s{FF6633}Besitzer{FFFFFF}: Der Staat\n{FF6633}Preis{FFFFFF}: %d\n{FF6633}Level{FFFFFF}: %d\n{FF6633}/Buyhouse{FFFFFF} zum Kauf",GetHouseName(Id),HouseInfo[Id][hPrice],HouseInfo[Id][hLevel]);
    HousePickup[Id] = CreatePickup(1273,23,HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ], -1);
    HouseLabel[Id] = Create3DTextLabel(query, COLOR_WHITE, HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ] + 0.2, 20.0, 0, 0);
    }


  • HouseUpdate(Id,option[])
    {
    new query[256];
    if(!strcmp(option,"Icon",true))
    {
    if(HousePickup[Id] != -1)
    {
    Delete3DTextLabel(HouseLabel[Id]);
    DestroyPickup(HousePickup[Id]);
    }
    if(HouseInfo[Id][hOwnerId] != -1)
    {
    new Name[MAX_PLAYER_NAME];
    format(query,sizeof(query),"SELECT UserName FROM `"AccTable"` WHERE UserId = '%d' LIMIT 1",HouseInfo[Id][hOwnerId]);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_string(Name);
    mysql_free_result();
    format(query,sizeof(query),"%s{FF6633}Besitzer{FFFFFF}: %s\n",GetHouseName(Id),Name);
    if(HouseInfo[Id][hRentable])
    {
    format(query,sizeof(query),"%s{FF6633}Mietbar:{FFFFFF} Ja\n{FF0000}Miete{FFFFFF}: %d\n",query,HouseInfo[Id][hRent]);
    format(query,sizeof(query),"%s{FF6633}/Rent{FFFFFF} zum einmieten ",query,HouseInfo[Id][hRent]);
    }
    format(query,sizeof(query),"%s{FF6633}/Enter{FFFFFF} zum betreten",query,HouseInfo[Id][hRent]);
    HousePickup[Id] = CreatePickup(1239,1,HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ], -1);
    HouseLabel[Id] = Create3DTextLabel(query, COLOR_WHITE, HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ] + 0.2, 20.0, 0, 0);
    }
    else
    {
    format(query,sizeof(query),"%s{FF6633}Besitzer{FFFFFF}: Der Staat\n{FF6633}Preis{FFFFFF}: %d\n{FF6633}Level{FFFFFF}: %d\n{FF6633}/Buyhouse{FFFFFF} zum Kauf",GetHouseName(Id),HouseInfo[Id][hPrice],HouseInfo[Id][hLevel]);
    HousePickup[Id] = CreatePickup(1273,1,HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ], -1);
    HouseLabel[Id] = Create3DTextLabel(query, COLOR_WHITE, HouseInfo[Id][hEntX], HouseInfo[Id][hEntY], HouseInfo[Id][hEntZ] + 0.2, 20.0, 0, 0);
    }
    }
    }

    Einmal editiert, zuletzt von SlashQ () aus folgendem Grund: Eingerückt

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