Das mein ich auch so, das man erst eine bestimmte Taste klicken muss, bzw. das man rein läuft. Aber ich weiß nicht wie ich die Sachen in den Dialog packen soll.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
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
-
-
Hat sich geklärt
-
Ich brauch mal eure Hilfe
wenn ich ein car erstelle dann lässt es sich nicht mehr Parken
so erstell ich das:
ocmd:newfcar(playerid,params[])
{
new vehid,c1,c2,frakid,query[512],str[10];
new Float:vehx,Float:vehy,Float:vehz,Float:veha;
if(PlayerInfo[playerid][pAdmin]>=5)
{
if(sscanf(params,"iiii",vehid,c1,c2,frakid))return SendClientMessage(playerid, cRed,"/newfcar [CAR-ID] [COLOR11] [COLOR-2] [FRAKTIONSID]");
if(vehid < 400 || vehid > 610 ) return SendClientMessage(playerid,cRed,"Bitte wähle ein Fahrzeug zwischen 400 und 610");
if(frakid < 1 || frakid > 6 ) return SendClientMessage(playerid,cRed,"Bitte wähle eine Fraktionsid zwischen 1 und 6");
if(frakid==1)//LSPD
{
GetPlayerPos(playerid,vehx,vehy,vehz);
GetPlayerFacingAngle(playerid,veha);
idx++;
LSPD[idx][lspdDBID]=CreateVehicle(vehid,vehx,vehy,vehz,veha,c1,c2,-1);
format(str, sizeof(str),"LSPD%d",idx);
SetVehicleNumberPlate(LSPD[idx][lspdDBID],str);
PutPlayerInVehicle(playerid, LSPD[idx][lspdDBID], 0);
format(query, sizeof(query), "INSERT INTO LSPD (id, VehID, Farbe1, Farbe2, X, Y, Z, A, Numplate) VALUES ('%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%s')", idx, vehid, c1, c2, vehx, vehy, vehz, veha, str);
mysql_query(query);
mysql_free_result();
SendClientMessage(playerid,cGreen,"Du hast ein neues Fraktionscar in die Datenbank eingetragen mit /fpark kannst du die autos umparken");
}
}
return 1;
}
und zum parken so:
ocmd:fpark(playerid,params[])
{
new query[128];
if(PlayerInfo[playerid][pAdmin]>=5)
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
for(new i;i<idx;i++)
{
if(GetPlayerVehicleID(playerid)==LSPD[i][lspdDBID])
{
new Float:vehx,Float:vehy,Float:vehz,Float:veha;
new carid = GetPlayerVehicleID(playerid);
GetVehiclePos(carid,vehx,vehy,vehz);
GetVehicleZAngle(carid,veha);
format(query, 128, "UPDATE LSPD SET X = '%f' WHERE id = '%d'", vehx, LSPD[i][lspdDBID]);
mysql_query(query);
format(query, 128, "UPDATE LSPD SET Y = '%f' WHERE id = '%d'", vehy, LSPD[i][lspdDBID]);
mysql_query(query);
format(query, 128, "UPDATE LSPD SET Z = '%f' WHERE id = '%d'", vehz, LSPD[i][lspdDBID]);
mysql_query(query);
format(query, 128, "UPDATE LSPD SET A = '%f' WHERE id = '%d'", veha, LSPD[i][lspdDBID]);
mysql_query(query);
mysql_free_result();
format(query, 128, "Du hast das Car mit der ID: %d umgeparkt", LSPD[i][lspdDBID]);
SendClientMessage(playerid,cGreen,query);
}
}
}
}
else
{
SendClientMessage(playerid,cRed,"Um diesen Befehl Nutzen zu können brauchst du den Adminrank Admin.");
}
return 1;
}
wenn ich den Server restarte geht es wieder nur ich weiß nicht wiso
den idx wert gebe ich beim erstellen ein höher also alles wird richtig eingetragen etc.
Ich hoffe, das ihr mir helfen könnt
Hat keiner eini idee?
beim erstellen bekommt er nicht die idx ID die er eigendlich haben soll/muss
Ich bin überfragt -
Ist es möglich durch einen Timer schon vordefinierte Funktionen aufzurufen.
Beispielsweise soll einfach nach 10 min für einen Spieler eine PVar gelöscht werden. (im Bsp: "varName")würde dann so aussehen:
SetTimerEx("DeletePVar", 1000*60*10, false, "is", playerid, "varName");funktioniert das, hängt nur davon ab ob deltepvar n public is oder ?
sind dann alle scripting functions publics ? -
Wie kann ich einen Befehl via OCMD so machen, das dort auch ein Lehrzeichen sein kann?
Beispiel: /Bann Permanent SpielerID
mfg -
Wie kann ich einen Befehl via OCMD so machen, das dort auch ein Lehrzeichen sein kann?
Beispiel: /Bann Permanent SpielerID
mfgkannst du das mal näher erläutern, weil bei jedem neuen parameter brauchst du ein leezeichen dazwischen wenn du sowas meinst
-
Ja ich möchte einen Befwh wie diesen zb machen.
/Invite mitglied id
Welches Parameter muss ich da nehmen für 'Mitglied'? -
pID ist für den Spieler den du Inviten willst. Und playerid ist der Spieler der den Invitet hat.
Hier ist mal meiner als Beispiel:
case DIALOG_INVITE:
{
if(response == 1)
{
new pID = strval(inputtext);
if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
SetPVarInt(pID,"FRank",1);
SpawnPlayer(pID);
SendClientMessage(playerid,Blau,"Du hast ihn Erfolgreich in deine Fraktion eingeladen!");
}//Edit 1: Ergänzung
//Edit 2: Scriptteil -
ich will es ja nicht per Dialog sondern per Befehl machen.
Also der Befehl könnte zb. so lauten: /f invite [SpielerID]
Also auch diese Leerzeichen.
mfg -
Ich breuchte hilfe :$ Ich habe das Script von 26 Erros auf 4 Errors geschafft wegzubekommen. Nun kommt das hier
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(108) : warning 201: redefinition of constant/macro (symbol "mysql_fetch_row(%1)")
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(8458) : warning 202: number of arguments does not match definition
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(9998) : warning 202: number of arguments does not match definition
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11062) : warning 225: unreachable code
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11612) : error 029: invalid expression, assumed zero
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11612) : warning 215: expression has no effect
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11612) : error 001: expected token: ";", but found ")"
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11612) : error 029: invalid expression, assumed zero
D:\Müll\World of San Andreas 4.0\gamemodes\dtrl.pwn(11612) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors
Die 18 Errors die ich gefixxt habe waren #define color etc.
Dort sollte schonmal nichst falsch seien
Wäre nett wenn ihr mir bei diesen 4 Errors hilft
Edit/Hier müssten die Errors seien :$
command(tbnkauf, playerid, params[])
{
#pragma unused params
if(GetPVarInt(playerid, "Authentication") != 1)
return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du bist nicht eingeloggt!");
if(!IsACNN(playerid))
return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du bist kein Mitglied der San Andreas Newstime!");
if(pStats[playerid][pRank] < 2)
return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du musst mind. Rank 2 sein!");
if(GetPlayerEuros(playerid) < 2500)
return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du hast nicht genug Geld. (2500€)");
if(pStats[playerid][ptnews] == 0)
{
pStats[playerid][ptnews] = 1;
CnnKasse+=2500;
GivePlayerEuro(playerid,-2500);
SendClientMessage(playerid,COLOR_YELLOW2,"Du hast dir erfolgreich einen Tragbaren Newsschreiber gekauft!");
return 1;
}
else
return SendClientMessage(playerid,COLOR_BRIGHTRED,"Du hast schon einen Tragbaren Newsschreiber!");
return 1;
-
-
Hallo..
Wie kann ich einen Spieler erlauben, das er sich in ein bestimmtes Fahrzeug reinsetzen darf?
Also wenn z.b ein Admin macht /erlauben ID, dann soll es ihm erlaubt werden, sich in nur bestimmt fahrzeuge reinzuseten, und wenn er den Befehl nochmal macht, dann kann/darf er es nicht mehr.
lg -
Nen normalen CMD mit Parameter machen, auf die im Parameter angegebene SpielerID nen PVar-Wechsel machen (wenn 0 auf 1 und wenn 1 auf 0) und beim Einsteigen in dein bestimmtes Fahrzeug fragst du eben diese PVar ab.
-
// edit hat sich erledigt habe den Fehler gefunden
-
Was muss man eingeben,
dass sofort nach der registration ein Public startet?
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
new string[256];
SendClientMessage(playerid,WEISS,"-----------------------------------------------------------");
format(string, sizeof(string), "{FEFEFE}Spieler {FFBE00}%s{FEFEFE} ist zum erstem mal auf dem Server!", name);
SendClientMessageToAll(GELB, string);
SendClientMessage(playerid,WEISS,"-----------------------------------------------------------");
SetPlayerScore(playerid,1);
SetPVarInt(playerid,"loggedin",1);
SetPlayerInterior(playerid,0);
return 1;
} -
vor deinem return 1; einfach den namen des publics einfügen
...
deinpublic();
return 1;
} -
Und in den Klammern?
-
in die runden klammern kommen die parameter des publics
-
ich will es ja nicht per Dialog sondern per Befehl machen.
Also der Befehl könnte zb. so lauten: /f invite [SpielerID]
Also auch diese Leerzeichen.
mfg
einmal s für den string also invite und u für den Spieler( womit man die id oder ein teil/ganzen Namen eingeben kann.
new invite[20],id;
if(sscanf(params,"su",invite,id))
oder auch möglichnew invite,id;
if(sscanf(params,"s[20]u",invite,id))
-
Alles klar werde es morgen mal ausprobieren
Danke! -
hey leuts!
Hätte da mal ne frage zu meinem Scrippt viel steht noch nich drinn und wollte mal ein Register/Loginsystem machen.
hier wäre der link: http://pastebin.com/KCswrVb9
Wäre wirklich sehr nett wenn ihr mal nen Blick raufwerfen könntet ;D
Danke und LG Richard(Die Errors sind ganz unten)