[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
  • Hallo :)
    Ich werd einfach nicht schlau draus


    Desktop\Script\gamemodes\Ultimate.pwn(209) : error 010: invalid function or declaration


    Desktop\Script\gamemodes\Ultimate.pwn(211) : error 010: invalid function or declaration





    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/munition", cmdtext, true, 10) ==0)
    {
    if(IstSpielerInFraktion(playerid, 1))
    GivePlayerWeapon(playerid,24,20);
    SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe nachgeladen!");
    return 1;
    }
    return 0;
    }
    if (strcmp("/dienst", cmdtext, true, 10) == 0)
    {
    if(IstSpielerInFraktion(playerid, 1))
    GivePlayerWeapon(playerid,24,0);
    SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe aus dem Schrank genommen!");


  • Passe etwas besser mit der Einrückung und deine Klammern auf. ;)
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/munition", cmdtext, true))
    {
    if(IstSpielerInFraktion(playerid, 1))
    {
    GivePlayerWeapon(playerid,24,20);
    SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe nachgeladen!");
    return 1;
    }
    }
    if(!strcmp("/dienst", cmdtext, true))
    {
    if(IstSpielerInFraktion(playerid, 1))
    {
    GivePlayerWeapon(playerid,24,0);
    SendClientMessage(playerid,0xFFDC00FF,"Du hast deine Dienstwaffe aus dem Schrank genommen!");
    return 1;
    }
    }
    return 0;
    }


    @xCurry:
    Schreib es mal so:
    if(Fahrsstunde[playerid][fahr_bAktiv])
    {
    Fahrsstunde[playerid][fahr_Checkpoint]++;
    DisablePlayerCheckpoint(playerid);
    new playercp = Fahrsstunde[playerid][fahr_Checkpoint];
    if(playercp == sizeof(Fahrss_Stationen))
    {
    new string[128];
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    format(string,sizeof(string),"Du hast die Praktische Prüfung beendet bitte warte auf dein Ergebnis! (%d | %d)",playercp,sizeof(Strassen_Stationen));
    SendClientMessage(playerid,GRÜN,string);
    Fahrsstunde[playerid][fahr_bAktiv]=false;
    }
    else
    {
    new string[128];
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    format(string,sizeof(string),"(%d | %d)",playercp,sizeof(Fahrss_Stationen));
    SendClientMessage(playerid,GRÜN,string);
    new id = Fahrsstunde[playerid][fahr_Checkpoint];
    SetPlayerCheckpoint(playerid,Fahrss_Stationen[id][F_fx],Fahrss_Stationen[id][F_fy],Fahrss_Stationen[id][F_fz],Fahrss_Stationen[id][F_fRad]);
    }
    }

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry () aus folgendem Grund: xCurry Edit

  • moinsen unzwar hab ich gerade probiert Interiors zu erstellen nur leider ist dort ein Problem der Pickup erscheint dort nicht?



    {186,2597.5662,1899.6418,-1145.568359,1050.710083}


    Das ist die Koordinate wo der Pickup erstellt werden soll




    Das ist die ganze Koordinate
    AddPlayerClass(186,2597.5662,1899.6418,11.0312,357.6367,0,0,0,0,0,0); // yakuzaenter


    Ich hab das Interior 12 genommen dieses heißt


    Unused safe house

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

  • enum buildingsEnum{
    Float:b_x,
    Float:b_y,
    Float:b_z,
    Float:b_ix,
    Float:b_iy,
    Float:b_iz,
    b_interior
    }


    new bInfo[][buildingsEnum] = {
    {186,2597.5662,1899.6418,-1145.568359,1050.710083}
    };




    //Gebäude laden
    for(new i=0; i<sizeof(bInfo); i++)
    {
    CreatePickup(1318,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    }

  • Jeffry:
    hat funktioniert
    aber bei mein Tacho steht jetze z.b 100% Zustand aber da kommt
    Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte
    wie kann ich das mit der Rechnung machen ?
    da ich ja nicht das Richtige Healt nehme ?
    GetVehicleHealth(veh, hp);
    hp = floatmul(floatdiv(100,750),(hp-250));
    if(hp<=0.0){hp=0.0;}
    formatEx(str,"Zustand: %.0f",hp);
    TextDrawSetString(Tacho[i][Zustand],str);
    if(Fahrsstunde[playerid][fahr_bAktiv])
    {
    Fahrsstunde[playerid][fahr_Checkpoint]++;
    DisablePlayerCheckpoint(playerid);
    new playercp = Fahrsstunde[playerid][fahr_Checkpoint],veh = GetPlayerVehicleID(playerid),Float:hp;
    if(playercp == sizeof(Fahrss_Stationen))
    {
    if(GetVehicleHealth(veh,hp)< 80)
    {
    SetVehicleToRespawn(veh);
    tank[veh] = 100;
    SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte!");
    return 1;
    }
    else
    {
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    SendClientMessage(playerid,EGRÜN,"Du hast die Praktische Prüfung beendet bitte warte auf dein Ergebnis!");
    Fahrsstunde[playerid][fahr_bAktiv]=false;
    GetVehicleHealth(veh, hp);
    SetVehicleToRespawn(veh);
    tank[veh] = 100;
    return 1;
    }
    }
    else
    {
    new string[128];
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    format(string,sizeof(string),"(%d | %d)",playercp,sizeof(Fahrss_Stationen));
    SendClientMessage(playerid,IGELB,string);
    new id = Fahrsstunde[playerid][fahr_Checkpoint];
    SetPlayerCheckpoint(playerid,Fahrss_Stationen[id][F_fx],Fahrss_Stationen[id][F_fy],Fahrss_Stationen[id][F_fz],Fahrss_Stationen[id][F_fRad]);
    }
    }

  • @xCurry:
    Meinst du das so?
    GetVehicleHealth(veh,hp);
    if(hp < 80)
    {
    SetVehicleToRespawn(veh);
    tank[veh] = 100;
    SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand hatte!");
    return 1;
    }

  • Du möchtest also, wenn man während der Prüfung unter 80 HP vom Fahrzeug hat, das die Prüfung abgebrochen wird?
    Dann musst du das in einem Timer einbauen.
    SetTimerEx("FahrstundenTimer",1000,1,"i",playerid); //Dort wo die Prüfung beginnt!


    forward FahrstundenTimer(playerid);
    public FahrstundenTimer(playerid)
    {
    if(Fahrsstunde[playerid][fahr_bAktiv])
    {
    new Float:hp,veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh,hp);
    if(hp < 80)
    {
    SetVehicleToRespawn(veh);
    tank[veh] = 100;
    SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand Hatte!");
    return 1;
    }
    }
    return 1;
    }

  • ICy.:
    Nein
    Jeffry:
    wenn man in den Lezten Checkpoint fährt soll überprüft werden ob das Fahrzeug noch mehr als 80% hat ( also Tacho % )
    und für den Tacho nutze ich eine Rechnung damit das car bei 0% brennt



    die rechnung
    GetVehicleHealth(veh, hp);
    hp = floatmul(floatdiv(100,750),(hp-250));
    if(hp<=0.0){hp=0.0;}
    formatEx(str,"Zustand: %.0f",hp);

  • Entschuldigung, dann habe ich das falsch verstanden.
    Wende deine Rechnung doch einfach an.
    GetVehicleHealth(veh,hp);
    hp = floatmul(floatdiv(100,750),(hp-250));
    if(hp < 80)
    {
    SetVehicleToRespawn(veh);
    tank[veh] = 100;
    SendClientMessage(playerid,IGELB,"Du bist durchgefallen da das Auto weniger als 80 Zustand hatte!");
    return 1;
    }

  • Jeffry:


    Sorry, kommt bisschen spät, aber du sagtest ich soll den Code posten anstatt dir mein GM per PM zu senden :D


    ______________________________________________



    Problembeschreibung:


    Registrieren klappt problemlos, beim einloggen steht dort immer das mein Passwort falsch ist.




    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    if(fexist(UserPath(playerid)))
    {
    INI_ParseFile(UserPath(playerid), "LoadUser_%s");
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login Menu","{FF0000}Type your password below to login.","Login","Kick");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Register Menu","Type your password below to register a new account.","Register","Kick");
    }
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "%s has Joined the server.", pname);
    SendClientMessageToAll(0xFF8000FF, string);
    return 1;




    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"Player Saved Data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Close(File);
    GetPlayerName(playerid, pname, sizeof(pname));
    switch(reason) {
    case 0: format(string, sizeof(string), "%s has left the server. (Lost Connection)", pname);
    case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pname);
    case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pname);
    }
    SendClientMessageToAll(0xFF8000FF, string);
    return 1;
    }



    Benötigt ihr noch etwas?


    Mit freundlichen Grüßen
    JustMe.77 8)

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