[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
  • Wenn ich das so mache sagt der mir ich hätte einen Tag Fehler.


    Echt so schwer meinen Beitrag zu lesen und zu kopieren? :o


    Habe doch folgendes geschrieben:


    new PlayerBar:Tank;


    PS: Schreib es so wie ich und lösche BAR_DIRECTION_RIGHT aus deinem Code! Das ist der Default Wert..aber an der falschen Position bei dir :whistling:


    mfg. :rolleyes:

    ast2ufdyxkb1.png


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

  • wie frage ich ab ob irgend ein Spieler in einem Auto sitzt


    Nutze:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vehicleid) return 1;
    return 0;
    }


    Und dann:
    if(IsAnyPlayerInVehicle(vehicleid)) //Ein Spieler ist in der vehicleid



    Und wenn du abfragen willst, ob im ganzen Server niemand in irgendeinem Fahrzeug ist:
    stock IsAnyPlayerInAnyVehicle()
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) != 0) return 1;
    return 0;
    }


    if(IsAnyPlayerInAnyVehicle()) //Mindestens ein Spieler ist in einem Fahrzeug

  • Fehler? :wacko:


    stock CreateTables()
    {
    new query[1500];
    strcat(query,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pGeburtsdatum` varchar(20), `pGeschlecht` int(2), `pAdminlevel` int(10), `pFraktion` int(11), `pFrakLeader` int(11),");
    strcat(query,"`pFrakRang` int(11), `pFrakSkin` int(11), `pFrakDuty` int(11), `pBanned` int(12), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(60), `pRegDatum` varchar(60), `pWarns` int(3), `pLeben` float(10), PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;","","");
    strcat(query,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))",false,"","");
    strcat(query,"CREATE TABLE IF NOT EXISTS `FraktionsVerwaltung` (`ID` int(11) NOT NULL AUTO_INCREMENT, `Leader` varchar(24), `Members` int(11), `Kasse` int(11), `Skins` int(11), `Gehalt` int(11), `FrakLimit` int(11), PRIMARY KEY (`ID`))",false,"","");
    mysql_function_query(DBHandle,query,false,"","");
    strdel(query,0,sizeof(query));
    return 1;
    }


    Selfmade.p(836) : error 035: argument type mismatch (argument 3)
    Selfmade.p(837) : warning 202: number of arguments does not match definition
    Selfmade.p(837) : warning 202: number of arguments does not match definition
    Selfmade.p(838) : warning 202: number of arguments does not match definition
    Selfmade.p(838) : warning 202: number of arguments does not match definition

    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
  • Das Zeug ganz hinten an den strcat's ist falsch.
    stock CreateTables()
    {
    new query[1500];
    strcat(query,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pGeburtsdatum` varchar(20), `pGeschlecht` int(2), `pAdminlevel` int(10), `pFraktion` int(11), `pFrakLeader` int(11),");
    strcat(query,"`pFrakRang` int(11), `pFrakSkin` int(11), `pFrakDuty` int(11), `pBanned` int(12), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(60), `pRegDatum` varchar(60), `pWarns` int(3), `pLeben` float(10), PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
    strcat(query,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))");
    strcat(query,"CREATE TABLE IF NOT EXISTS `FraktionsVerwaltung` (`ID` int(11) NOT NULL AUTO_INCREMENT, `Leader` varchar(24), `Members` int(11), `Kasse` int(11), `Skins` int(11), `Gehalt` int(11), `FrakLimit` int(11), PRIMARY KEY (`ID`))");
    mysql_function_query(DBHandle,query,false,"","");
    strdel(query,0,sizeof(query));
    return 1;
    }

  • Jeffry: Jetzt startet er en Server nicht :D



    Spoiler anzeigen
    [18:58:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [18:58:51] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [18:58:51] [DEBUG] CMySQLConnection::Connect - connection was successful
    [18:58:51] [DEBUG] CMySQLConnection::Connect - connection was successful
    [18:58:51] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [18:58:51] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [18:58:51] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [18:58:51] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `Banned` (`PP` varchar(16) NOT NULL, `Name` varchar(2' at line 1
    [18:58:51] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
    [18:58:51] [DEBUG] Calling callback "OnQueryError"..

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

    – Noël Coward

  • IP kann kein Primary Key ohne Auto Increment sein. Nimm den Primary Key am Ende raus oder füg ne ID Spalte hinzu, mit AI + PK


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Du musst einzelnt ein query ausführen , da das Plugin mit mehreren Befehlen nicht zurechtkommt.


    stock CreateTables()
    {
    new query[1500];
    strcat(query,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pGeburtsdatum` varchar(20), `pGeschlecht` int(2), `pAdminlevel` int(10), `pFraktion` int(11), `pFrakLeader` int(11),");
    strcat(query,"`pFrakRang` int(11), `pFrakSkin` int(11), `pFrakDuty` int(11), `pBanned` int(12), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(60), `pRegDatum` varchar(60), `pWarns` int(3), `pLeben` float(10), PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
    mysql_function_query(DBHandle,query,false,"","");
    mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))",false,"","");
    mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `FraktionsVerwaltung` (`ID` int(11) NOT NULL AUTO_INCREMENT, `Leader` varchar(24), `Members` int(11), `Kasse` int(11), `Skins` int(11), `Gehalt` int(11), `FrakLimit` int(11), PRIMARY KEY (`ID`))",false,"","");
    return 1;
    }


    den string musst du mit strdel nicht leeren, da bei lokalen variablen sich der Speicher dynamisch genommen und wieder freigegeben wird.


    //edit


    Nebensächlich jedoch anzumerken ist das du mit ; dafür sorgst das ein SQL Befehl damit abgeschlossen ist das ist nach , PRIMARY KEY (`IP`)) nicht der Fall, sowas wird meist auch noch als Syntaxfehler erkannt.

  • SetVehicleToRespawn(vehicleid);
    Die if-Abfrage kannst du dir ja selbst bauen, und mit der oben genannten Funktion respawnen.

  • Mein ADuty Befehl bugt ein wenig... Wenn ich aus dem Dienst gehe sterbe ich?


    ocmd:aduty(playerid,params[])
    {
    new Float:Leben, Float:Ruestung, str[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, LOGINERROR);
    if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, ADMERROR);
    GetPlayerArmour(playerid,Ruestung);
    GetPlayerHealth(playerid,Leben);
    switch(GetPVarInt(playerid, "ADUTY"))
    {
    case 0:
    {
    SetPlayerHealth(playerid, FLOAT_INFINITY);
    SetPlayerArmour(playerid, 100);
    format(str,sizeof(str), "%s hat den Admindienst betreten.", SpielerName(playerid));
    SendClientMessageToAll(ADMIN, str);
    SetPVarInt(playerid, "ADUTY", 1);
    }
    case 1:
    {
    SetPlayerArmour(playerid,Ruestung);
    SetPlayerHealth(playerid,Leben);
    format(str,sizeof(str), "%s hat den Admindienst verlassen.", SpielerName(playerid));
    SetPVarInt(playerid, "ADUTY", 0);
    }
    }
    return 1;
    }


    Ich habs auch auch so probiert:


    ocmd:aduty(playerid,params[])
    {
    new Float:Leben, Float:Ruestung, str[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, LOGINERROR);
    if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, ADMERROR);
    switch(GetPVarInt(playerid, "ADUTY"))
    {
    case 0:
    {
    GetPlayerArmour(playerid,Ruestung);
    GetPlayerHealth(playerid,Leben);
    SetPlayerHealth(playerid, FLOAT_INFINITY);
    SetPlayerArmour(playerid, 100);
    format(str,sizeof(str), "%s hat den Admindienst betreten.", SpielerName(playerid));
    SendClientMessageToAll(ADMIN, str);
    SetPVarInt(playerid, "ADUTY", 1);
    }
    case 1:
    {
    SetPlayerArmour(playerid,Ruestung);
    SetPlayerHealth(playerid,Leben);
    format(str,sizeof(str), "%s hat den Admindienst verlassen.", SpielerName(playerid));
    SetPVarInt(playerid, "ADUTY", 0);
    }
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

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