[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 den Befehl /befehl eingebe, soll abgefragt werden ob der Spieler in der Nähe des erstellten, bzw eines Sultans welche pCar angehören (später mehrere) steht, was mache ich falsch? 8| ?(


    Code
    new pCar[1];

    Code
    pCar[0] = CreateVehicle(560,1751.9871,-1683.6760,13.3729,180.6876,3,3, 1500);

    Code

    if(strcmp("/befehl", cmd, true) == 0)
    {
    new Float:vPos[3];
    for(new i = 0; i<sizeof(pCar); i++)
    {
    GetVehiclePos(i, vPos[0], vPos[1], vPos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Geht");
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Geht nicht");
    }
    return 1;
    }


    Edit: Frage geändert

    Einmal editiert, zuletzt von varrez ()

  • [quote='crontec','index.php?page=Thread&postID=2000777#post2000777']if(strcmp("/befehl", cmd, true) == 0)
    {
    new Float:vPos[3];
    for(new i = 0; i {
    GetVehiclePos(i, vPos[0], vPos[1], vPos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Geht");
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Geht nicht");
    }
    return 1;
    }



    if(strcmp("/befehl", cmd, true) == 0)
    {
    new Float:vPos[3];
    GetVehiclePos(pCar[0], vPos[0], vPos[1], vPos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Geht");
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Geht nicht");
    }
    return 1;
    }

  • Aber es werden ja später mehrere Cars sein, welche auch abgefragt werden sollen


    if(strcmp("/befehl", cmd, true) == 0)
    {
    new Float:vPos[3];
    for(new i = 0; i<sizeof(pCar); i++)
    {
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Geht");
    }
    else return SendClientMessage(playerid, COLOR_ERRORTEXT, "Geht nicht");
    }
    return 1;
    }

  • Marcel789: Dein Code geht nur beim ersten Index, danach wird der return im else Teil ausgegeben.


    So ist es richtig:
    if(strcmp("/befehl", cmd, true) == 0)
    {
    new Float:vPos[3];
    for(new i = 0; i<sizeof(pCar); i++)
    {
    GetVehiclePos(pCar[i], vPos[0], vPos[1], vPos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 15.0, vPos[0], vPos[1], vPos[2]))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Geht");
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_ERRORTEXT, "Geht nicht");;
    }

  • Hey..
    Habe ein Problem bei einer Include, was ich erst gestern bemerkte..
    Habe ja vor einiger Zeit mal eine Include rausgebracht, wo das Leben, die Schutzweste und das Geld Serverside ist..
    Jedoch wird das Mainscript dadurch unterbrochen, OnGameModeInit wird nichteinmal aufgerufen..
    Wenn ich die Definitionen der Callbacks entferne, klappt alles perfekt, jedoch kommt es dadurch zu Errors, da "OnGameModeInit" usw ja bereits vorhanden ist..


    Weiß nicht mehr weiter..
    Kann mir jemand vlt helfen?


    -> Code


    Die Definitionen sind ganz unten..


    Da ich dafür ein kleines Update rausbringen wollte, habe ich das mal getestet, jedoch bemerkte ich dann den Fehler..
    Hoffe jemand kann mir helfen..
    Danke im Voraus!


    //Edit:

    Definitionen
    #if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
    #else
    #define _ALS_OnPlayerConnect
    #endif
    #define OnPlayerConnect SS_OnPlayerConnect

    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit SS_OnGameModeInit

    #if defined _ALS_OnGameModeExit
    #undef OnGameModeExit
    #else
    #define _ALS_OnGameModeExit
    #endif
    #define OnGameModeExit SS_OnGameModeExit

    #if defined _ALS_OnPlayerSpawn
    #undef OnPlayerSpawn
    #else
    #define _ALS_OnPlayerSpawn
    #endif
    #define OnPlayerSpawn SS_OnPlayerSpawn

    #if defined _ALS_OnPlayerDeath
    #undef OnPlayerDeath
    #else
    #define _ALS_OnPlayerDeath
    #endif
    #define OnPlayerDeath SS_OnPlayerDeath

    #if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
    #else
    #define _ALS_OnPlayerDisconnect
    #endif
    #define OnPlayerDisconnect SS_OnPlayerDisconnect

    #if defined _ALS_OnPlayerTakeDamage
    #undef OnPlayerTakeDamage
    #else
    #define _ALS_OnPlayerTakeDamage
    #endif
    #define OnPlayerTakeDamage SS_OnPlayerTakeDamage

    Mit freundlichen Grüßen
    ErikSon



    Scripte kleine Systeme auf Anfrage umsonst!
    Per PN könnt ihr mir gerne Scriptingfragen stellen.

    Einmal editiert, zuletzt von ErikSon ()

  • Hei, ich habe ein Problem, ich versuche grade das die Fraktionsautos funktieren durch ein kleines script was mit gegeben wurde aber es funzt net^^
    PS: bin noch ein anfänger also bitte nicht sauer darauf sein wie schlecht das doch von mir war :D)
    PS: Wie kann ich noch Autos für andere Fraktonen mit einbinden oder muss ich dazu immer eine neue Variable dazu machen?
    naja hier das script^^



    //FraktionsCars
    new FraktionsCars[80];
    SanNewsCars[1] = AddStaticVehicle(582,-327.3076,1515.0505,75.4138,359.7894,1,158); // San News FrakCar 1
    SanNewsCars[2] = AddStaticVehicle(582,-333.4878,1515.2330,75.4174,0.2302,1,158); // San News FrakCar 2
    SanNewsCars[3] = AddStaticVehicle(582,-339.9252,1515.1390,75.4167,0.6772,1,158); // San News FrakCar 3
    SanNewsCars[4] = AddStaticVehicle(582,-346.0672,1515.5360,75.4152,358.8697,1,158); // San News FrakCar 4
    SanNewsCars[5] = AddStaticVehicle(560,-320.9042,1514.1096,75.0643,1.0341,158,158); // San News FrakCar 5
    SanNewsCars[6] = AddStaticVehicle(560,-314.8088,1514.3699,75.0624,359.3697,158,158); // San News FrakCar 6
    SanNewsCars[7] = AddStaticVehicle(488,-269.4477,1548.5161,75.5092,134.9967,158,158); // frakcar SanNews 7
    {
    SetVehicleNumberPlate(beispielautos[v],"San News"); SetVehicleToRespawn(beispielautos[v]);
    }
    for(new i = 0; i < sizeof(FraktionsCars for(new i = 0; i < sizeof(FraktionsCars); i++)
    {
    if(vehicleid == FraktionsCars[i])
    {
    if(!isPlayerInFrakt(playerid, 7)) //Fraktions ID
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Fraktion!");
    break;
    }
    }
    }
    }

  • Silvio.Castro:


    //FraktionsCars
    new SanNewsCars[7], //7, da zur Zeit nur 7 Fahrzeuge (0-6) bestehen..
    LSPDCars[10]; //Wenn du dann noch 10 LSPD Cars einfügen willst.. ( und dann genau das Gleiche, das unten steht machen.. )


    SanNewsCars[0] = AddStaticVehicle(582,-327.3076,1515.0505,75.4138,359.7894,1,158); // San News FrakCar 1
    SanNewsCars[1] = AddStaticVehicle(582,-333.4878,1515.2330,75.4174,0.2302,1,158); // San News FrakCar 2
    SanNewsCars[2] = AddStaticVehicle(582,-339.9252,1515.1390,75.4167,0.6772,1,158); // San News FrakCar 3
    SanNewsCars[3] = AddStaticVehicle(582,-346.0672,1515.5360,75.4152,358.8697,1,158); // San News FrakCar 4
    SanNewsCars[4] = AddStaticVehicle(560,-320.9042,1514.1096,75.0643,1.0341,158,158); // San News FrakCar 5
    SanNewsCars[5] = AddStaticVehicle(560,-314.8088,1514.3699,75.0624,359.3697,158,158); // San News FrakCar 6
    SanNewsCars[6] = AddStaticVehicle(488,-269.4477,1548.5161,75.5092,134.9967,158,158); // frakcar SanNews 7


    for(new v = 0; v<sizeof(SanNewsCars); v++){
    SetVehicleNumberPlate(SanNewsCars[v],"San News");
    SetVehicleToRespawn(SanNewsCars[v]);
    }
    for(new i = 0; i < sizeof(SanNewsCars); i++){
    if(vehicleid == SanNewsCars[i]){
    if(!isPlayerInFrakt(playerid, 7)){
    RemovePlayerFromVehicle(playerid);
    return SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Fraktion!");
    }
    }
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von ErikSon ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Hey..
    Habe ein Problem bei einer Include, was ich erst gestern bemerkte..
    Habe ja vor einiger Zeit mal eine Include rausgebracht, wo das Leben, die Schutzweste und das Geld Serverside ist..
    Jedoch wird das Mainscript dadurch unterbrochen, OnGameModeInit wird nichteinmal aufgerufen..
    Wenn ich die Definitionen der Callbacks entferne, klappt alles perfekt, jedoch kommt es dadurch zu Errors, da "OnGameModeInit" usw ja bereits vorhanden ist..


    Weiß nicht mehr weiter..
    Kann mir jemand vlt helfen?


    -> Code


    Die Definitionen sind ganz unten..


    Da ich dafür ein kleines Update rausbringen wollte, habe ich das mal getestet, jedoch bemerkte ich dann den Fehler..
    Hoffe jemand kann mir helfen..
    Danke im Voraus!


    Definitionen
    #if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
    #else
    #define _ALS_OnPlayerConnect
    #endif
    #define OnPlayerConnect SS_OnPlayerConnect

    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit SS_OnGameModeInit

    #if defined _ALS_OnGameModeExit
    #undef OnGameModeExit
    #else
    #define _ALS_OnGameModeExit
    #endif
    #define OnGameModeExit SS_OnGameModeExit

    #if defined _ALS_OnPlayerSpawn
    #undef OnPlayerSpawn
    #else
    #define _ALS_OnPlayerSpawn
    #endif
    #define OnPlayerSpawn SS_OnPlayerSpawn

    #if defined _ALS_OnPlayerDeath
    #undef OnPlayerDeath
    #else
    #define _ALS_OnPlayerDeath
    #endif
    #define OnPlayerDeath SS_OnPlayerDeath

    #if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
    #else
    #define _ALS_OnPlayerDisconnect
    #endif
    #define OnPlayerDisconnect SS_OnPlayerDisconnect

    #if defined _ALS_OnPlayerTakeDamage
    #undef OnPlayerTakeDamage
    #else
    #define _ALS_OnPlayerTakeDamage
    #endif
    #define OnPlayerTakeDamage SS_OnPlayerTakeDamage


    //Edit: Pastebin erneuert..
    Diese Schweine löschen den iwi immer.. Keine Ahnung, warum.. :pinch:

  • ErikSon:
    Dir will aber auch keiner helfen oder? ^^


    Also nochmal zu Verständnis, wenn du die Include inkludiert hast, dann wird OnGameModeInit in deinem Gamemode nicht mehr ausgeführt, richtig?
    Ansonsten versuch es mal mit ner anderen hooking Methode, http://forum.sa-mp.com/showthread.php?t=387600
    Funktioniert eigentlich super, und wird in viele Includes wie das eine von mir und IPrototypeI verwendet :)


    /e
    Zum anderen arbeitet diese Methode viel schneller als die normalen Hooks, da CallLocalFunction nicht mehr benötigt wird.


  • Hey..
    Ja, irgendwie will mir keiner helfen ;) ( Mögen mich halt nicht )


    Habe die Methode mal ausprobiert..
    Leider klappt es auch nicht..


    Oder hab ich was falsch gemacht? ;)


    Hier mal der Code: Pastebin

  • ErikSon:
    Komisch ^^


    So also hab es mal selber probiert und du hast nichts falsch gemacht, der Fehler liegt in der Progressbar Include.
    Undzwar returnt die Include den Wert und das bringt die Include zum Stolpern und führt dazu, das dein OGI im Gameode nicht mehr ausgeführt wird.
    Du kannst das auch ganz gut beobachten, wenn du alles aus der include bei ongamemodeinit rausnimmst, und ein return 1; rein packst, es wird im Hauptgamemode dann auch nicht mehr ausgeführt.

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