[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
  • truck0 =    AddStaticVehicle(455,-1839.8022,-12.6983,15.5544,270.1398,254,135); //truck
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == truck0)
    {
    if(pInfo[playerid][job] == 1)
    {
    SetPlayerCheckpoint(playerid,-1872.4550,1417.2936,7.1805,5);
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /stuff get ein.");
    GetPlayerVehicleID(playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Trucker!");
    SendClientMessage(playerid,COLOR_RED,"Falls du noch gefreezt bist /unfreeze.");
    TogglePlayerControllable(playerid, false);
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/stuff get", true) == 0)
    {
    if (pInfo[playerid][job] == 1)
    {
    if(vehicleid == truck0)
    {
    if(PlayerToPoint(50.0,playerid,-1872.1891,1418.8207,7.1805))
    {
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /deliver ein.");
    SendClientMessage(playerid,COLOR_OLIVE,"Die Produkte haben dich 500$ gekostet.");
    SetPlayerCheckpoint(playerid,-1020.9528,-678.2216,31.9035,5);
    GivePlayerMoney(playerid,-500);
    pInfo[playerid][truckprods] = 5;
    }
    }
    }
    return 1;
     }
    des wenn er einsteigt geht jetzt... aber des mit dem stuff get funzt net =( hoff mir kannw er helfen :D

  • Hey leutz, ich habe ein Problem mit dem dini.


    Gestern Abend habe ich noch gescriptet, hat alles Wunderbar geklappt, als ich heute
    mein Script geöffnet habe, spackte er rum.


    #include <dini>


    Und die Datei Dini, ist auch erfolgreich im Includes Ordner enthalten.


    Wie kann ich das fixxen ?

  • truck0 = AddStaticVehicle(455,-1839.8022,-12.6983,15.5544,270.1398,254,135); //truck
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == truck0)
    {
    if(pInfo[playerid][job] == 1)
    {
    SetPlayerCheckpoint(playerid,-1872.4550,1417.2936,7.1805,5);
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /stuff get ein.");
    GetPlayerVehicleID(playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Trucker!");
    SendClientMessage(playerid,COLOR_RED,"Falls du noch gefreezt bist /unfreeze.");
    TogglePlayerControllable(playerid, false);
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/stuff get", true) == 0)
    {
    if (pInfo[playerid][job] == 1)
    {
    if(vehicleid == truck0)
    {
    if(PlayerToPoint(50.0,playerid,-1872.1891,1418.8207,7.1805))
    {
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /deliver ein.");
    SendClientMessage(playerid,COLOR_OLIVE,"Die Produkte haben dich 500$ gekostet.");
    SetPlayerCheckpoint(playerid,-1020.9528,-678.2216,31.9035,5);
    GivePlayerMoney(playerid,-500);
    pInfo[playerid][truckprods] = 5;
    }
    }
    }
    return 1;
    }
    des wenn er einsteigt geht jetzt... aber des mit dem stuff get funzt net =( hoff mir kannw er helfen :D

  • wollte mal fragen wie das mit der SetVehicleNumberPlate geht


    bei samp wiki steht es so, so geht es aber nicht
    if (strcmp(cmdtext, "/numberplate", true)==0){
    SetVehicleNumberPlate(GetPlayerVehicleID(playerid), "Markus");
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    return 1;}

  • truck0 = AddStaticVehicle(455,-1839.8022,-12.6983,15.5544,270.1398,254,135); //truck
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == truck0)
    {
    if(pInfo[playerid][job] == 1)
    {
    SetPlayerCheckpoint(playerid,-1872.4550,1417.2936,7.1805,5);
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /stuff get ein.");
    GetPlayerVehicleID(playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Trucker!");
    SendClientMessage(playerid,COLOR_RED,"Falls du noch gefreezt bist /unfreeze.");
    TogglePlayerControllable(playerid, false);
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/stuff get", true) == 0)
    {
    if (pInfo[playerid][job] == 1)
    {
    if(vehicleid == truck0)
    {
    if(PlayerToPoint(50.0,playerid,-1872.1891,1418.8207,7.1805))
    {
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /deliver ein.");
    SendClientMessage(playerid,COLOR_OLIVE,"Die Produkte haben dich 500$ gekostet.");
    SetPlayerCheckpoint(playerid,-1020.9528,-678.2216,31.9035,5);
    GivePlayerMoney(playerid,-500);
    pInfo[playerid][truckprods] = 5;
    }
    }
    }
    return 1;
    }
    Wenn er einsteigt des geht :DAber dess /stuff get funzt net...passiert einfach net.. hab aber keinen errors bitte hilfee :D

  • Ich wüsste mal gerne, wann genau man public benutzen sollte und wann nicht. Das man es bei Call****Function und Timern brauch ist mir klar. Aber wann soll man es noch benutzen? Ich versteh nicht wirklich was die sa-mp.com wiki hier mit meint:
    "A function should be public whenever "the server" must be able to call the function at run time."
    Also wann brauch ich es und wann nicht? (ich programmiere auch in C und bin von daher nicht unbedingt ein Scripting Noob. ;)

  • Eine Öffentliche Funktion ist dazu da um von überall im Laufzeitbereich auf sie zuzugreifen, so kann
    man per CallRemoteFunction auch sie zurückgreifen und die gewünschten Parameter übergeben sprich
    auch von einem anderen Script ließe sich darauf zurückgreifen.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • So ich habe jetzt mal encrpyt ausm gff in mein selfmade dm eingebaut.


    Habe nur ein Problem.


    Wenn man sich einloggt und das falsche Password eingibt, kann man sich danach mit dem falschen Passwort einloggen, da, so vermute ich, durch das Fehlerhafte login der Password Key, ich benutzt dini, verändert wird.


    Und zwar befindet sich auf einmal vor dem ersten Key in der ini das Symbol "ÿ". Allerdings verändere ich weder den Key noch schreibe ich irgentwas an den Anfang der Ini.


    Woran könnte das liegen.


    loginsystem


    new string[128];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s.dini",playername);


    new pass[128];
    new laenge;


    format(pass,sizeof(pass),"%s",inputtext);


    laenge = strlen(pass);


    Encrypt(pass);
    printf("%s",pass);
    if(strcmp(dini_Get(string,"Password"),pass,false)==0 && laenge != 0)
    {

  • truck0 = AddStaticVehicle(455,-1839.8022,-12.6983,15.5544,270.1398,254,135); //truck
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(vehicleid == truck0)
    {
    if(pInfo[playerid][job] == 1)
    {
    SetPlayerCheckpoint(playerid,-1872.4550,1417.2936,7.1805,5);
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /stuff get ein.");
    GetPlayerVehicleID(playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Trucker!");
    SendClientMessage(playerid,COLOR_RED,"Falls du noch gefreezt bist /unfreeze.");
    TogglePlayerControllable(playerid, false);
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/stuff get", true) == 0)
    {
    if (pInfo[playerid][job] == 1)
    {
    if(vehicleid == truck0)
    {
    if(PlayerToPoint(50.0,playerid,-1872.1891,1418.8207,7.1805))
    {
    SendClientMessage(playerid,COLOR_OLIVE,"Fahre zum Roten Punkt und Tippe /deliver ein.");
    SendClientMessage(playerid,COLOR_OLIVE,"Die Produkte haben dich 500$ gekostet.");
    SetPlayerCheckpoint(playerid,-1020.9528,-678.2216,31.9035,5);
    GivePlayerMoney(playerid,-500);
    pInfo[playerid][truckprods] = 5;
    }
    }
    }
    return 1;
    }
    warum funzt des /stuff get net?

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/stuff get", true) == 0)



    Schau dir den Teil mal an, cmdtext gibt das Kommando zurück während die Variable cmd nichts enthält ?
    Sieht danach aus als ob du mit strtok arbeiten würdest, für gewöhnlich trennt die Funktion Leerzeichen und
    gibt die einzelnen Teile wieder, daher sollte nur /stuff wiedergegeben werden .

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ist das möglich, irgendwie durch ein Zeichen es so zu machen, dass ich nicht alle CarIDs schreiben muss sondern einfach z.b 90-104 machen kann... Gibt es da eine möglichkeit?