Beiträge von Templer

    Es liegt an deiner Variable 'pSpawnChange', bedeutet wenn der Wert vom Spieler bei 'pSpawnChange' nicht 0 ist, dann spawnt er am Noobspawn ^^


    if(SpielerInfo[playerid][pSpawnChange] != 0) //Also hier ist der Fehler ^^

    Hier hab ich dir ein Codeschnippsel gemacht, wo du es für jedes ModelID auf jedem Fahrzeug selber testen kannst.


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    new params[32];
    if(strfind(cmdtext," ",false)!=-1)
    {
    strmid(params,cmdtext,strfind(cmdtext, " ", false)+1,strlen(cmdtext));
    strdel(cmdtext,strfind(cmdtext, " ", false),strlen(cmdtext));
    }
    if(!strcmp(cmdtext,"/vobject",false))
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFFFFFAA," Sie sitzen in keinem Fahrzeug...");
    if(!strlen(params)) return SendClientMessage(playerid,0xFFFFFFAA,"VERWENDUNG: /vobject [ModelID] [X Offset] [Y Offset] [Z Offest] [X Rotation Offset] [Y Rotation Offset] [Z Rotation Offset]");
    new Float:Offset[6],modelid,param,oldpos,string[128],vehicleid=GetPlayerVehicleID(playerid); strcat(params,"0 0 0 0 0 0 0 0");
    for(;param!=sizeof(Offset)+1;param++)
    {
    strmid(string,params,oldpos,strfind(params," ",false,oldpos)+1); oldpos=strfind(params," ",false,oldpos)+1;
    if(param==0) modelid=strval(string);
    else Offset[param-1]=floatstr(string);
    }
    if(GetPVarInt(playerid,"VehicleObject")>0) DestroyObject(GetPVarInt(playerid,"VehicleObject"));
    SetPVarInt(playerid,"VehicleObject",CreateObject(modelid,0,0,0,0,0,0));
    AttachObjectToVehicle(modelid,vehicleid,Offset[0],Offset[1],Offset[2],Offset[3],Offset[4],Offset[5]);
    format(string,sizeof(string),"* ObjectModel %d auf das Fahrzeug mit den Positionen %f %f %f %f %f %f.",modelid,Offset[0],Offset[1],Offset[2],Offset[3],Offset[4],Offset[5]);
    return SendClientMessage(playerid,0xFFAA00FF,string);
    }
    if(!strcmp(cmdtext,"/vobject_delete",false))
    {
    if(GetPVarInt(playerid,"VehicleObject")<1) return SendClientMessage(playerid,0xFFFFFFAA," Sie haben kein Object auf ein Fahrzeug erstellt...");
    DestroyObject(GetPVarInt(playerid,"VehicleObject"));
    return SendClientMessage(playerid,0xFFAA00FF,"* Fahrzeugobjekt gelöscht.");
    }
    return 0;
    }


    Offset bedeutet von dem Befehl von der Fahrzeug mitte aus. Bedeutet wenn du bei ZOffset 1 schreibst, dann setzt er dir das Object um eine Einheit vom Fahrzeugmittelpunkt aus nach oben.


    Dieser Befehl benötigt nur SAMP Includes und sonst keine weiteren sachen wie dcmd und sscand und Co ^^

    RFT, von wo beziehst du denn playerid? ^^ Nebenbei funktioniert es so nicht, jedoch kann man einen "TextDrawStreamer" erstellen, der automatisch immer zerstört und neu setzt und naja ^^

    Hier bitte:


    if(listitem==9)//Adminlevel_1
    {
    adminrangin= 10;
    new string[128];
    format(string,sizeof (string),"Bitte gib den gewünschten Name an.\nAktuell verwendeter Name:{6600CC} %s",Adminrang[Adminlevel_1]);
    ShowPlayerDialog(playerid,Admineinstellungeninput_Dialog,DIALOG_STYLE_INPUT,"Adminname ändern",string,"Ändern","Abbrechen");
    }


    if(adminrangin==10)
    {
    new string[128];
    format(string,sizeof (string),"Du hast %s in: %s umgeändert.",Adminrang[Adminlevel_1],inputtext);
    format(Adminrang[Adminlevel_1],20,inputtext); SendClientMessage(playerid,Gelb,string); adminrangin=0;
    ShowPlayerDialog(playerid,Admineinstellungen_Dialog,DIALOG_STYLE_LIST,"Adminränge ändern",Adminrangedialog,"Auswählen","Abbrechen");
    }

    Also ich hab es mit einem Leeren GM mit dem FS probiert und funktioniert, aber hier ein Workaround, die Ihren Fehler im GM nicht finden ^^


    Ihr ersetzt das FS mit diesem Inhalt hier: http://pastebin.com/4WDDJcWY


    und in eurem GM fügt ihr ganz oben unter OnDialogResponse folgendes ein:


    if(CallRemoteFunction("ElevatorCallback","dddd",playerid,dialogid,response,listitem)) return 1;


    Das sollte helfen!

    Ok entschuldige, hab ich nicht gewusst ^^


    Ich habe mir dein Script, was du hochgeladen hast, runtergeholt und umgewandelt in ein GM. Und bei mir funktioniert es einwandfrei.


    Wenn es wirklich am Dialog liegt, dann ändere die Zeile


    #define DIALOG_ID (874)


    in eine andere Zahl um, welche du noch nicht in deinem GM benützt (also DialogID)

    Wow, wärst du so freundlich auch den Link zu diesem LS_Elevator zu schicken?


    Zu 75 % haben die Leute genau aus diesem Grund höchstwahrscheinlich sich nicht gemeldet ^^

    @ Maddin: Deine Variante geht nicht, hab ich selber schon versucht ^^


    Aber wenn doch SAMP von PAWN aus die Funktion strmid bereitstellt, wieso muss ich mir dann noch ein C-Plugin bzw. ein PAWN Codeschnippsel besorgen?

    nein, er hat keine public mehr drinne. Hätte er eine drinnen gehabt, würde kein "undefined" kommen. Es liegt haushoch am blöden forward, was der Compiler ned als Fehler anrechnet, wenn keine public zum forward vorhanden ist.


    Aus dem Grund nutze ich Beispielsweise auch kein stock mehr, damit keine unnötigen Funktionen herumlummern und mir der Compiler alle unbenützten Funktionen zeigt ^^

    Theorethisch müsste es


    p<,>dffffff


    lauten, jedoch hab ich es selber getestet, aber er nimmt es aus bestimmten Gründen nicht an.. aus diesem Grunde musst du die Koordinaten wie folgt in der Datei hinterlegen:


    1237 1140.2705078125 -1424.0344238281 14.796875 0 0 0
    1237 1134.9908447266 -1424.0533447266 14.796875 0 0 0
    1237 1129.8759765625 -1423.9969482422 14.796875 0 0 0
    1237 1123.3879394531 -1423.9250488281 14.796875 0 0 0


    usw. ^^

    Also meines Achtens finde ich es sinnlos ^^ Solche Sachen wie dcmd, und Co machen nur aus Befehlen public-Funktionen, welche dann per CallLocalFunction aufgerufen werden, aber am schnellsten ist immernoch strcmp.


    Befehle in public´s zu verwandeln würde sich nur was bringen, wenn man sehr viele strcmp´s im Code hat (ungefähr 2000 strcmp´s in einer Funktion hintereinander).


    Und diese dann auch noch alle (wenn wir von einem GF ausgehen) umzubauen in ein dcmd oder sonstwas, dann würde es logischerweise den Lag dämpfen (der nur bei meiner ungefähren Schätzung oben nur 1ms dauert), aber wer tut sich schon dies an? ^^

    Folgendes irgendwo im Script einfügen:


    ProxDetector(Float:radi, playerid, caststr[],col1,col2,col3,col4,col5)
    {
    new Float:PlayerPos[3];
    GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
    for(new giveplayerid;giveplayerid!=MAX_PLAYERS;giveplayerid++)
    {
    if(!IsPlayerConnected(giveplayerid)) continue;
    if(IsPlayerInRangeOfPoint(giveplayerid, floatdiv(radi,16), PlayerPos[0], PlayerPos[1], PlayerPos[2])) SendClientMessage(giveplayerid, col1, caststr);
    else if(IsPlayerInRangeOfPoint(giveplayerid, floatdiv(radi,8),PlayerPos[0], PlayerPos[1], PlayerPos[2])) SendClientMessage(giveplayerid, col2, caststr);
    else if(IsPlayerInRangeOfPoint(giveplayerid, floatdiv(radi,4), PlayerPos[0], PlayerPos[1], PlayerPos[2])) SendClientMessage(giveplayerid, col3, caststr);
    else if(IsPlayerInRangeOfPoint(giveplayerid, floatdiv(radi,2), PlayerPos[0], PlayerPos[1], PlayerPos[2])) SendClientMessage(giveplayerid, col4, caststr);
    else if(IsPlayerInRangeOfPoint(giveplayerid, radi, PlayerPos[0], PlayerPos[1], PlayerPos[2])) SendClientMessage(giveplayerid, col5, caststr);
    }
    return true;
    }

    Andy, Multi-Threading is kein Ding, wirklich nicht.


    Aber zum RAM muss ich wirklich Recht geben. Denn mit dem unbenutzten Speicher von der eingebauten SSD kann man den Arbeitsspeicher um das 6x erhöhen und somit kann man mehr und mehr an Speicherzugriffen erstellen.


    Es wären Strings von einer Länge von mehr als 6.442.450.944 Zeichen möglich.


    Der erste Meilenstein für virtuelle Zeitungen auf Samp-Server in Form von Dialogen wird möglich sein ^^