[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
  • Jeffry:


    Ich hatte das ganze wegen den Errors rausgemacht, und nun erstmal nur den Teleport beim PickUP reingemacht (Ein Schritt zurück) aber es funktioniert leider nicht mehr, hatte es beim 1.mal hinbekommen.


    Erhalte keine Errors etc, mein Code sieht so aus:


    public OnGameModeInit()
    {


    {
    CreatePickup(1273, 1, 1911.2902,-2505.4646,13.5391, -1);
    }



    MAPS ETC...



    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == 1273)
    {
    SetPlayerPos(playerid,1856.6919,-2447.9382,51.0390);
    }
    }



    Er teleportiert sich einfach nicht..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Unter die Includes:
    new meinPuckup;


    public OnGameModeInit()
    {
    meinPickup = CreatePickup(1273, 1, 1911.2902,-2505.4646,13.5391, -1);


    Und das hier dann so:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == meinPickup)
    {
    SetPlayerPos(playerid,1856.6919,-2447.9382,51.0390);
    return 1;
    }
    return 1;
    }

  • Jeffry:


    Klappt, wieder zu Schritt 2:



    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == meinPickup) //1911.7549,-2502.7502,13.5391
    {
    SetPlayerPos(playerid,1856.6919,-2447.9382,51.0390);
    forward CheckPos();
    public CheckPos()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5.0,1911.7549,-2502.7502,13.5391))
    {
    SetPlayerPos(playerid,1856.6919,-2447.9382,51.0390);
    }
    }
    return 1;
    }



    So sieht das aktuell aus




    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1057) : error 029: invalid expression, assumed zero
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1057) : error 017: undefined symbol "CheckPos"
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1058) : error 029: invalid expression, assumed zero
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1058) : error 017: undefined symbol "CheckPos"
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1059) : warning 217: loose indentation
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(1071) : warning 209: function "OnPlayerPickUpPickup" should return a value
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Mach das mal wieder weg, dann wie ich gesagt habe:


    OnGameModeInit:
    SetTimer("CheckPos", 200, true);


    Unten im Code (gaaaanz unten, in die allerletze Zeile der Datei):
    forward CheckPos();
    public CheckPos()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 5.0,1911.7549,-2502.7502,13.5391))
    {
    SetPlayerPos(i,1856.6919,-2447.9382,51.0390);
    }
    }
    return 1;
    }

  • Wie funktioniert dieses Log System(Speicherort):


    format(string,sizeof(string),"%s(%d) hat sich soebend mit der IP [%s] eingeloggt.", sendername, playerid, PlayerInfo[playerid][pUserIP]);
    EnterToLog("ip",string);


    stock EnterToLog(const log[], const logtext[]){
    #pragma unused log
    #pragma unused logtext
    return true;
    }


  • Funktioniert so nicht.
    Versuchs mal damit:



    stock EnterToLog(const log[], const logtext[])
    {
    new filestring[512];
    format(filestring, sizeof filestring, "logs/%s.txt", funktion);
    new File:file = fopen(filestring, io_append);
    fwrite(file, logtext);
    fclose(file);
    return 1;
    }

    Mit freundlichem Gruß
    Weper

  • Dann bist du wahrscheinlich nicht an der Position.
    Füge es mal so ein, und poste dann was im Log steht:
    forward CheckPos();
    public CheckPos()
    {
    printf("CheckPos aufgerufen");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i)) printf("connected: %d / range: %d", IsPlayerInRangeOfPoint(i, 5.0,1911.7549,-2502.7502,13.5391));
    if(IsPlayerInRangeOfPoint(i, 5.0,1911.7549,-2502.7502,13.5391))
    {
    printf("SetPos!");
    SetPlayerPos(i,1856.6919,-2447.9382,51.0390);
    }
    }
    return 1;
    }

  • Hat jemand ein beispiel wie man am besten abfragen kann ob der "Inteilhaber, inteilhaber beim besitzer des Business ist".
    Weil ich möchte nicht das jeder Business besitzer jeden Business Inteilhaber kündigen kann.
    Irgendwie in der art so ein bsp.


    //EDIT: Ist gerade sehr verwirrend.
    /* is cobesitzer inteilhaber bei besitzer */
    if(cobesitzer == bsInfo[i][b_cobesitzer] != playerid == bsInfo[i][b_besitzer])return 1;

    Einmal editiert, zuletzt von Pascal. ()

  • Jeffry: Du möchtest meine Server Log?


    Ich kriege wieder keine Errors, aber funktioniert immer noch nicht :/


    Habe ich die Koordinaten richtig entnommen?


    AddPlayerClass(30,1856.6919,-2447.9382,51.0390,268.2259,0,0,0,0,0,0); // 1
    AddPlayerClass(30,1911.7549,-2502.7502,13.5391,177.0920,0,0,0,0,0,0); // 2


    Mit freundlichen Grüßen
    JustMe.77 8)

  • stock EnterToLog(const log[], const logtext[])
    {
    new filestring[512];
    format(filestring, sizeof filestring, "logs/%s.txt", log);
    new File:file = fopen(filestring, io_append);
    fwrite(file, logtext);
    fclose(file);
    return 1;
    }


    Server Crased wegen dem System


  • Mach das so ;)



    stock Log(log[],text[])
    {
    new string[1000],File:hFile;
    if(fexist(log))
    {
    hFile = fopen(log,io_append);
    }
    else hFile = fopen(log,io_write);
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    format(string,sizeof(string),"%02d/%02d/%04d-%02d:%02d:%02d | %s\r\n",tag,monat,jahr,stunde,minute,sekunde,text);
    fwrite(hFile,string);
    fclose(hFile);
    return 1;
    }


    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

    • Offizieller Beitrag

    Hallo zusammen!
    Ich habe folgendes Problem: Der Query wird lt. mysql_log nicht ausgeführt. Weiß jemand weiter?


    stock AddHouse(Float:x,Float:y,Float:z,interioor,owner[32],preis,level,kasse)
    {
    for(new i=0;i<MAX_HOUSE;i++)
    {
    new query[1256];
    format(query,sizeof(query),"SELECT * FROM `Haus` WHERE `ID` = '%d'",i);
    mysql_query(squery);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
    format(query, sizeof(query), "INSERT INTO `Haus` (ID,PositionX, PositionY, PositionZ, Interior, Besitzer, Preis, Level, Kasse) VALUES ('%d','%f', '%f', '%f', '%d', '%s', '%d', '%d', '%d')",i,x,y,z,interioor,owner,preis,level,kasse);
    mysql_query(query);
    return LoadHouse(i);
    }
    mysql_free_result();
    }
    return 1;
    }


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