[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

  • So sollte das prima gehen wie es Tommy geschrieben hatte


    "s[20]S(Niemand)[20]"
    musst natürlich die werte der strings anpassen benutzt du das neueste sscanf plugin überhaupt ?
    weil wie schon gesagt so sollten keine Probleme Auftreten
    auch wenn du den inhalt weg lässt Also
    "s[20]S()[20]"
    so wird nix übergeben an den string nicht so wie oben Niemand.
    Testest du das direkt auf deinem Server oder erst auf deinem Homepc da mir schon aufgefallen ist das Linux generel mal schwierigkeiten macht ab und zu.


    //edit zum Thema der verwendung von Z oder z


    Zitat

    the old "z" optional string specifier is now "S" (there is still "z" and, for completeness, "Z", but both give warnings).


    Im klar text früher gab es mal den Buchstaben z für die optionale Strings als specifier nun ist es S aber es gibt noch z Z nur geben diese warnings.

  • Hallöschen,


    meine Frage:
    Gibt es unsichtbare Pickups?


    Ich möchte automatische Türen machen die sich öffnen, wenn jemand in die nähe kommt.
    Um Ressourcen zu sparen wollte ich das ganze mit Unsichtbaren pickups machen.


    Gibt es Unsichtbare Pickups und kennt evtl jemand die ID? :D

  • Es gibt keine Unsichtbaren Pickup's ^^.
    Du könntest allerdings via OnPlayerUpdate mit IsPlayerInRangeOf abfragen wo er steht und dann die Objekte öffnen.
    Dies würde allerdings an die Ressourcen gehen ^^.


  • scheiß idee da das schlimmer wird


    ganz einfach ein Timer machen oder wenn du schon ne hr hast im Script den Timer nutzen und ne Punkt abfrage machen


    Wie gesagt, geht an die Ressourcen, und ich nutze ebenfalls kein OnPlayerUpdate ^^.

  • Weiß jemand eine Formel um den Mittelpunkt einer Vierecks auszurechnen?


    wie liegt das Viereck vor ? 2D oder 3D, gedreht ? wenn es ein einfaches Viereck ist, das aus 2 Punkten aus aufgespannt wird(min und max), dann genügt das hier:
    SquareCenter2D(&Float:result_x, &Float:result_y, Float:min_x, Float:min_y, Float:max_x, Float:max_y)
    {
    result_x = floatdiv( floatsub( max_x, min_x ), 2.0);
    result_y = floatdiv( floatsub( max_y, min_y ), 2.0);
    return 1;
    }


    @[DT]Beavis: @Rawr:
    Ich finde die OnPlayerUpdate version um einiges besser als einen Timer...

    public timer()
    {
    for(new i=0; i< MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(...)
    {
    //.......
    //.......
    }
    }
    }
    = sagen wir mal für 200 Spieler eine range-Abfrage auf einen schlag(200x)


    oder so: (besser)
    public OnPlayerConnect(playerid)
    {
    lastRangeCheck[playerid] = GetTickCount();
    return 1;
    }


    new lastRangeCheck[MAX_PLAYERS];
    public OnPlayerUpdate(playerid)
    {
    new tick = GetTickCount(); // wird bei mir jedes mal mit OnPlayerUpdate ausgeführt
    if(tick - lastRangeCheck[playerid] > 100) // alle 100 ms
    {
    if(IsPlayerInRangeOfPoint(...)
    {
    //.......
    //.......
    }
    }
    }
    = für alle Spieler zu einem anderen Zeitpunkt


    so einfach kann man OnPlayerUpdate nutzen um 200 Aufgaben aufzuteilen

    <3

    Einmal editiert, zuletzt von D0erf|er ()


  • Danke, Dachte an Areas

  • Hey,
    wenn ich diesen Code bekomme, heißt das jetzt das die MySQL-Verbindung fehlschlägt oder klappt?

    Code
    [Tue Mar 26 16:51:36 2013] Error (0): Failed to connect. Access denied for user 'root'@'localhost' (using password: YES).
    [Tue Mar 26 16:51:36 2013] Connected (0) to root @ 127.0.0.1 via TCP/IP.
    [Tue Mar 26 16:51:36 2013] MySQL Server Version 5.5.27.

    [tabmenu][tab='Angebote',http://images-1.findicons.com/files/icons/1722/gnome_2_18_icon_theme/48/stock_new_meeting.png][subtab='CMS und Forumsystem',http://icons.iconarchive.com/icons/uribaani/realm/128/Control-panel-icon.png]Installationen & Forumlösung - Forumthread

  • Soweit kann ich lesen. Doch in der nächsten Zeile heißt es:
    [Tue Mar 26 16:51:36 2013] Connected (0) to root @ 127.0.0.1 via TCP/IP.
    Das hat mich halt bisschen verwirrt.

    [tabmenu][tab='Angebote',http://images-1.findicons.com/files/icons/1722/gnome_2_18_icon_theme/48/stock_new_meeting.png][subtab='CMS und Forumsystem',http://icons.iconarchive.com/icons/uribaani/realm/128/Control-panel-icon.png]Installationen & Forumlösung - Forumthread

  • Hey ich bin ein Script neuling, und habe vollgendesproblem:
    SA-MP Dedicated Server
    ----------------------
    v0.3x, (C)2005-2013 SA-MP Team


    [20:22:48] filterscripts = "" (string)
    [20:22:48]
    [20:22:48] Server Plugins
    [20:22:48] --------------
    [20:22:48] Loading plugin: mysql
    [20:22:48]


    > MySQL plugin R5 successfully loaded.


    [20:22:48] Loaded.
    [20:22:48] Loading plugin: streamer
    [20:22:48]


    *** Streamer Plugin v2.6 by Incognito loaded ***


    [20:22:48] Loaded.
    [20:22:48] Loaded 2 plugins.


    [20:22:48] I couldn't load any gamemode scripts. Please verify your server.cfg
    [20:22:48] It needs a gamemode0 line at the very least.


    und ich kriege irgendwie keine amx hin.
    Hoffentlich kann mir jemand helfen.
    Teamviewer vorhanden, falls es mir jemand machen will.
    hier meine Server.cfg:
    echo Executing Server Config...
    lanmode 0
    rcon_password hallo
    maxplayers 500
    port 7777
    hostname Bayside-Roleplay
    gamemode0 bsrp
    filterscripts
    announce 1
    query 1
    weburl nemesus-scripts.de
    onfoot_rate 40
    incar_rate 40
    weapon_rate 40
    stream_distance 300.0
    stream_rate 1000
    maxnpc 100
    plugins mysql streamer
    mapname Nemesus-Scripts.de

  • So , habe das Problem , das wenn der Spieler stirbt , dieser immer wieder respawnt bis er schliesslich crasht
    Ich denke es ist ein Timer Problem
    Dies ist eine Killcam



    public OnPlayerDeath(playerid, killerid, reason)
    {
    new
    Float:fX,
    Float:fY,
    Float:fZ;
    new
    Float:aX,
    Float:aY,
    Float:aZ;
    if ( killerid != INVALID_PLAYER_ID )
    {
    new gunname[32], string[64], fName[MAX_PLAYER_NAME], sName[MAX_PLAYER_NAME];
    GetWeaponName(reason,gunname,sizeof(gunname));
    format(string, sizeof(string), "Weapon: %s.",gunname);
    TextDrawShowForPlayer(playerid,Textdraw1);
    GetPlayerPos(playerid,fX,fY,fZ);
    GetPlayerPos(killerid,aX,aY,aZ);
    new Float: fDistance = GetPlayerDistanceFromPoint(playerid,aX,aY,aZ ),
    szMessage[44];
    format(szMessage, sizeof(szMessage), "Distance: %fm.", fDistance);
    Textdraw1 = TextDrawCreate(264.000000, 410.000000, szMessage);
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.330000, 1.300000);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);
    TogglePlayerSpectating( playerid, 1 );
    TextDrawShowForPlayer(playerid,BalkenOben);
    TextDrawShowForPlayer(playerid,BalkenUnten);
    new name[MAX_PLAYER_NAME+1], string2[24+MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, sizeof(name));
    format(string2, sizeof(string2), "%s ", name);
    GameTextForPlayer(playerid, string2, 3000, 1);
    Textdraw0 = TextDrawCreate(120.000000, 410.000000, gunname);
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.330000, 1.300000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);



    TextDrawShowForPlayer(playerid,Textdraw0);
    SetTimerEx( "unSpectate", true, 3000, "i", playerid );

    }


    public unSpectate( playerid )
    {
    TextDrawHideForPlayer(playerid,Textdraw0),
    TextDrawHideForPlayer(playerid,Textdraw1),
    TogglePlayerSpectating( playerid, 0 );
    TextDrawHideForPlayer(playerid,BalkenOben);
    TextDrawHideForPlayer(playerid,BalkenUnten);
    SpawnPlayer( playerid );
    }

  • Nach dem er gebannt wurde und sich nochmal einloggen will soll eine Msg kommen er ist gebannt:
    {


    if(!IsPlayerAnAdmin(playerid,3))return
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein
    Adminrang ist zu niedrig!");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /ban [Spielername/ID] [Grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(0xFF0A00FF,string);
    SetPVarInt(pID,"Banned",1);
    Kick(pID);
    return 1;
    }
    Wie mach ich das?




    ocmd:gehezu(playerid,params[])
    {


    if(!IsPlayerAnAdmin(playerid,3))return
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein
    Adminrang ist zu niedrig!");
    new pID, string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /gehezu [Spielername/ID]");
    format(string,sizeof(string),"AdmCmd: %s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(pID));
    SendClientMessageToAll(0xFF0A00FF,string);
    {
    IsPlayerConnected(pID);
    new Float:x,Float:y,Float:z,Float:Angle;
    GetPlayerPos(pID,x,y,z);
    GetPlayerFacingAngle(pID,Angle);
    SetPlayerPos(playerid,x+1,y,z);
    SetPlayerFacingAngle(playerid,Angle);
    }
    return 1;
    }
    Wie kann ich das machen das man sich nur porten kann wen der Spieler online ist?
    Mit IsPlayerConnected? Aber wie genau?



    if(GetPVarInt(playerid,"Banned")==1)
    {
    SendClientMessage(playerid,0xFF1400FF,"Dieser Account ist gebannt.");
    Kick(playerid);
    }
    return 1;
    }


    Das funkt nicht..

  • Zu den goto oder was das war^^
    ocmd:gehezu(playerid,params[])
    {


    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin oder dein Adminrang ist zu niedrig!");
    new pID, string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFA00FF,"Benutzung: /gehezu [Spielername/ID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xFF0000FF,"Spieler ist nicht Online!");
    format(string,sizeof(string),"AdmCmd: %s hat sich zu %s teleportiert.",SpielerName(playerid),SpielerName(pID));
    SendClientMessageToAll(0xFF0A00FF,string);
    new Float:x,Float:y,Float:z,Float:Angle;
    GetPlayerPos(pID,x,y,z);
    GetPlayerFacingAngle(pID,Angle);
    SetPlayerPos(playerid,x+1,y,z);
    SetPlayerFacingAngle(playerid,Angle);
    return 1;
    }
    Zu den mit den Ban, da musst du auch die Ban variable aus der datei holen

    All in all it's just another brick in the wall