[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
  • Kurze Frage:
    Pawno sagt mir das dass Array zu klein währe, doch ist es relativ groß o.0?
    C:\Users\Strenggeheimer Pfad\SAMP Server\gamemodes\Script.pwn(76900) : error 047: array sizes do not match, or destination array is too small


  • Gibt es eine existierende Liste für die Tuning-Komponennten und den dazugehörigen Preisen?


    Ich weiß von der offiziellen Liste der Komponennten, wobei dort jedoch keine Preise angegeben sind. Diese sind jedoch sehr wichtig für mich.


    Hatte ich noch hier, ich weiß dennoch nicht wer die Liste erstellt hatte (bin mir sicher das ich sie nicht erstellt habe :'d).


  • Hatte ich noch hier, ich weiß dennoch nicht wer die Liste erstellt hatte (bin mir sicher das ich sie nicht erstellt habe :'d).

    Danke, sowas hatte ich gesucht.


    Bin nun aber gleichzeitig auch fündig geworden.

  • Hmm wie kann ich GetPlayerColor in einem stock einbauen?


    Hab es so, aber das geht ja so nicht..


    stock pColor(playerid){ GetPlayerColor(playerid) >>> 8);}


    Edit:


    Ach hat sich erledigt, so geht's richtig xD



    stock pColor(playerid)
    {
    GetPlayerColor(playerid) >>> 8
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wieso wird bei mir immer nur ein Object erstellt ?



    forward LadeBlitzerSystem();
    public LadeBlitzerSystem(){
    new rows, fields, result[128], Blitzerr = 0;
    cache_get_data(rows, fields);
    if(rows){
    while(Blitzerr < rows){
    if(Blitzerr < MAX_BLITZER){
    Blitzer[Blitzerr][b_x] = cache_get_field_content_float(0, "x");
    Blitzer[Blitzerr][b_y] = cache_get_field_content_float(0, "y");
    Blitzer[Blitzerr][b_z] = cache_get_field_content_float(0, "z");
    Blitzer[Blitzerr][b_a] = cache_get_field_content_float(0, "a");
    Blitzer[Blitzerr][b_gesch] = cache_get_field_content_int(0, "geschwindigkeit");
    cache_get_field_content(0, "position", result);
    format(Blitzer[Blitzerr][b_ort], 100, "%s", result);
    if(Blitzer[Blitzerr][b_x] != 0.0){
    Blitzer[Blitzerr][b_erstellt] = 1;
    Blitzer[Blitzerr][b_obj] = CreateDynamicObject(18880,Blitzer[Blitzerr][b_x],Blitzer[Blitzerr][b_y],Blitzer[Blitzerr][b_z]-2.0,0.0,0.0,Blitzer[Blitzerr][b_a]+180);
    }
    Blitzerr++;
    }
    }
    }
    printf("[BLITZERSYSTEM] Es wurden %d Blitzer geladen.", rows);
    return 1;
    }

  • Wieso wird bei mir immer nur ein Object erstellt ?


    forward LadeBlitzerSystem();public LadeBlitzerSystem(){ new rows, fields, result[128], Blitzerr = 0; cache_get_data(rows, fields); if(rows){ while(Blitzerr < rows){ if(Blitzerr < MAX_BLITZER){ Blitzer[Blitzerr][b_x] = cache_get_field_content_float(0, "x"); Blitzer[Blitzerr][b_y] = cache_get_field_content_float(0, "y"); Blitzer[Blitzerr][b_z] = cache_get_field_content_float(0, "z"); Blitzer[Blitzerr][b_a] = cache_get_field_content_float(0, "a"); Blitzer[Blitzerr][b_gesch] = cache_get_field_content_int(0, "geschwindigkeit"); cache_get_field_content(0, "position", result); format(Blitzer[Blitzerr][b_ort], 100, "%s", result); if(Blitzer[Blitzerr][b_x] != 0.0){ Blitzer[Blitzerr][b_erstellt] = 1; Blitzer[Blitzerr][b_obj] = CreateDynamicObject(18880,Blitzer[Blitzerr][b_x],Blitzer[Blitzerr][b_y],Blitzer[Blitzerr][b_z]-2.0,0.0,0.0,Blitzer[Blitzerr][b_a]+180); } Blitzerr++; } } } printf("[BLITZERSYSTEM] Es wurden %d Blitzer geladen.", rows); return 1;}


    So müsste es funktionieren.


    forward LadeBlitzerSystem();
    public LadeBlitzerSystem(){
    new rows, fields, result[128];
    cache_get_data(rows, fields);
    if(rows)
    {
    for(new rowid = 0; rowid < rows; rowid++)
    {
    if(rowid >= MAX_BLITZER)
    break;
    Blitzer[rowid][b_x] = cache_get_field_content_float(rowid, "x");
    Blitzer[rowid][b_y] = cache_get_field_content_float(rowid, "y");
    Blitzer[rowid][b_z] = cache_get_field_content_float(rowid, "z");
    Blitzer[rowid][b_a] = cache_get_field_content_float(rowid, "a");
    Blitzer[rowid][b_gesch] = cache_get_field_content_int(rowid, "geschwindigkeit");
    cache_get_field_content(rowid, "position", result);
    format(Blitzer[rowid][b_ort], 100, "%s", result);
    if(Blitzer[rowid][b_x] != 0.0)
    {
    Blitzer[rowid][b_erstellt] = 1;
    Blitzer[rowid][b_obj] = CreateDynamicObject(18880,Blitzer[rowid][b_x],Blitzer[rowid][b_y],Blitzer[rowid][b_z]-2.0,0.0,0.0,Blitzer[rowid][b_a]+180);
    }
    }
    }
    printf("[BLITZERSYSTEM] Es wurden %d Blitzer geladen.", rows);
    return 1;
    }

  • Hi, wird der Rest meines Codes im Public aufgerufen wenn ich return 0; in der folgenden Funktion verwende?



    if(AntiWeaponHackSetting == false)
    {
    AntiWeap[playerid] = SetTimerEx("AntiWeaponHack", 5000, true, "i", playerid);
    return 0;
    }


    Also, alles was danach steht (public) wird das noch ausgeführt?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hey, kann mir jemand sagen, warum mein 3DTextLabel nicht angezeigt wird?


    Code
    format(string,sizeof(string),"Zum Verkauf:\n%s\n%d",GetVehicleName(ahCars[i][vehID]),ahCars[i][price]);
    Create3DTextLabel(string,COLOR_WHITE,ahCars[i][posX],ahCars[i][posY],ahCars[i][posZ],20.0,0,0);


    Hier die GetVehicleName Methode, sie müsste funktionieren, da sie bei meinem Tacho auch funktioniert.



    Code
    stock GetVehicleName(vehicleid)
    {
    	new String[128];
    	format(String,sizeof(String),"%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
    	return String;
    }
  • Hey, ich arbeite an einem kleinen System, habe ein Ansatz wie ich das machen soll aber weiß nicht wie ich das 100 % richtig mache.


    Du hast als Spieler die Möglichkeit ein Feature zu kaufen, solltest du dieses Feature besitzen hast du die Chance in der Nähe eines Spielers zu spawnen.


    Aktuell sieht das so aus:


    Frage:


    Wie frage ich die Position von nur einem einzigen Spieler ab und teleportiere den Spieler auch nur einmal? Ist sonst alles andere richtig oder habe ich was falsch gemacht?




    if(pData[playerid][P_SpawnPeople] == 1) //Prüfen ob der Spieler das Feauture besitzt
    {
    if(pData[playerid][P_Watching] == false || IsInLobby[playerid] == false || InDuel[playerid] == false) //Gegner befindet sich nicht im Spec, in der Lobby oder im Duel
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float: x, Float: y, Float:z;
    GetPlayerPos(i, x, y, z); //Position vom Gegner abfragen
    SetPlayerPos(playerid, x+2, y, z); //Spieler zum Gegner teleportieren
    }
    }



    else //Spieler besitzt nicht das Feature und wird normal gespawnt
    {
    SetPlayerRandomPos(playerid);
    }



    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • lass die schleife unterbrechen sobald er einen der die vorausetzungen erfüllt gefunden hat (glaube nach den SetPlayerPOs darunter break; machen

  • Hmm habe das so eingefügt, es scheint nicht zu funktionieren (ich werde zum 0 Punkt teleportiert (Blueberry))


    Habe Nachrichten ausgeben lassen um zu überprüfen ob es aufgerufen wird:


    "Feature activated" taucht einmal auf, aber man wird nicht zu den Spielern teleportiert.
    "Normal Spawn appeared" taucht komischerweise zwei mal auf.




    if(pData[playerid][P_SpawnPeople] == 1) //Prüfen ob der Spieler das Feauture besitzt
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue; // Logisch
    if(pData[i][P_Watching] != false || IsInLobby[i] != false || InDuel[i] != false)continue; //i befindet sich im Spec, in der Lobby oder im Duel
    new Float: x, Float: y, Float:z;
    GetPlayerPos(i, x, y, z); //Position vom Gegner abfragen
    SetPlayerPos(playerid, x+2, y, z); //Spieler zum Gegner teleportieren
    SendClientMessage(playerid, -1, "Feature activated");
    break;
    }
    return 1;
    }



    else
    {
    SetPlayerRandomPos(playerid);
    SendClientMessage(playerid, -1, "Normal spawned appeared");
    }



    return 1;



    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Irgendwie möchte mein 3DTextLabel nicht erstellt werden. Findet jemand den Fehler?


    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Du hast den Schnipsel anscheint geändert, vielleicht liegt es daran.


    Du musst das so in dein Code einfügen.

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