[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 Bei jmd. das Bankkontro bzw. SpielerInfo[playerid][pGeldBank] überschreiben will, bzw. das was drauf ist + inputtext muss ich das so schreiben:


    SpielerInfo[playerid][pGeldBank] - inputtext[playerid];


    oder so:


    SpielerInfo[playerid][pGeldBank] = SpielerInfo[playerid][pGeldBank] + inputtext[playerid];


    Oder ganz anders?


    - Tomsen

  • Bei dem ersten rechnest du nur die variable - inputtext und weist das Resultat nicht zu. (Ausserdem sagtest du, dass du + rechnen wolltest.) Bei dem zweiten versuchst du den inputtext zu addieren. (Zahl = Zahl + Text) Nutze strval() um aus einem Text eine Zahl zu machen.
    Des weiteren versuchst du inputtext an der Stelle "playerid" zu lesen. (inputtext[playerid]) Das ist nur korrekt, sofern du inputtext wie folgt definiert hast: inputtext[MAX_PLAYERS][128]. Ich vermute aber, dass du die inputtext variable von OnPlayerCommand() nimmst und der versuch auf das playerid-te Element zuzugreifen somit falsch ist.
    Folgender Code sollte korrekt funktionieren, sofern "inputtext" zum Beispiel = "3" ist.
    SpielerInfo[playerid][pGeldBank] += strval(inputtext). ('variable+=3' ist das gleiche wie 'variable = variable + 3')
    Mach dich erstmal mit den Grundlagen vertraut, bevor du anfaengst das Script eines Erfahrenen Scripters zu aendern.


    wie macht man mit SetObjectMaterialText zeilenbruch ?

    Versuch mal "\r\n" dort wo du einen Zeilenumbruch haben moechtest. Wenn es nicht funktioniert gibt es meines Wissens nach keine Moeglichkeit, ausser ein neues Objekt etwas weiter unten zu platzieren und zu Beschriften.

  • Hey
    Ich hab das premiumroleplayscript gesaugt.. Leider bekomm ich es nicht zum laufen.. Mysql wird net geladen und file findet er nicht (error19). Problem dazu ist dass ich keine ahnung habe wie ich es einrichte mit mysql usw...
    Koennte es jmd vllt fuer mich erstellen bzw einrichten morgen? Gegen bezahlung.. Sry fuer revhtschreibung usw aber bin mit handy on:-/
    Mfg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hey
    Ich hab das premiumroleplayscript gesaugt.. Leider bekomm ich es nicht zum laufen.. Mysql wird net geladen und file findet er nicht (error19). Problem dazu ist dass ich keine ahnung habe wie ich es einrichte mit mysql usw...
    Koennte es jmd vllt fuer mich erstellen bzw einrichten morgen? Gegen bezahlung.. Sry fuer revhtschreibung usw aber bin mit handy on:-/
    Mfg


    Aus dem Thread den Download herunterladen: http://forum.sa-mp.com/showthread.php?t=122983, entpacken, die mysql.dll in deinen Plugins-Ordner innerhalb des Server-Ordners kopieren und in der server.cfg nach folgender Zeile suchen:

    Code
    plugins ...


    "..." ist hier eine eventuelle Auflistung von Plugins. Da einfach mysql dazu schreiben und speichern. Sieht dann so aus:

    Code
    plugins mysql ...


    Die Zeile ist eventuell komplett selbst hinzuzufügen.


    Hoffe es hilft - ganz ohne Bezahlung. ;)

    Ich bin Dittis Signatur.


  • Danke! Werde es morgen mal ausprobieren. Hoffe es klappt. Sollte es nicht klappen, koennte ich mich per pn melden? lg

  • Wieso bekomm ich hier immer andere Zahlen ausgegeben als ich eingebe?!


    if(strlen(inputtext) == 0) return SendClientMessage(playerid,rot,"Du hast keine Summe eingegeben!");
    if(strlen(inputtext)>GetPlayerMoney(playerid)) return SendClientMessage(playerid,rot,"Du hast nicht soviel Geld auf der Hand!");
    SetPVarInt(playerid,"ESumme",strlen(inputtext));
    new string[128];
    format(string,sizeof(string),"%d",GetPVarInt(playerid,"ESumme"));
    SendClientMessage(playerid,gruen,string);


    - Tomsen

  • teste es mal da kommt immer 1999 raus ;)


    Folgendes sollte definitiv funktionieren, da GetVehicleModel() laut samp wiki immer 0 zurueckgeben soll wenn ein Fahrzeug nicht existiert (kann sein, dass GetVehiclePos() systemabhaengig falsche Informationen zurueckliefert, wenn ein Fahrzeug nicht existiert):
    stock CountAllVehicles()
    {
    new zahl = 0;
    for(new veh = 0; veh < MAX_VEHICLES; veh++)
    {
    if ( GetVehicleModel(veh) != 0 )
    zahl++;
    }
    return zahl;
    }(Wenn Kaliber das so in sein Skript uebernehmen/aendern moechte, kann er das gerne machen. Lege keinen Wert auf Credits/Nennung.)


    Wieso bekomm ich hier immer andere Zahlen ausgegeben als ich eingebe?!SetPVarInt(playerid,"ESumme",strlen(inputtext));
    format(string,sizeof(string),"%d",GetPVarInt(playerid,"ESumme"));

    Da du die laenge von dem eingegebenen Text "ESumme" zuweist und nicht den Wert, den der Nutzer eingegeben hat. Das string handling tutorial von namespace kann dir vielleicht helfen dein Problem zu loesen und zukuenftig zu vermeiden: [ SCRIPTING ] String Handling - Was Strings sind und wie man mit ihnen arbeitet

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