[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
  • new index = 15;
    new indexStr[index];


    Folgendes könntest du tun:


    //Das hier:
    #define idx 5


    //oder auch
    const idx = 5;


    //und dann verwenden:
    new test[idx];


    Die werte müssen halt konstant/statisch sein ;)


    //Edit: Oder du nutzt dieses Plugin: http://gta-sa-mp.de/forum/3-sa…393-memory-access-plugin/


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Was ist hier dran Falsch?? :huh:


    ocmd:supcar(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,AdmCmd,"AdmCmd: Sie besitzen nicht die nötigen Rechte um diesen Befehl zu nutzen!");
    {
    if(SupportVeh[playerid] == 1) return SendClientMessage(playerid,WACMD,"Du hast bereits ein Supporter Fahrzeug erstellt! Lösche es bevor du dir ein neues erstellen möchtest.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    SupportCar[playerid] = CreateVehicle(560,X,Y,Z,3,165,165,-1);
    PutPlayerInVehicle(playerid, SupportCar[playerid], 0);
    SupportVeh[playerid] = 1; <---------- Zeile 720
    SupportVeh[playerid] = Create3DTextLabel("Supporter im Dienst", AdminCar,0.0, 0.0, 0.0, 50.0, 0, 1 ); <---------- Zeile 721
    Attach3DTextLabelToVehicle(SupportVeh[playerid],SupportCar,0.0,0.0,1.0);
    return 1;
    }
    }


    C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(720) : warning 213: tag mismatch
    C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : warning 213: tag mismatch
    C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    1 Error.



    //Edit : Zeilen Markiert, Slash Zitiert


    @Slash™:

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

    – Noël Coward

    4 Mal editiert, zuletzt von Eddy ()

  • kannst du bitte die zeilen mal kommentieren wo der fehler ist?
    Aso wenn du bei der adminabfrage die Message returnst, brauchst danach keine klammern :)


    /e Eddy:
    Warum setzt du die variable auf eins wenn sie dann eh überschrieben wird?
    Der Warning kommt weil du sie nicht richtig deklariert.
    So söllte es funktionieren.

    new Text3D:SupportVeh[MAX_PLAYERS];

  • Slash™: Habe es mal ein wenig überarbeitet, aber kommen immer noch Warnings!!


    ocmd:supcar(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,AdmCmd,"AdmCmd: Sie besitzen nicht die nötigen Rechte um diesen Befehl zu nutzen!");
    if(SupportVeh[playerid] == 1) return SendClientMessage(playerid,WACMD,"Du hast bereits ein Supporter Fahrzeug erstellt! Lösche es bevor du dir ein neues erstellen möchtest.");
    new Float:X, Float:Y, Float:Z;
    new Text3D:Support3DText[MAX_PLAYERS];
    SetVehicleNumberPlate(SupportCar,"Support"); -------- 716
    GetPlayerPos(playerid,X,Y,Z);
    SupportCar[playerid] = CreateVehicle(560,X,Y,Z,3,165,165,-1);
    PutPlayerInVehicle(playerid, SupportCar[playerid], 0);
    Support3DText[playerid] = Create3DTextLabel("Supporter im Dienst", AdminCar,0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle(Support3DText[playerid],SupportVeh,0.0,0.0,1.0); --------- 721
    SendClientMessage(playerid,Hellgelb,"Du hast ein Supporter Fahrzeug erstellt! Benutze /delscar um das Fahrzeug zu Entfernen.");
    return 1;
    }


    C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(716) : error 035: argument type mismatch (argument 1)
    C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    //Edit


    Hat sich erledigt, hab die Fehler behoben. Hatte die [playerid] hinter SupportCar und SupportVeh vergessen.

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

    – Noël Coward

  • Wie wäre es, wenn du deine Errors + den Code dazu mal hier postest? Dann können wir dir hier helfen.


    Hab das meiste jetzt gelöst:D


    nur noch der Error :
    C:\Dokumente und Einstellungen\Cedric\Eigene Dateien\Dropbox\samp03x_svr_R2_win32\gamemodes\reallife.pwn(652) : warning 209: function "ocmdOnPlayerCommandText" should return a value


    CODE

    Spoiler anzeigen
    //BSN-TP----------------------------------------------------------------------------------------------------
    if (strcmp("/gotobsn", cmdtext, true, 10) == 0)
    {
    if(isPlayerAnAdmin(playerid,3))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else if(isPlayerAnAdmin(playerid,4))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else if(isPlayerAnAdmin(playerid,5))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    return 1;
    }
    }
    }
    //-----------------------------------------------OCMD Befehle------------------------------------------------
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
    SetPVarInt(pID,"Fraktion",fID);
    SendClientMessage(playerid,BLAU,"Erfolgreich.");
    return 1;
    }

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • if (strcmp("/gotobsn", cmdtext, true, 10) == 0)
    {
    if(isPlayerAnAdmin(playerid,3))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else if(isPlayerAnAdmin(playerid,4))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else if(isPlayerAnAdmin(playerid,5))
    {
    SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
    SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    return 1;
    }
    }
    return 0; //Das hier fehlte...
    }
    //-----------------------------------------------OCMD Befehle------------------------------------------------
    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
    new pID,fID;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
    SetPVarInt(pID,"Fraktion",fID);
    SendClientMessage(playerid,BLAU,"Erfolgreich.");
    return 1;
    }



  • DANKE >3 (Ich stell mich in die ecke dafür das ich das nicht gesehen habe)

    Regelmäßiger Stuhlgang im Leben des Menschen ist das A&A

  • Servus,
    hab mal ne Frage und zwar möchte ich Random Namen machen, sprich man gibt einen Befehl ein und erhält den Namen: BLUME_2323 ((Beispiel))
    Die Zahlen sollen Random sein, doch wie mache ich das?
    Kann etwas passieren, wenn ein Spieler einen Random Namen bekommt, den schon jemanden hat? Oder erkennt das Script das automatisch?

  • Ich habe mal eine Frage die mich gerade beschäftigt. Wann returne ich auf 0 und wann auf 1 bzw. wann ist ein Return überhaupt nötig?

    Dieser Beitrag wurde bereits 763 mal editiert, zuletzt von »Anker.« (Vor einem Moment)


    "eingetragende Stand -Ins"


  • @[4_M]XeNo:


    Beispielsweise wenn du eine Adminabfrage machst.



    if(IsPlayerAnAdmin(playerid, rang))
    {
    if(SpielerInfo[playerid][pAdmin] >= rang)return 1; // wenn des spielers admin rang größer oder gleich dem rang ist, wird dem befehl zmb. gesagt, dass es 1 (true in diesem fall) ist, also kann der Befehl weiter ablaufen.
    else return 0; // Wenn dem nicht so ist, wird der Befehl zmb. direkt abgebrochen. man kann return auch für andere Dinge verwenden um einfache Zahlen oder sonstiges weiterzugeben.
    }

  • Ich habe noch eine Frage. Ich bin gerade dabei mich in die Praxis von MySql einzuarbeiten, wobei ich mich etwas frage. Ich einem Tutorial wird dieser Stock benutzt
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {


    new query[250],str[500];
    format(query,sizeof(query),"SELECT * FROM `accounts` WHERE `Name` = '%s'",pInfo[playerid][sname]);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>{i}s[24]s[128]iif>",pInfo[playerid]);
    mysql_free_result();
    }
    }
    return 1;
    }
    gibt es eine möglichkeit, jede spalte in einen String zu packen? Also dann ohne sscanf aber mit einer Querry?

    Dieser Beitrag wurde bereits 763 mal editiert, zuletzt von »Anker.« (Vor einem Moment)


    "eingetragende Stand -Ins"


  • gibt es eine möglichkeit, jede spalte in einen String zu packen? Also dann ohne sscanf aber mit einer Querry?


    Du solltest dir das einmal angucken:
    http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_int
    http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_float
    http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_row_format
    http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_field
    ....


    von: http://wiki.sa-mp.com/wiki/MySQL (Sofern du mit R5 arbeitest)


    L.G.

  • Wieso zeigt er mir diesen Fehler?


    Zeile (470) : Unbekannte Variable : "Log"


    public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
    {
    new string[900];
    format(string,sizeof(string),"Errorid=%i,Error=%s,Query=%s",errorid,error,query);
    Log("mysql",string); <------ 470
    if(errorid == 1054) CreateTables();
    return 1;
    }

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

    – Noël Coward

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