[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Beitrag von xSnake ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Ist es möglich einen 3DTextLabel eine Schriftgröße hinzuzufügen? Also die Schriftgröße einstellen.
-
Ist es möglich einen 3DTextLabel eine Schriftgröße hinzuzufügen? Also die Schriftgröße einstellen.
Nein, das geht leider nicht.xSnake: Du hast einen Thread, und hast es dort breites gepostet. Einmal reicht.
-
@FerienFreak:
Ich bin mir nicht sicher ob das so funktioniert, aber versuch es mal.
ocmd:ipban(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,BLAU,"Du hast kein Admin Level 4.");
if(!params[0])return SendClientMessage(playerid,-1,"Tippe: /ipban [IP]");
new string[100];
format(string,sizeof string,"banip %s",params);
SendRconCommand(string);
format(string,sizeof string,"Die IP %s wurde erfolgreich gesperrt!",params);
SendClientMessage(playerid,GRÜN,string);
return 1;
}
ocmd:ipunban(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,BLAU,"Du hast kein Admin Level 5.");
if(!params[0])return SendClientMessage(playerid,-1,"Tippe: /ipunban [IP]");
new string[100];
format(string,sizeof string,"unbanip %s",params);
SendRconCommand(string);
format(string,sizeof string,"Die IP %s wurde erfolgreich entsperrt!",params);
SendClientMessage(playerid,GRÜN,string);
return 1;
} -
habe 2 kleine frage/probleme
1 wieso wird der skin nicht auf die skinid 26 gesetzt ? der skin bleibt 0
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SetPlayerInterior(playerid, 0);
SpawnPlayer(playerid);
return 1;
}if(sInfo[playerid][tutpart] == 4)
{
SetPlayerVirtualWorld(playerid,0);
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
TogglePlayerSpectating(playerid, 0);
savePlayer(playerid);
return 1;
}2 ich will das OnPlayerRegister erst bei tutpart 4 ausgeführt wird
if(sInfo[playerid][tutpart] == 4)
{
SetPlayerVirtualWorld(playerid,0);
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
TogglePlayerSpectating(playerid, 0);
savePlayer(playerid);
return 1;
}public OnPlayerRegister(playerid)
{
sInfo[playerid][db_id] = mysql_insert_id();
SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
SetPlayerMoney(playerid, 2500);
SetPlayerScore(playerid, 1);
SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
SetPlayerColor(playerid, 0xFF00FFFF);
savePlayer(playerid);
printf("%s hat sich Registriert!)",getPlayerName(playerid));
}if(dialogid==DIALOG_LOGIN)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}
else
{
SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
new string[128];
format(string,sizeof(string),"{FFFF00}Hallo %s\n{FFFFFF}Dein Account wurde gefunden!\nBitte gib nun dein Passwort ein\ndamit du dich einloggen kannst!",getPlayerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
}
}
return 1;
} -
1.)
Hast du es schon mal mit SetPlayerSkin versucht? Wenn nicht, dann mach das mal. Wenn das auch nicht geht, dann füge bei OnPlayerSpawn das SetPlayerSkin ein.2.)
Da musst du das Passwort in einer Variable zwischen speichern und den Teil der das Callback aufruft an die gewünschte Stelle setzen. Dann das Passwort wieder übergeben.
Ich kann dir nicht zeigen wo oder wie, weil der Code der das Callback aufruft nicht dabei ist. -
da müsste eig allesen drinne sein wenn nicht schreib mir was du brauchst
#define DIALOG_REGISTER 1
#define DIALOG_REGISTER2 31enum playerInfo{
eingeloggt,
level,
db_id,
alevel,
slevel,
Skin,
fraktion,
rang,
leader,
coleader,
spawnchange,
tutpart,
regstep,
geschlecht
}forward TutTimer(playerid);
savePlayer(playerid)
{
sInfo[playerid][eingeloggt] = 1;
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',skin='%i',geschlecht='%i',money='%i',alevel='%i',slevel='%i',fraktion='%i',rang='%i',leader='%i',coleader='%i',spawnchange='%i' WHERE id='%i'",
GetPlayerScore(playerid),GetPlayerSkin(playerid),GetPlayerMoney(playerid),sInfo[playerid][geschlecht],sInfo[playerid][alevel],sInfo[playerid][slevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][leader],sInfo[playerid][coleader],sInfo,sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
return 1;
}stock SaveAllPlayers()
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerConnected(playerid)) continue;
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',skin='%i',geschlecht='%i',money='%i',alevel='%i',slevel='%i',fraktion='%i',rang='%i',leader='%i',coleader='%i',spawnchange='%i' WHERE id='%i'",
GetPlayerScore(playerid),GetPlayerSkin(playerid),GetPlayerMoney(playerid),sInfo[playerid][geschlecht],sInfo[playerid][alevel],sInfo[playerid][slevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][leader],sInfo[playerid][coleader],sInfo,sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
}
return 1;
}resetPlayer(playerid)
{
sInfo[playerid][level]=0;
sInfo[playerid][eingeloggt]=0;
sInfo[playerid][db_id]=0;
sInfo[playerid][geschlecht]=0;
sInfo[playerid][alevel]=0;
sInfo[playerid][slevel]=0;
sInfo[playerid][Skin]=0;
sInfo[playerid][fraktion]=0;
sInfo[playerid][rang]=0;
sInfo[playerid][leader]=0;
sInfo[playerid][coleader]=0;
sInfo[playerid][spawnchange]=0;
return 1;
}new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
TogglePlayerControllable(playerid,0);
sInfo[playerid][regstep] = 1;
ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_LIST,"Wähle dein Geschlecht","Männlich\nWeiblich","Auswählen","");
return 1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}if(dialogid==DIALOG_REGISTER2)
{
if(dialogid==DIALOG_REGISTER2)
{
sInfo[playerid][geschlecht] = listitem+1; // 1 = männlich 2 = weiblich
sInfo[playerid][regstep] = 0;
sInfo[playerid][tutpart] = 1;
SetTimerEx("TutTimer",2000,false,"i",playerid);
return savePlayer(playerid);
}
}public TutTimer(playerid)
{
if(sInfo[playerid][tutpart] == 1)
{
SetPlayerPos(playerid,1494.8136,-1666.0505,14.0469);
SetPlayerFacingAngle(playerid,272.6125);
SetCameraBehindPlayer(playerid);
SetPlayerVirtualWorld(playerid,25);
InterpolateCameraPos(playerid, 1115.584228, -1728.955566, 35.356784, 1190.537475, -1698.813476, 38.931377, 10000,CAMERA_MOVE);
InterpolateCameraLookAt(playerid, 1120.251953, -1730.533691, 34.507175, 1191.590576, -1703.500488, 37.544792, 10000,CAMERA_MOVE);
sInfo[playerid][tutpart] = 2;
SetTimerEx("TutTimer",15000,false,"i",playerid);
return 1;
}
if(sInfo[playerid][tutpart] == 2)
{
SetPlayerPos(playerid,1176.4874,-1649.7354,14.0049);
SetPlayerFacingAngle(playerid,196.8897);
SetCameraBehindPlayer(playerid);
InterpolateCameraPos(playerid, -1991.850219, -67.903274, 55.942722, -2080.126220, -53.976066, 55.603290, 10000,CAMERA_MOVE);
InterpolateCameraLookAt(playerid, -1994.148071, -72.153877, 54.657318, -2077.844238, -58.186519, 54.166343, 10000,CAMERA_MOVE);
sInfo[playerid][tutpart] = 3;
SetTimerEx("TutTimer",15000,false,"i",playerid);
return 1;
}
if(sInfo[playerid][tutpart] == 3)
{
SetPlayerPos(playerid,1494.8136,-1666.0505,14.0469);
SetPlayerFacingAngle(playerid,272.6125);
SetCameraBehindPlayer(playerid);
InterpolateCameraPos(playerid, 1419.323608, -1036.734741, 34.718708, 1490.344116, -1047.630981, 35.451251, 10000,CAMERA_MOVE);
InterpolateCameraLookAt(playerid, 1423.311035, -1034.124511, 33.206516, 1487.870605, -1043.521362, 34.039466, 10000,CAMERA_MOVE);
sInfo[playerid][tutpart] = 4;
SetTimerEx("TutTimer",15000,false,"i",playerid);
return 1;
}
if(sInfo[playerid][tutpart] == 4)
{
SetPlayerVirtualWorld(playerid,0);
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
TogglePlayerSpectating(playerid, 0);
savePlayer(playerid);
return 1;
}
return 1;
}public OnPlayerRegister(playerid)
{
sInfo[playerid][db_id] = mysql_insert_id();
SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
SetPlayerMoney(playerid, 2500);
SetPlayerScore(playerid, 1);
SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
SetPlayerColor(playerid, 0xFF00FFFF);
savePlayer(playerid);
printf("%s hat sich Registriert!)",getPlayerName(playerid));
} -
Kann man Bilder (php Codes) in SA:MP anzeigen?
-
Nur die Unterstuetzten; als Textdraw
-
Moin,
da ich grad an einem /veh befehl arbeite, und der hervorragend funktioniert, habe ich eine Frage:
Wie mache ich es, wenn dass Auto Explodiert, dass es dann für immer weg ist? Also dass er nicht an der letzten Posi spawnt.
-
new bool:vehVehicles[MAX_VEHICLES];
Beim Befehl:
vehVehicles[vID] = true;Bei OnVehicleDeath:
if(vehVehicles[vehicleid]) DestroyVehicle(vehicleid), vehVehicles[vehicleid] = false; -
-
ist das alles was du brauchst dafür oder brauchst du noch was dafür
Sollte passen.if(dialogid==DIALOG_REGISTER)
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
SetPVarString(playerid, "Passwort", passwort);
TogglePlayerControllable(playerid,0);
sInfo[playerid][regstep] = 1;
ShowPlayerDialog(playerid,DIALOG_REGISTER2,DIALOG_STYLE_LIST,"Wähle dein Geschlecht","Männlich\nWeiblich","Auswählen","");
return 1;
}
else
{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}
else
{
Kick(playerid);
}
return 1;
}if(sInfo[playerid][tutpart] == 4)
{
SetPlayerVirtualWorld(playerid,0);
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
TogglePlayerSpectating(playerid, 0);
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
GetPVarString(playerid, "Passwort", passwort);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
return 1;
}public OnPlayerRegister(playerid)
{
sInfo[playerid][db_id] = mysql_insert_id();
SendClientMessage(playerid, ROT, "=====> Willkommen auf PlayPoint Reallife <=====!");
SendClientMessage(playerid, GELB, "=====>Es folgt nun das Tutorial<=====");
SetPlayerMoney(playerid, 2500);
SetPlayerScore(playerid, 1);
SetTimerEx("SkinTimer", 200, 0, "dd", playerid, 26);
SetPlayerColor(playerid, 0xFF00FFFF);
savePlayer(playerid);
printf("%s hat sich Registriert!)",getPlayerName(playerid));
return 1;
} -
Wie kann ich in diesem Befehl
ocmd:restartserver(playerid,params[])mehrere namen eintragen sprich einmal restartserver dann rs usw.
-
C:\Users\tobi\Desktop\Selfmadescript\gamemodes\Reallifescript.pwn(5610) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Warning.
if(sInfo[playerid][tutpart] == 4)
{
SetPlayerVirtualWorld(playerid,0);
SetSpawnInfo(playerid,0,26,370.3382,-2059.1753,8.6107,359.5793,0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerControllable(playerid,1);
TogglePlayerSpectating(playerid, 0);
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
GetPVarString(playerid, "Passwort",passwort);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
mysql_function_query(dbhandle,query,false,"OnPlayerRegister","d",playerid);
return 1;
} -
Markiere nächstes mal bitte die Zeile.
So muss es sein:
GetPVarString(playerid, "Passwort",passwort, sizeof(passwort));Das steht falsch im Wiki, ich hatte natürlich das Glück genau das Beispiel zu kopieren
http://wiki.sa-mp.com/wiki/GetPVarString
Das Beispiel bei OnPlayerDeath. -
Hallo com ich habe mir gerade ein /tv befehl gemacht und habe das problem ich geh auf /tv ganz normal sehe alles
außer wenn er im fahrzeug sitzt
und wenn ich vom Tv weg gehen will dann funktioniert das nicht dann kommt da Benutze /tv [ID] wie mach ich das das ich beim 2 mal keine id eingeben muss ?
und wenn der spieler im fahrzeug sitzt in das aus der normalen sicht sehe wie als würde man selber ins car steigen
ocmd:tv(playerid,params[])
{
if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
new pID,string[128];
if(sInfo[playerid][tv] == 0)
{
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, pID);
format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
SendClientMessage(playerid,GRÜN,string);
}
}
else if(sInfo[playerid][adminduty] == 1)
{
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
format(string,sizeof(string),"Du beobachtest nun Nichtmehr %s!",getPlayerName(pID));
SendClientMessage(playerid,GELB,string);
}
return 1;
} -
ocmd:tv(playerid,params[])
{
if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
new pID,string[128];
if(sInfo[playerid][tv] == 0)
{
if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, pID);
sInfo[playerid][tv] = 1;
format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
SendClientMessage(playerid,GRÜN,string);
}
}
else if(sInfo[playerid][tv] == 1)
{
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
sInfo[playerid][tv] = 0;
format(string,sizeof(string),"Du beobachtest nun Nichtmehr %s!",getPlayerName(pID));
SendClientMessage(playerid,GELB,string);
}
return 1;
}Versuch es mal so, dann sollte es Klappen
MfG
-