also ich kann es laden aber die befehle gehen nicht bei mir
Du benutzt auch das sscanf und das streamer plugin.
also ich kann es laden aber die befehle gehen nicht bei mir
Du benutzt auch das sscanf und das streamer plugin.
Alles anzeigenHay weiß jemand wie ich das bei OnDialogResponse machen soll?
/teleport CMD:
new string[512], count;
for(new i=0; i!=MAX_TELES; i++)
{
if(!TeleInfo[i][tCreated]) continue;
if(IsPlayerAdminEx(playerid, TeleInfo[i][tRank]))
{
format(string, sizeof string, "%s%02d-%s\n", string, i, TeleInfo[i][tName]);
count++;
}
}
if(count)
{
ShowPlayerDialog(playerid, DIALOG_TELE, DIALOG_STYLE_MSGBOX, "Teleport", string, "Teleport", "Schließen");
}
Ich weiß jetzt aber nicht wie ich das bei OnDialogResponse machen soll.. (Also herausfinden auf welchen Port er geklickt hat
um ihn zu porten)
Arbeitest du mit statischen Ports oder Dynamischen. Bei statischen werten hast du die möglichkeit das ganze direkt über das listitem dies zu tun sonst musst du die anklickbare ids in einem anderen array speichern. Ich würde dir noch empfehlen sollten es statische werte sein ein extra string nimmst und das bei OnGameModeInit zu formatieren damit entlastest du auch dein string ein wenig obwohl das auch geht solle es dynamisch sein in der hinsicht das du den string neu formatieren lässt sollte was geändert werden.
Deine Methode ist sinnlos.
Issuerid gibt auch 65535 aus, wenn der Spieler sich z.b. mit einem Raketenwerfer selbst verletzt.
Ja stimmt tut mir leid beim fallschaden wird das bei der weaponid aufgerufen so wie du es ja auch als beispiel gepostet hast
Welchen Streamer hast du? Wenn du den von Inconito hast, wird dieser nie überlastet sein. Dieser lädt allerdings nur 500 Objekte in deinem Umkreis.
Der lädt bis zu 1000 muss man jedoch einstellen der standart wert ist 500 jedoch sollte man CreateObject nicht verwenden
Wie funktioniert das genau oO
Das ist doch ein Pointer oder nicht? Funktioniert das ohne eine Include?
Warum machst du das so?
und das -> kenn ich von rCmd... das sieht auch sehr nice aus
B2T: Ich finde auch dass es mal was anderes ist, ich kenne mich so oder so mit #emit und #pragma nicht so aus
Wenns funktioniert 10/10
Das was der liebe BlackAce gepostet hat basiert einfach auf 2 defines warum er das macht musst ihn selbst fragen vllt um leut ezu verwirren
aber ein besonderen zweck hat es nicht
Ich lege zum Thema hooking diesen Post ans herz von Y_Less
http://forum.sa-mp.com/showthread.php?t=387600
sieht gut aus 10/10
zumindest gefällt mir der aufbau vom cmd
sprich dsa " cmd->"Command"(playerid,params[])
aber ürgendwie ähnelt dsa an cmd
mfg kyle
Danke für die bewertung die grund idee für das define hab ich mir bei BlackAce abgeschaut wo dieser mir mal ein define für eine irentierte
setzen eines arrays zeigen wollte wo wir mal das gespräch so generel mal hatten.
Aber ich sags mal so wer das so nicht nutzen will kann es ja im define ändern ist jetzt nicht auf dich bezogen :D.
//edit das einbringen von #emit sollte mal was neues darstellen zu dem versuch ich mich auch mit dem thema auseinander zu setzen.
Jedoch ist das hooken mit state schneller und sicherer als die verwendung von CallLocalFunction um eine funktion zu hooken.
Und ein thema zu emit es sind opcodes zu dem sollte das auch schneller sein als CallLocalFunction es wird durch kein umweg gemacht ich hab mir auch mal eine alternative angesehen von Zeex um Functionen auszurufen mit unendliche vielen parametern was so ähnlich ist wie CallLocalFunction nur im emit format da ist dies ein weitaus kürzerer code. Ich kann ja gerne mal schauen was so alles schneller ist.
[tabmenu]
[tab='Allgemein']
Guten Tag da ich mich mal
Qualifizieren wollte für das Skripting Battle Turnier so just4fun
habe ich die letzten Tage mich wieder mehr mit
#emit auseinander gesetztund das ist dabei herraus gekommen ist
aufjedenfall mal was anderes.
Wie es vom Speed im Vergleich zu den anderenCommand-Prozessoren ist kann
ich momentan nicht sagen ich hab noch keinen gemacht jedoch generel von der hooking
Art dürfte das ganze doch sehr rapide sein.Die einzige momentane besonderheit ist außer das eure Befehle schneller aufgerufen werden
ist das die schreibweise egal ist ob /TeST oder /TEST ist vollkommen egal es wird trotzdem erkannt.
Ein großen Dank geht an
[tab='Beispiel']
//Example
CMD-> test(playerid,params[])
{
printf("ausgegeben %d |%s|",playerid,params);
return 1;
}
[tab='Downloads']
[tab='Edits']
1. Text entfernt
2.- 6. Überarbeitung
[/tabmenu]
Benutze CreateDynmaicObjectEx dort hat man die möglich keit diesen parameter anzugeben
Nette Idee nur das ganze mit sscanf zu splitten wäre schneller gewesen
Wäre nicht schlecht wenn du vllt für die Qualifikation vllt paar Themen hinschreiben könntest was man skripten könnte.
Da bei solch eine Spontanität und Auswahlmöglichkeit kann es einem sehr schwer fallen was rauszusuchen.
Das wird mit 3D-Textlabel gemacht welche danach an das Auto attached werden
http://wiki.sa-mp.com/wiki/Attach3DTextLabelToVehicle
Zum updaten sollte die funktion Update3DTextLabelText gehen
Bezüglich des pfeiles ja was anderes habe ich nicht getestet kann jedoch wie bei dir vllt nicht ganz richtig sein (seitenverkehrt)
if (strcmp("/test", cmdtext, true, 10) == 0){
an = true;
var = CreatePlayerObject(playerid,1318,0.0,0.0,0.0,0.0,0.0,0.0);
return 1;
}
public OnPlayerUpdate(playerid)
{
if(an)SetArrowPos(playerid,GetPlayerVehicleID(playerid),var,0.0,0.0);
return 1;
}
Eine Float ist auch kein Integer dafür gibt es extra GetPVarFloat und SetPVarFloat zu dem müsstest du 3 Werte(X,Y,Z) abspeichern
Wieso redundant?
Der Source-Code ist für manche vielleicht hilfreich?
Da unser lieber Schwabbel mein einen code getestet hat SetArrowPos(playerid,vehicleid,objectid,Float:X, Float:Y)
welche leider falsch war von der berechnung naja trollbeit bringt unterschwellig nicht alles zum laufen.
Poste ich den Code nochmal welche diesmal Perfekt funktioniert
stock SetArrowPos(playerid,vehicleid,objectid,Float:X, Float:Y){
new Float: Pos[4];
GetVehiclePos(vehicleid, Pos[0], Pos[1],Pos[2]);
GetVehicleZAngle(vehicleid,Pos[3]);
AttachPlayerObjectToVehicle(playerid,objectid, vehicleid, 0.0, 0.0, 1.5, 0.0, 90.0,atan2(Pos[1] - Y,Pos[0] - X)-Pos[3]);
return 1;
}
Diese ID, 344, definiert den Typ, das Modell des Objekts - nicht das physische Objekt selbst.
An eine ID die in GetObjectPos eingesetzt werden kann, kommt man nur mit CreateObject - und das wird beim Wurf
einer Granate natürlich nicht aufgerufen.
Das einzigste was man da machen kann ich ein object zu erstellen auf dem boden + dem Partikel Effect( ist auch ein Object)
und davon kannst die position ermittlen sollte sich ein spieler im umkreis befinden.
Wen man noch gut in mathe ist kann man noch ein flugbogen via MoveObject machen.
Liegt daran das du ein ! bei IsPlayerNPC gemacht hast.. bei OnPlayerAccountLoad
Richtig:
if(!IsPlayerConnected(playerid) || IsPlayerNPC(playerid)) return 1;
Abgesehen mal davon würde das sein momentanes problem nicht beheben da dies beim registrieren kommt also sein dialog wird imme rneu aufgerufen.
Das wird auch funktionieren das war die zweite möglich wo ich dir geschrieben habe die einfachste
Hmmm ich versteh auch nicht wo der Fehler sein kann. Langsam verzweifel ich
Du kannst mal zwei Sachen machen in wie ich schon gesagt habe in die MySQL Log schauen und wenn immer die registrierung aufgerufen wird kannst du mal
das was in den Dialogen steht mal umbenennen das weisst du wenigstens was er dich immer zurück schmeißt und an welcher stelle das ist. Weil ich kann auch nicht Hellsehen
sondern auch nur vermuten an was liegen könnte. Ein Fehler sehe ich auch nicht. Jedoch was mir noch einfallen würde ist das du das neuste R7 plugin verwendest also R7 r15
war das.
Es kann auch am plugin liegen so ist es nicht. Verwendest du das sscanf plugin ?
Die MySQL log gibt keinen fehler aus oder das ihrgend wie sich die querys verändern.
Ich hatte den Bug mal das nach dem erstellen der Tabellen auch wenn diese schon vorhanden waren die querys nicht mehr gingen.