Beiträge von Padarom

    Ist die Variable "loggedin" eigentlich boolean?

    Jup - Die ist mit bool:loggedin[MAX_PLAYERS]; definiert worden.
    Den gleichen Fehler habe ich schon seit knapp einem Monat in all meinen Scripts. Ich erstelle Commands, die funktionieren an und für sich ohne Fehler aber wenn ich sie ausführen will kommt weder ihre Funktion noch irgendein Fehler. Das kommt immer bei den "etwas komplexeren" Funktionen vor... Wie zum Beispiel Koordinaten speichern und sie gleichzeitig in MySQL, mit Name und ID versehen, schieben.

    Hallo.
    Ich habe mir ein Statistiksystem erstellt, welches eigentlich - sollte man /stats eingeben - die vorgegebenen Werte wiedergibt. Solange ich nicht eingeloggt bin kommt wie erwünscht die Meldung "Du bist noch nicht eingeloggt", andernfalls kommt aber nicht die Statistik sondern ein Unknown command.
    Hoffentlich findet jemand den Fehler oder das Problem.


    if(strcmp(cmdtext, "/stats", true) == 0)
    {
    if(loggedin[playerid] == false) SendClientMessage(playerid,0xff0000ff,"Du bist noch nicht eingeloggt.");
    else
    {
    new s1[128],s2[128],s3[128],s4[128];
    GetPlayerName(playerid,name,sizeof name);
    format(s1,sizeof s1,"- - - Statistiken von %s - - -", name);
    format(s2,sizeof s2,"- Kills: %d, Tode: %d, K/D: %f -",player[playerid][kill],player[playerid][death],player[playerid][kill]/player[playerid][death]);
    format(s3,sizeof s3,"- Wachenrunden: %d, Gefangenenrunden: %d -",player[playerid][rundew],player[playerid][rundep]);
    format(s4,sizeof s4,"- Runden insgesamt: %d, Spielzeit: %d Minuten -",player[playerid][runden],player[playerid][zeit]);
    SendClientMessage(playerid,CREME,s1);
    SendClientMessage(playerid,CREME,s2);
    SendClientMessage(playerid,CREME,s3);
    SendClientMessage(playerid,CREME,s4);
    SendClientMessage(playerid,CREME,"- - - - - - - - - - - - - - - - -");
    }
    return 1;
    }


    Mit freundlichen Grüßen
    Padarom

    Warum steht das dann bei den anderen Fraktionen nicht?
    Also soweit ich mich entsinnen kann wurde ich bisher immer mit 100HP gespawnt, in GF und allen anderen Servern.
    War ja nur ne Frage, kann ja auch selber mal falsch liegen ;D


    Mit freundlichen Grüßen
    Padarom

    Tutorial ist schön, etwas umständlich erklärt weil du nicht auf die Schnelle die passenden Worte gefunden hast, aber trotzdem für Anfänger oder einfach diejenigen die neue Fraktionen erstellen wollen interessant und hilfreich.
    Aber wofür muss man beim Spawn eines Spielers sein Leben auf 100 setzen? Ich dachte bisher dass man mit 100HP gespawnt wird. ;)


    Mit freundlichen Grüßen
    Padarom

    Das erste was ich jemals genutzt habe um GTA:SA online zu spielen war MTA. Es hat einfach Spaß gemacht mit tollen Renn- und DD/DM Servern.
    Irgendwann bin ich auf SA:MP umgestiegen und habe mich einfach da hineingearbeitet.


    Was die Scriptsprachen angeht bin ich natürlich der Meinung dass PAWN um einiges leichter zu lernen ist, eben weil es eine kleine Sprache ist. Das liegt aber höchstwahrscheinlich eben nur daran, dass ich als ich das erste Mal auf MTA/Lua-Scripting umsteigen wollte die Materie überhaupt nicht verstanden habe. Irgendwann hatte ich dann genug Ehrgeiz um PAWN richtig zu lernen und das tue ich jetzt. Da ich noch kein Profiscripter bin wäre es wahrscheinlich für mich noch nicht zu spät umzusteigen, was ich auch vorhabe, aber eben einfach komplizierter weil die Syntax der beiden Sprachen eine völlig andere ist.


    Darüber hinaus bietet MTA:SA viel mehr Funktionen für den Endanwender. Ein ausgeklügeltes und schönes GUI-System (Nicht so einfach gehalten wie in SA:MP) und komplett selbst definierbares Gameplay. SA:MP hat natürlich auch seine Vorteile, doch sogut wie alles das sich in SA:MP umsetzen lässt funktioniert auch in MTA:SA - Und noch mehr.


    Das war meine Meinung.


    Mit freundlichen Grüßen
    Padarom


    **edit**
    Bei mir lädt die MTA Seite einfach nur ewig und irgendwann kommt Error...

    Mit dem Fahrzeug"render" bin ich nicht so ganz einverstanden. Als Render sehe ich ein sauber ausgeschnittenes Model, das sieht aber aus als wäre es mit Paint ausgeschnitten, sry.


    Ich empfehle dir auf jeden Fall CS4. Mit Photoshop Elements (haben wir in der Schule) hast du nur die Standardfunktionen und keinerlei Filter, Ebeneneffekte, etc.

    Hallo,
    ich habe mir ein Command geschrieben, das wenn man /wohnen eingibt, und in der Nähe eines der vordefinierten Pickups ist er die Koordinaten des Spielers in eine MySQL Tabelle speichert. wenn ich allerdings ingame /wohnen eingebe passiert garnichts. Nichtmal eine Fehlermeldung in der Konsole/Server Log.


    if (strcmp("/wohnen", cmdtext, true) == 0)
    {
    if(pInfo[playerid][neu] == 1)
    {
    SendClientMessage(playerid,ROT,"Du hast bereits ein Haus!");
    new bool:foundPickup=false;
    for(new i=0;i<49;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,haus[i][0],haus[i][1],haus[i][2]))
    {
    if(GetPlayerMoney(playerid) < hauskosten[i])
    {
    // Zu wenig Geld
    new msg[128];
    format(msg, sizeof msg, "Du hast nicht genug Geld für diese Immobilie. Du benötigst %d$",hauskosten[i]);
    SendClientMessage(playerid,ROT,msg);
    }
    else
    {
    // Genug Geld
    new Float:Xpos, Float:Ypos, Float:Zpos, Float:fAngle, queryn[128], prin[256];
    new queryx[128], queryy[128], queryz[128], querya[128], pName[MAX_PLAYER_NAME], queryneu[128];
    GetPlayerPos(playerid,Xpos,Ypos,Zpos);
    GetPlayerFacingAngle(playerid,fAngle);
    format(queryx,sizeof queryx,"UPDATE skin SET skin1x = %f WHERE name = '%s'",Xpos,pName);
    mysql_query(queryx);
    format(queryy,sizeof queryy,"UPDATE skin SET skin1y = %f WHERE name = '%s'",Ypos,pName);
    mysql_query(queryy);
    format(queryz,sizeof queryz,"UPDATE skin SET skin1z = %f WHERE name = '%s'",Zpos,pName);
    mysql_query(queryz);
    format(querya,sizeof querya,"UPDATE skin SET skin1a = %f WHERE name = '%s'",fAngle,pName);
    mysql_query(querya);
    format(queryn,sizeof querya,"UPDATE skin SET skin1name = Privatskin WHERE name = '%s'",pName);
    format(prin,sizeof prin,"%s hat gespeichert mit X %f Y %f Z %f und Angle %f",pName,Xpos,Ypos,Zpos,fAngle);
    print(prin);
    pInfo[playerid][neu] = 0;
    format(queryneu,sizeof queryneu,"UPDATE user SET neu = 0 WHERE name = '%s'",pName);
    mysql_query(queryneu);
    GivePlayerMoney(playerid,hauskosten[i]);
    foundPickup=true;
    break;
    }


    }
    }

    if(foundPickup==false)
    {
    SendClientMessage(playerid,ROT,"Du bist nicht in der Nähe eines kaufbaren Hauses. Schau auf der Karte nach.");
    }
    }
    }


    Und die Häuser:
    new hauskosten[49] =
    {
    2500, 1700, 2500, 2000, 2500, 2200, 1800, 4500, 2200, 2000, 1500, 2000, 2500,
    2800, 2500, 2000, 2600, 3000, 3200, 2200, 2400, 2600, 1800, 2000, 2300, 1600,
    3200, 3100, 3600, 3500, 3100, 3000, 3400, 3000, 1800, 2000, 2300, 1600, 3200,
    3200, 1200, 1200, 1200, 1200, 3400, 3400, 3400, 3100
    };


    new Float:haus[49][3]=
    {
    {2067.4065, -1731.6440, 13.8762},
    {2012.3688, -1656.3959, 13.5547},
    {2015.9045, -1641.7181, 13.7824},
    {2016.7020, -1629.7666, 13.5469},
    {2068.7625, -1628.8110, 13.8762},
    {2068.5388, -1643.6956, 13.5469},
    {2067.7371, -1656.8142, 13.5469},
    {2065.5249, -1703.2827, 14.1484},
    {2067.2285, -1716.8826, 13.5547},
    {2014.7258, -1732.8055, 14.2344},
    {2015.3224, -1717.1617, 13.5547},
    {2017.5978, -1702.9974, 14.2344},
    {2015.3224, -1717.1617, 13.5547},
    {2017.5978, -1702.9974, 14.2344},
    {2308.7744, -1715.0220, 14.6496},
    {2306.8833, -1678.7894, 14.0012},
    {2368.2605, -1674.9868, 14.1682},
    {2362.6506, -1644.2437, 13.5313},
    {2409.0989, -1673.8839, 13.6044},
    {2384.6162, -1674.8713, 14.7234},
    {2385.8176, -1712.9901, 14.1796},
    {2402.5837, -1716.0219, 13.9366},
    {2393.0059, -1646.9878, 13.5350},
    {2413.9487, -1647.3440, 14.0119},
    {2451.7817, -1642.4371, 13.7357},
    {2469.4573, -1647.2286, 13.5182},
    {2498.2456, -1642.8578, 13.7826},
    {2513.3696, -1690.8275, 13.5293},
    {2151.2246, -1446.1715, 25.7746},
    {2149.0498, -1433.7584, 25.5391},
    {2150.2231, -1419.2042, 25.9219},
    {2150.2466, -1400.8291, 25.7980},
    {2195.4233, -1442.9932, 25.5391},
    {2192.6489, -1456.0232, 25.5391},
    {2191.5085, -1470.3420, 25.9141},
    {2190.9495, -1487.6495, 25.7746},
    {2451.7817, -1642.4371, 13.7357},
    {2469.4573, -1647.2286, 13.5182},
    {2498.2456, -1642.8578, 13.7826},
    {2513.3696, -1690.8275, 13.5293},
    {2153.4678, -980.8218, 63.2934},
    {2143.1438, -978.2022, 61.3793},
    {2131.4187, -974.4938, 59.7856},
    {2122.4060, -969.7921, 58.2074},
    {767.6899, -1655.5536, 5.6094},
    {766.4616, -1605.9467, 13.8039},
    {768.6107, -1696.8157, 5.1554},
    {769.2280, -1745.7079, 13.0773},
    {768.8572, -1727.3201, 13.4321}
    };


    Mit freundlichen Grüßen
    Padarom

    Hallo.
    Ich habe in mein Script geschrieben, dass nach einem erfolgreichen Login des Spielers die Variable "neu" in pInfo[playerid] auf 1 oder 0 gesetzt wird, jenachdem wie das ganze in der Datenbank steht. Früher funktionierte alles, aber im Moment wird der Wert nicht gesetzt.
    format(query1,sizeof query1,"SELECT `neu` FROM `user` WHERE `name` = '%s'",pName);
    mysql_query(query1);
    mysql_store_result();
    mysql_fetch_field("neu",pInfo[playerid][neu]);
    mysql_free_result();


    Mit freundlichen Grüßen
    Padarom

    ICh denke, dir liegt es, zu dekorieren (macht nen i-net Kumpel genauso xD)...also, vllt kannst du dich mit jmd.zusammen tun, der große Sachen mappt, und du machst du Deko :thumbup:

    Aha? Dafür gibt es Internetseiten? o.Ô
    Ist ziemlich unnütz am Bahnhof aber dennoch relativ gut für die erste Map. Objekte sind alle sauber verarbeitet ;)
    8/10

    Hallo.
    Ich bin's mal wieder ;)
    Ich habe in Problem in diesem Teil meines Scriptes:
    new hauskosten[49] =
    {
    {2500}, {1700}, {2500}, {2000}, {2500}, {2200}, {1800}, {4500}, {2200}, {2000}, {1500}, {2000}, {2500},
    {2800}, {2500}, {2000}, {2600}, {3000}, {3200}, {2200}, {2400}, {2600}, {1800}, {2000}, {2300}, {1600},
    {3200}, {3100}, {3600}, {3500}, {3100}, {3000}, {3400}, {3000}, {1800}, {2000}, {2300}, {1600}, {3200},
    {3200}, {1200}, {1200}, {1200}, {1200}, {3400}, {3400}, {3400}, {3100}
    };
    Ich bekomme einen Error im ersten Wert {2500}: "error 008: must be a constant expression; assumed zero"


    Und schon zur Frage:
    Ich möchte per MySQL Koordinaten in eine Tabelle namens "häuser" speichern. Diese Koordinaten sollen sich selbst fortführen. Das heißt ich erstelle eine Tabelle mit den ersten Feldern haus1X, haus1Y, haus1Z. Dann speicher ich diese Tabelle. Wenn ich nun einen Command eingebe soll er meine Koordinaten rausfinden (X,Y,Z) und ein neues Feld erstellen mit dem Namen "haus<ID>X", "haus<ID>Y", ... wobei die ID immer fortführend läuft. In die einzelnen Felder sollen dann natürlich die Koordinaten gespeichert werden.
    Ich möchte hier wenn möglich nur den Teil in dem es das ganze in die MySQL Tabelle reinzieht, wie man die Koordinaten herausfindet weiß ich schon ;)


    Mit freundlichen Grüßen
    Padarom

    Hallo,
    ich bin gerade dabei ein Script zu schreiben, das wenn der Spieler stirbt in seiner MySQL-Tabelle "geld" (Mit den Feldern "user" & "geld") sein Geld-120 zu speichern. Dies funktioniert allerdings nicht, da ich folgenden Fehler in meiner Konsole bekomme:

    Code
    Could not execute query. Unknown column 'Padarom' in 'field list'.


    Folgendes Script:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(GetPlayerMoney(playerid)>120)
    {
    new playercash = GetPlayerMoney(playerid)-120;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    format(query,sizeof query,"INSERT INTO geld (user, geld) VALUES (%s, %d)", name, playercash);
    mysql_query(query);
    SendClientMessage(playerid,ROT,"Eine Arztkostengebühr von 120$ wurde dir abgebucht.");
    }
    return 1;
    }
    Hier ein Teil aus dem Callback OnPlayerSpawn:
    if(pInfo[playerid][loggedin] == 1)
    {
    new name[MAX_PLAYER_NAME], cash[64];
    GetPlayerName(playerid, name, sizeof(name));
    format(query,sizeof(query),"SELECT `geld` FROM `geld` WHERE `user` = '%s'",name);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_field("geld",cash);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,strval(cash));
    mysql_free_result();
    }


    Mit freundlichen Grüßen
    Padarom

    Zitat

    Außerdem hat djson den Vorteil dass es Werte im JSON Format abspeichert, und man somit per Java, PHP usw. darauf zugreifen kann.

    Sorry, dass ich den Thread rausziehe, aber ist ja dennoch relativ "aktiv" - Ich suche derzeit eine Methode, die besser als MySQL ist. Denn mit meinem Linux-Server habe ich da ein paar Probleme mit. Allerdings sollte diese Methode eben durch PHP zugreifbar sein, damit ich dennoch ein User Control Panel erstellen kann. Kleine Frage am Rande, wie kann ich mit PHP darauf zugreifen? Wenn man dafür kein riesen PHP Experte sein muss würde ich ansonsten auf diese Methode umsteigen.


    Mit freundlcihen Grüßen
    Padarom

    Hallo,
    mein MySQL Login und die Überprüfung des vorhanden Accounts funktionieren nun, allerding habe ich jetzt ein anderes Problem.
    enum info {
    ...
    admin,
    ...
    }
    new pInfo[MAX_PLAYERS][info];


    public OnPlayerSpawn(playerid)
    {
    if(pInfo[playerid][neu] == 1)
    {
    ...
    }



    format(query2,sizeof(query2),"SELECT `neu` FROM `user` WHERE `name` = '%s'",name);
    mysql_query(query2);
    mysql_store_result();
    mysql_fetch_field("neu",pInfo[playerid][neu]);

    Ersteres ist mein pInfo mit enum. Zweites ist was passieren soll wen ein Spieler spawnt und den Array "neu" = 1 hat. Letzteres ist die Überprüfung beim Login des Spielers, der den Array "neu" setzt.
    (Das gleiche habe ich auch mit der Adminüberprüfung gemacht, diese funktioniert genau wie der letzte Punkt, nur dass sie eben den Wert admin speichert. Das Kick-System funktioniert also nur für Admins.)


    Wenn ich allerdings spawne und in meiner MySQL Tabelle der Wert neu = 1 ist, dann bekomme ich keine Nachricht wie ich es geschrieben habe, sondern ich spawne lediglich.


    Ich hoffe auf Hilfe


    Mit freundlichen Grüßen
    Padarom