da würde ich aber eher zu der andere Variante greifen so größer das Script ist desto mehrere Ressourcen werden auch verbraucht
Beiträge von RFT
-
-
/*
* DUDB 2.1
* (c) Copyright 2006 by DracoBlue
*
* @version : 2.1
* @author : DracoBlue (http://dracoblue.com)
* @date : 8th May 2006
* @update : 2nd Dec 2006
* @require : DUtils 1.6
* @require : DINI 1.4
*
* This file is provided as is (no warranties).
*
* Feel free to use it, a little message in
* about box is honouring thing, isn't it?
*
*/
#if defined _dudb_included
#endinput
#endif
#pragma library dutils
#include <dutils>
#define dUser(%1).( udb_User(%1,
#define dUserINT(%1).( udb_UserInt(%1,
#define dUserSet(%1).( udb_UserSet(%1,
#define dUserSetINT(%1).( udb_UserSetInt(%1,
stock udb_hash(buf[]) {
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
stock udb_encode(nickname[]) {
new tmp[MAX_STRING];
set(tmp,nickname);
tmp=strreplace("_","_00",tmp);
tmp=strreplace(";","_01",tmp);
tmp=strreplace("!","_02",tmp);
tmp=strreplace("/","_03",tmp);
tmp=strreplace("\\","_04",tmp);
tmp=strreplace("[","_05",tmp);
tmp=strreplace("]","_06",tmp);
tmp=strreplace("?","_07",tmp);
tmp=strreplace(".","_08",tmp);
tmp=strreplace("*","_09",tmp);
tmp=strreplace("<","_10",tmp);
tmp=strreplace(">","_11",tmp);
tmp=strreplace("{","_12",tmp);
tmp=strreplace("}","_13",tmp);
tmp=strreplace(" ","_14",tmp);
tmp=strreplace("\"","_15",tmp);
tmp=strreplace(":","_16",tmp);
tmp=strreplace("|","_17",tmp);
tmp=strreplace("=","_18",tmp);
return tmp;
}
stock udb_decode(nickname[]) {
new tmp[MAX_STRING];
set(tmp,nickname);
tmp=strreplace("_01",";",tmp);
tmp=strreplace("_02","!",tmp);
tmp=strreplace("_03","/",tmp);
tmp=strreplace("_04","\\",tmp);
tmp=strreplace("_05","[",tmp);
tmp=strreplace("_06","]",tmp);
tmp=strreplace("_07","?",tmp);
tmp=strreplace("_08",".",tmp);
tmp=strreplace("_09","*",tmp);
tmp=strreplace("_10","<",tmp);
tmp=strreplace("_11",">",tmp);
tmp=strreplace("_12","{",tmp);
tmp=strreplace("_13","}",tmp);
tmp=strreplace("_14"," ",tmp);
tmp=strreplace("_15","\"",tmp);
tmp=strreplace("_16",":",tmp);
tmp=strreplace("_17","|",tmp);
tmp=strreplace("_18","=",tmp);
tmp=strreplace("_00","_",tmp);
return tmp;
}stock udb_Exists(nickname[]) {
new tmp[MAX_STRING];
format(tmp,sizeof(tmp),"%s.dudb.sav",udb_encode(nickname));
return fexist(tmp);
}stock udb_Remove(nickname[]) {
new tmp[MAX_STRING];
format(tmp,sizeof(tmp),"%s.dudb.sav",udb_encode(nickname));
return dini_Remove(tmp);
}
stock udb_UserSetInt(nickname[],key[],value) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_IntSet(fname,key,value);
}
stock udb_UserSet(nickname[],key[],value[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_Set(fname,key,value);
}
stock udb_User(nickname[],key[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
format(fname,sizeof(fname),dini_Get(fname,key));
return fname;
}
stock udb_UserInt(nickname[],key[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_Int(fname,key);
}
stock udb_CheckLogin(nickname[],pwd[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
if (udb_UserInt(nickname,"password_hash")==udb_hash(pwd)) return true;
return false;
}stock udb_Create(nickname[],pwd[]) {
if (udb_Exists(nickname)) return false;
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
dini_Create(fname);
udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
return true;
}die include im Script solls dann aussehen
#include <dini>
#include <dubd> -
unter OnPlayerSelectedMenuRow
-
verwendest du auch im Script dini wenn ja machs mal so
/*
* DUDB 2.1
* (c) Copyright 2006 by DracoBlue
*
* @version : 2.1
* @author : DracoBlue (http://dracoblue.com)
* @date : 8th May 2006
* @update : 2nd Dec 2006
* @require : DUtils 1.6
* @require : DINI 1.4
*
* This file is provided as is (no warranties).
*
* Feel free to use it, a little message in
* about box is honouring thing, isn't it?
*
*/
#if defined _dudb_included
#endinput
#endif
#define dini_IntSet//raus
#define dini_Create// raus
#pragma library dutils
#include <dutils>
#define dUser(%1).( udb_User(%1,
#define dUserINT(%1).( udb_UserInt(%1,
#define dUserSet(%1).( udb_UserSet(%1,
#define dUserSetINT(%1).( udb_UserSetInt(%1,
stock udb_hash(buf[]) {
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
stock udb_encode(nickname[]) {
new tmp[MAX_STRING];
set(tmp,nickname);
tmp=strreplace("_","_00",tmp);
tmp=strreplace(";","_01",tmp);
tmp=strreplace("!","_02",tmp);
tmp=strreplace("/","_03",tmp);
tmp=strreplace("\\","_04",tmp);
tmp=strreplace("[","_05",tmp);
tmp=strreplace("]","_06",tmp);
tmp=strreplace("?","_07",tmp);
tmp=strreplace(".","_08",tmp);
tmp=strreplace("*","_09",tmp);
tmp=strreplace("<","_10",tmp);
tmp=strreplace(">","_11",tmp);
tmp=strreplace("{","_12",tmp);
tmp=strreplace("}","_13",tmp);
tmp=strreplace(" ","_14",tmp);
tmp=strreplace("\"","_15",tmp);
tmp=strreplace(":","_16",tmp);
tmp=strreplace("|","_17",tmp);
tmp=strreplace("=","_18",tmp);
return tmp;
}
stock udb_decode(nickname[]) {
new tmp[MAX_STRING];
set(tmp,nickname);
tmp=strreplace("_01",";",tmp);
tmp=strreplace("_02","!",tmp);
tmp=strreplace("_03","/",tmp);
tmp=strreplace("_04","\\",tmp);
tmp=strreplace("_05","[",tmp);
tmp=strreplace("_06","]",tmp);
tmp=strreplace("_07","?",tmp);
tmp=strreplace("_08",".",tmp);
tmp=strreplace("_09","*",tmp);
tmp=strreplace("_10","<",tmp);
tmp=strreplace("_11",">",tmp);
tmp=strreplace("_12","{",tmp);
tmp=strreplace("_13","}",tmp);
tmp=strreplace("_14"," ",tmp);
tmp=strreplace("_15","\"",tmp);
tmp=strreplace("_16",":",tmp);
tmp=strreplace("_17","|",tmp);
tmp=strreplace("_18","=",tmp);
tmp=strreplace("_00","_",tmp);
return tmp;
}stock udb_Exists(nickname[]) {
new tmp[MAX_STRING];
format(tmp,sizeof(tmp),"%s.dudb.sav",udb_encode(nickname));
return fexist(tmp);
}stock udb_Remove(nickname[]) {
new tmp[MAX_STRING];
format(tmp,sizeof(tmp),"%s.dudb.sav",udb_encode(nickname));
return dini_Remove(tmp);
}
stock udb_UserSetInt(nickname[],key[],value) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_IntSet(fname,key,value);
}
stock udb_UserSet(nickname[],key[],value[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_Set(fname,key,value);
}
stock udb_User(nickname[],key[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
format(fname,sizeof(fname),dini_Get(fname,key));
return fname;
}
stock udb_UserInt(nickname[],key[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
return dini_Int(fname,key);
}
stock udb_CheckLogin(nickname[],pwd[]) {
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
if (udb_UserInt(nickname,"password_hash")==udb_hash(pwd)) return true;
return false;
}stock udb_Create(nickname[],pwd[]) {
if (udb_Exists(nickname)) return false;
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
dini_Create(fname);
udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
return true;
}und diese include genau unter dini
-
dann trag mal in der dubd include ein #include <dini>
-
Header der 2 mit dem GTA Style da gefällt mir gut gemacht
-
die dini Include fehlt dir hier findest du die dini Include
-
-
ich registrier mich nacher mal die Vorstellung finde ich geht durch das Design gefällt mir aber nicht so ansonsten ist es gut geworden
-
setz mal da drüber
GetPlayerName(playerid, sname, MAX_PLAYER_NAME); -
lässt du den Namen überhaupt abrufen so das der richtige Account geöffnet wird und die Zeile Motorradschein auf 1 gesetzt wird
-
klar wenns unter 100 ist returnts du doch ein Text
if(GetPlayerMoney(playerid) < 100) { return SendClientMessage(playerid, Rot, "Du hast zu wenig geld!"); }
ab da wird der code nicht mehr weiter ausgeführt
-
o.o du fragst gleich von der Spieler datei ab also dein Script is ja ein reiner Resourcen fresser
if(dialogid == 7)
{
new s1[64];
format(s1,sizeof(s1),"/acc/%s.ini", sname);
if(response)
{
if(dini_Int(s1,"Motorradschein") == 1) { return SendClientMessage(playerid, Rot, "Du hast bereits einen Motorradschein!"); }
if(GetPlayerMoney(playerid) < 100) { return SendClientMessage(playerid, Rot, "Du hast zu wenig geld!"); }
dini_IntSet(s1,"Motorradschein",1);
GivePlayerMoney(playerid, -300);
SendClientMessage(playerid, Grün, "Herzlichen Glückwunsch sie haben den Motorradschein Bestanden!.");
return 1;
}
else
{
SendClientMessage(playerid, Rot, "Prüfung abbgebrochen!");
}
}[edit] eine Klammer zu viel
-
die Includes fehlen auch und es ist kein Selfmade daher die Credits oben von den Godfather machern rein entweder nen gf edit oder nen reines Copy & Paste Script
-
Du solltest Pawn erstmal kennen lernen bevor du mit einem RL Script anfängst
PS : Der Link is tot
-
Du lässt vorher den Text senden und danach erst den Namen abrufen kann ja wohl nich gehen
public OnPlayerCommandText(playerid,cmdtext[])
{
if (strcmp(cmdtext, "/Ordnungsamt", true)==0)
{
if (TowTruckers==0)
{
SendClientMessage(playerid,0xFFFF00AA,"Im Moment ist kein Ordnungsbeamter im Dienst!");
return 1;
}
new pName[MAX_PLAYER_NAME];
new msg[256];
GetPlayerName(playerid,pName,sizeof(pName));
format(msg,sizeof(msg),"%s ID: %d braucht einen Ordnungsbeamten!",pName,playerid);
SendClientMessage(playerid,0xFFFF00AA,"Ordnungsamt gerufen!");
for (new i=0;i<MAX_PLAYERS;i++)
{
if (IsTowTrucker[i]==1)
{
SendClientMessage(i,0xFFFF00AA,msg);
}
}
return 1;
}
return 0;
} -
der schließt auch ohne ein return return 0; gibt kein wert zurück return 1; schon wenn überhaupt nehm return 1;
-
fail du brauchst kein return
if(dialogid == 3)
{
if(listitem == 0)
{
if(response)
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_MSGBOX, "[__Prüfungs Start Führerschein__]", "Herzlich Willkommen \nin der Fahrschulprüfung nun gehts los \nAlso nun werden wir mit den Regeln fortfahren klicke dazu auf weiter.", "Weiter", "Verlassen");
}
else
{
SendClientMessage(playerid, Rot, "Prüfung abbgebrochen!");
}
}// da gehts dann weiter
}so reicht es
-
ne nicht das Script am besten ihr schaut euch nochmal alle teile an die ihr editiert habt und guckt wo da ne Klammer fehlen könnte
-
machs so
new CopCars[10];//falls du 10 CopCars hast
CopCars[0] = AddStaticVehicle(..........
CopCars[2] = AddStaticVehicle(..........
CopCars[3] = AddStaticVehicle(..........
//.......................unter public IsACopCar
public IsACopCar(carid)
{
for(new car=0;car < sizeof(CopCars); car++)
{
if(carid == CopCars[car])return true;
return false;
}
}bei dir sind nähmlich bestimmt die carids verrutscht